CN102109988A - Data processing method based on dynamic allocation of isomorphic data block array and system thereof - Google Patents

Data processing method based on dynamic allocation of isomorphic data block array and system thereof Download PDF

Info

Publication number
CN102109988A
CN102109988A CN2009102601717A CN200910260171A CN102109988A CN 102109988 A CN102109988 A CN 102109988A CN 2009102601717 A CN2009102601717 A CN 2009102601717A CN 200910260171 A CN200910260171 A CN 200910260171A CN 102109988 A CN102109988 A CN 102109988A
Authority
CN
China
Prior art keywords
data
blocks
data block
isomorphism sequence
processing request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009102601717A
Other languages
Chinese (zh)
Inventor
李金辉
郭瑞杰
张理
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2009102601717A priority Critical patent/CN102109988A/en
Publication of CN102109988A publication Critical patent/CN102109988A/en
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The application discloses a data processing method based on dynamic allocation of an isomorphic data block array and a system thereof, and is used for solving the problems that the present search engine data block array allocation technique has waste in internal memory space and is complicated to realized. The method includes steps as follows: according to an acquired data processing request, the number of data blocks in the isomorphic data block array and the data structure of the data blocks, which are required by the data processing request, are determined; according the determined data block number and the data structure, the isomorphic data block array is set up; and the isomorphic data block array is utilized for implementing the data processing request.

Description

Data processing method and system thereof based on isomorphism sequence of blocks of data dynamic assignment
Technical field
The application relates to field of computer technology, relates in particular to a kind of data processing method and system thereof based on isomorphism sequence of blocks of data dynamic assignment.
Background technology
Search engine when handling inquiry each time, need usually through traversal arrange chain->filter->statistics->marking->collect the execution in step of several keys such as Query Result and ordering, its search routine is shown in following C++ false code:
1?search(Query*?q)
2?{
3 docid_t?docid;
4 while ((docid=q->seek ())!=-1) // travel through and arrange chain
5 {
6 Filter (docid); // filter
7 Aggregate (docid); // statistics
8 ScoreDoc*scoreDoc=Scorer (docid); // marking
9 HitCollector (scoreDoc); // collect Query Result also to sort
10 }
11 }
The pairing traversal of while loop body of the 5th~10 row of above-mentioned code segment arrange chain->filter->statistics->marking->collect in the process of Query Result and ordering; usually can create an interim data structure and (be called ScoreDoc; the data block identical by a plurality of data structures constitutes) store the match information relevant with current document; its the inside can storage document id (being document identification), sort field value, static fields value, the information such as relevance scores of document, ScoreDoc include the field that might use.By with might use field (the C++ false code of stating ScoreDoc as integer field key_1~key_n) in advance is as follows:
Class?ScoreDoc{
Int key_1; // field 1
Int key_2; // field 2
Int key_3; // field 3
......
Int key_n; // field n
};
In common realization, the memory consumption of each document on the ScoreDoc data structure is fixed length, even this time some field is not wherein used in inquiry, as static fields and sort field, their memory headroom is still occupied, and this has just caused memory source waste to a great extent.
For example, if 100 fields are arranged among the ScoreDoc, each field length is 4 bytes, the internal memory of each ScoreDoc consumption will be sizeof (ScoreDoc)=400 byte so, if average in addition each inquiry uses 20 fields wherein, the internal memory that really needs of each ScoreDoc has only 20 * 4=80 byte so, has 80% middle internal memory to be wasted as can be seen.
Another kind of improved plan is in the prior art: search engine is stated the minor structure of multiple succession from the ScoreDoc data structure in advance when compiling: ScoreDoc1, ScoreDoc1_1, ScoreDoc1_1_1, ScoreDoc1_1_1_1......, the query string of resolving the user then when operation decides and use which kind of data structure afterwards.
Define the solution of multiple ScoreDoc during according to compiling, can save certain internal memory, but dirigibility is not enough.Still hypothesis always has 100 fields, does not consume unnecessary internal memory if use any two fields wherein, so need statement when compiling
Figure G2009102601717D00021
Plant the ScoreDoc type,, need statement so if use any three fields wherein
Figure G2009102601717D00022
Plant the ScoreDoc type, and decision uses the logic of which kind of ScoreDoc also to become complicated unusually when inquiry.
The application content
The embodiment of the present application provides a kind of data processing method and system thereof based on isomorphism sequence of blocks of data dynamic assignment, in order to solve the problem of existing memory headroom waste of existing search engine distribute data piece sequence technology and complicated technology realization.
The technical scheme that the embodiment of the present application provides comprises:
A kind of data processing method based on isomorphism sequence of blocks of data dynamic assignment comprises step:
According to the data processing request that gets access to, determine to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request and the data structure of data block;
According to data block quantity and the data structure determined, create the isomorphism sequence of blocks of data;
Utilize the isomorphism sequence of blocks of data of creating to carry out this data processing request.
A kind of data handling system based on the sequence of blocks of data dynamic assignment comprises:
Isomorphism sequence of blocks of data determination module is used for according to the data processing request that gets access to, and determines to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request and the data structure of data block;
Isomorphism sequence of blocks of data creation module is used for data block quantity and the data structure determined according to described isomorphism sequence of blocks of data determination module, creates the isomorphism sequence of blocks of data;
Data processing module, the isomorphism sequence of blocks of data that is used to utilize described isomorphism sequence of blocks of data creation module to create is carried out this data processing request.
In the foregoing description of the application, on the one hand, because the establishment of isomorphism sequence of blocks of data is to create according to the data processing request that receives, therefore, the data block quantity in the isomorphism sequence of blocks of data of being created and the structure of data block data block quantity and the data structure required with carrying out this data processing request adapts, thereby, reduced memory consumption, and then improved query performance with comparing of using in the prior art for being fit to the fixed length block sequence that all querying conditions are provided with.On the other hand, because in the embodiment of the present application is that the required isomorphism sequence of blocks of data of this data processing request is carried out in dynamic creation according to data processing request, when moving, determine the prior art of which kind of data structure of use to compare then with stating plurality of data structures in advance, having saved is the logic determines process of the complexity when choosing data structure, therefore can improve query performance, and technology realizes going up simple.
Description of drawings
The querying flow synoptic diagram that Fig. 1 provides for the embodiment of the present application based on the dynamic creation of isomorphism sequence of blocks of data;
The structural representation that Fig. 2 provides for the embodiment of the present application based on the data handling system of isomorphism sequence of blocks of data dynamic assignment.
Embodiment
At the problem that prior art exists, the embodiment of the present application provides a kind of mechanism of dynamic creation isomorphism sequence of blocks of data, in the embodiment of the present application this mechanism is called VSA (Varible Slab Allocator, variable length byte divider) mechanism.This mechanism can be applicable to search engine or other application programs, the data processing request of when search engine or the operation of other application programs, importing by the parsing user, dynamically determine the size and the structure of isomorphism sequence of blocks of data, thereby reduce the memory source that search engine or other application programs consume in data handling procedure, and then improve the performance of data processing.
Embodiment to the application is described in detail below in conjunction with accompanying drawing.
The VSA mechanism that the embodiment of the present application provides is realized by three main modular, difference called after VariableSlab, VariableSlabAllocator, VariableReference.
VariableSlab represents a data block, the content of data block the inside can be an arbitrary data types, also can be the combination of arbitrary data types, concrete data structure be dynamically determined to VariableSlabAllocator statement back by search engine or other application programs.
VariableSlabAllocator represents divider, is the nucleus module in the VSA mechanism, and search engine or other application programs can be stated general type data to it, and obtains the VariableReference that quotes of general type data; VariableSlabAllocator also is responsible for making up and destroying the VariableSlab object.So-called general type data are meant the data of any type here, both can comprise the fundamental type in the computer programming language, as integer, long, floating type etc., also can comprise user-defined any type, as object.
VariableReference represents quoting of declared data type, and search engine or other application programs are operated corresponding data by VariableReference and VariableSlab.
The ultimate principle of VSA mechanism is:
At first defining the key interface in the VSA mechanism, and write related function program, is example with the C++ programming language, and the key interface of definition can comprise:
(1) with VariableSlabAllocator as class, wherein statement has the function of creating data block, discharges the function of data block, also states general type data VariableReference.Following C++ false code is represented the interface definition of VariableSlabAllocator class:
class?VariableSlabAllocator{
public:
VariableSlab* allocateSlab (); // establishment data block
Void deallocateSlab (VariableSlab * ﹠amp; VarSlab) const; // release data block
template<typename?T>
VariableReference<T〉* declareVariable (const std::string ﹠amp; Name); // statement
General type data
};
Wherein, allocateSlab () is a function of creating data block, and the rreturn value of this function is the address pointer of data block VariableSlab; DeallocateSlab () is the function that discharges data block; VariableReference is quoting of general type data.
(2) data store organisation of definition of data piece VariableSlab, that is, and the memory address skew rule in the definition of data piece between each data.Following C++ false code is represented the interface definition of data block VariableSlab:
struct?VariableSlab{
public:
{ // given offset provides the correspondence position data for void* getSlot (uint32_t variableOffset)
Memory address
return_variableBuffer+variableOffset;
}
private:
char_variableBuffer[1];
};
Wherein, getSlot () is that memory address obtains function, can obtain the memory address of correspondence position data according to given memory address side-play amount offset by this function.
(3) general type data VariableReference is defined, wherein statement has the function of the object among the structure slab, analyse the function of the object among structure (the promptly destroying) slab, read data is to the function of variable from slab, data in the variable are write back the function of slab, wherein, slab is the example of data block.Following C++ false code is represented the interface definition of VariableReference:
template<typename?T>
class?VariableReference{
public:
VariableReference(uint32_t?variableOffset);
~VariableReference();
public:
Void construct (VariableSlab * slab); Object among the // structure slab
Void destruct (VariableSlab * slab); // analyse the object among the structure slab
Void get (const VariableSlab * slab, T ﹠amp; Value) const; // reading from slab
According to arriving value
Void set (VariableSlab * slab, const T﹠amp; Value) const; // data of value are write back
To slab
};
Wherein, construct () is the function of the object of structure among the slab, and destruct () is the function of analysing the object among the structure slab, and get () is the function that reading of data and assignment are given variable from slab, and set () is the function that variate-value is write slab.
Then, just can utilize the interface of above-mentioned definition and the function of establishment, according to the query requests of user input or the data processing request of other types, dynamically structure is carried out the required isomorphism data of this request sequence of determining, so as in data handling procedure this isomorphism sequence of blocks of data of use.
When the application's VSA mechanism is applied to search engine, search engine is behind the querying condition that receives user's input, by obtain quote (VariableReference) of variable to divider (VariableSlabAllocator) statement variable, in this process, VariableSlabAllocator is inner can be preserved the structural information of data block (VariableSlab); Then, search engine constructs the isomorphism sequence of blocks of data by VariableSlabAllocator, and wherein, the isomorphism sequence of blocks of data is the identical data block of a collection of inner structure in the calculator memory; At last, search engine just can be read and write VariableSlab by VariableReference, thereby the query requests that receives is handled.
Referring to Fig. 1, the querying flow synoptic diagram that provides for the embodiment of the present application based on the dynamic creation of isomorphism sequence of blocks of data, this flow process has been described search engine after the query requests that gets access to user's input or be provided with, be configured to the isomorphism sequence of blocks of data of querying flow at this query requests, and utilize the isomorphism sequence of blocks of data that makes up to carry out the process of query manipulation, this process comprises:
Step 101, search engine receive the query requests of user's input, parse querying condition wherein, and according to definite this query requests required isomorphism sequence of blocks of data size and the structure (data volume that comprises data block in the isomorphism sequence of blocks of data, and the data structure of each data block) carried out of this querying condition;
In this step, search engine can parse querying condition from the query requests of user's input, and querying condition can be expressed by query statement.For example, for the article sales data storehouse, query statement can be expressed as:
SELECT?salenumber?FROM?sale
while?TIME?between?12-01?and?12-31
and?COLOR=red?and?SIZE=m?and?TYPE=jacket
Promptly, the user asks the sales volume (salenumber) in Dec among the Query Database sale, querying condition comprises: Dec 1 was that red (COLOR=red), model are that M (SIZE=m), the type of merchandise are upper garment (TYPE=jacket) to Dec 31, color, promptly indicated to inquire about from the sales volume of the upper garment in 1 to 31 Dec, red color M number.
Because querying condition included in the query requests of user's input is varied, therefore involved Database field also has and has less more, as above the querying condition in the example relates to fields such as selling time in the database, color, model, the type of merchandise, and the querying condition in another query requests may only relate to selling time and type of merchandise field (quantity of the upper garment of selling Dec as the request inquiry).
Usually, if the related field of querying condition is many more, required isomorphism sequence of blocks of data is with regard to big more (promptly needing bigger memory headroom that query requests is handled).In the present embodiment, search engine can decide the size of required isomorphism sequence of blocks of data according to the related field quantity of current query requests, makes the isomorphism sequence of blocks of data of generation enough handle this query requests and can too much not waste memory source.
The relation of the related field quantity of the quantity of data block and query requests in the isomorphism sequence of blocks of data can be determined according to factors such as field lengths.Search engine can also be determined the data structure of each data block in the isomorphism sequence of blocks of data according to the type (as integer, character type, user-defined type etc.) of the related field of current query requests, for example, if the related data field of query requests comprises integer, character type, then also should comprise integer, character type in the data structure of each data block in the isomorphism sequence of blocks of data.
The size and the data structure of the isomorphism data sequence that step 102, search engine basis are determined, the data type that is comprised to VariableSlabAllocator claim data block data structure by name variable, VariableSlabAllocator notes the information of all data types in the process of statement, and creates one for the data type of each statement and quote VariableReference;
In this step, the data type that the data block data structure is comprised, be to determine, promptly will comprise the data type of the field that query requests is related in the data type that the data block data structure is comprised at least according to the data type of the related field of query requests.
After step 103, statement are finished, search engine calls corresponding function to create data block VariableSlab in internal memory by the data block establishment function interface allocateSlab () that calls among the VariableSlabAllocator, and each VariableSlab of establishment forms isomorphism sequence of blocks of data;
In this step, search engine is in creating the data block process, can be in VariableSlabAllocator the claim data type, these data types are the data type of the related field of query requests, generate data block by calling the data block establishment function of stating among the VariableSlabAllocator then, because the data block that generates has been inherited the data structure of stating among the VariableSlabAllocator, therefore, the data structure of the data block that is generated will be suitable for current query requests is handled.
Step 104, search engine utilize VariableSlab and the VariableReference in the isomorphism sequence of blocks of data to come service data, thereby carry out the data query flow process according to the query requests of user's input;
Behind step 105, the complete querying flow of search engine, discharge VariableSlab, and and then release isomorphism sequence of blocks of data.
Step 102 in the flow process shown in Figure 1~103rd, the preparatory stage of querying flow.Need 2 data blocks to carry out query requests, and each data block need comprise the data instance of integer data, floating type data and a user-defined type, this stage, pairing C++ false code was exemplified below:
Class?XXX;
VariableSlabAllocator?*alloc=new?VariableSlabAllocator();
VariableReference<int〉* ref1=alloc->declareVariable<int〉(" ref1 "); Int variable of // statement
VariableReference<float〉* ref2=alloc->declareVariable<float〉(" ref2 "); Float variable of // statement
VariableReference<XXX〉* ref3=alloc->declareVariable<XXX〉(" ref3 "); XXX variable of // statement
VariableSlab * slab1=alloc->allocateSlab (); Data block of // establishment
VariableSlab * slab2=alloc->allocateSlab (); // establishment another one data block
The flow process that above-mentioned false code is represented is:
State that a name is called the object of XXX;
A name creating VariableSlabAllocator is called the example of alloc, because alloc inherits from VariableSlabAllocator, function, variable or data structure that follow-up alloc by reference calls among the VariableSlabAllocator to be stated;
VariableReference among the alloc states an integer variable ref1 by reference, and ref1 is the example of VariableReference;
VariableReference among the alloc states a floating type variable ref2 by reference, and ref2 is the example of VariableReference;
Type of VariableReference among alloc statement is XXX (XXX represents by the custom data type) variable ref3 by reference, and ref3 is the example of VariableReference;
Create the data block that name of function allocateSlab () establishment is called slab1 by the data block of calling among the alloc, in this process, allocateSlab () function call is constructed the function construct () of the object among the slab, thereby constructs the data structure of data block slab1;
Create the data block that name of function allocateSlab () establishment is called slab2 by the data block of calling among the alloc, in this process, allocateSlab () function call is constructed the function construct () of the object among the slab, thereby constructs the data structure of data block slab2.
By above description as can be seen, because data block slab1 and slab2 create by alloc, therefore data block slab1 and slab2 have inherited the data structure of stating among the alloc, comprise in this data structure that integer variable ref1, floating type variable ref2 and type are XXX variable ref3.Data block slab1 and slab2 constitute the isomorphism sequence of blocks of data, and the data block quantity in the isomorphism sequence of blocks of data is not limited to 2 that above-mentioned flow process is created, can create the isomorphism sequence of blocks of data according to the needs of querying flow by search engine.
The step 104 of flow process shown in Figure 1~105th, the execute phase of querying flow.Also need 2 data blocks with above-mentioned execution query requests, and each data block need comprise the data instance of integer data, floating type data and a user-defined type, this stage, pairing C++ false code was exemplified below:
int?aaa;
Ref1->get (slab1, aaa); // from slab1, read the variate-value of ref1 correspondence to aaa
float?bbb=10.0f;
Ref2->set (slab2, bbb); // value of bbb is written to the position of slab2 correspondence
alloc->deallocate(slab1);
alloc->deallocate(slab2);
delete?alloc;
The flow process that above-mentioned false code is represented is:
State that a name is called the integer variable of aaa;
Ref1 calls wherein get function reads the ref1 correspondence from slab1 variate-value and assignment and gives aaa by reference;
Be floating type variable bbb assignment;
Ref2 calls the position that wherein set function is written to the value of bbb the slab2 correspondence by reference;
Discharge function destruction data block slab1 by the data block of calling among the alloc, in this process, function d the estruct () function of the object among deallocate () the function call structure slab, thus analyse the data structure of structure data block slab1;
Discharge function destruction data block slab2 by the data block of calling among the alloc, in this process, function d the estruct () function of the object among deallocate () the function call structure slab, thus analyse the data structure of structure data block slab2;
Destroy the alloc example.
By above description as can be seen, after defining various interface and function in the embodiment of the present application, after search engine receives query requests, can be at this query requests, utilize the various interface of definition and the isomorphism sequence of blocks of data that this query requests desired volume, data type are carried out in the function dynamic creation, thereby, reduced memory consumption, and then improved query performance with comparing of using in the prior art for being fit to the fixed length ephemeral data structure that all querying conditions are provided with.On the other hand, owing to be to carry out the required isomorphism sequence of blocks of data of querying flow in the embodiment of the present application according to the query requests dynamic creation of input, with state that in advance plurality of data structures decides after resolving user's query string in when operation then and use the prior art of which kind of data structure to compare, having saved is the logic determines process of the complexity when choosing data structure, therefore can improve query performance, and technology realizes going up simple.
Be example also with ScoreDoc of the prior art, 100 fields are arranged among this ScoreDoc, each field length is 4 bytes, the internal memory of each ScoreDoc consumption will be sizeof (ScoreDoc)=400 byte so, if average in addition each inquiry uses 20 fields wherein, the internal memory that really needs of each ScoreDoc has only 20 * 4=80 byte so, has 80% middle internal memory to be wasted.And the employing VSA mechanism that the embodiment of the present application provided, querying condition according to user's input dynamically generates VariableSlab, the field that is comprised among this VariableSlab all is to carry out the used field of this querying condition, the field irrelevant with this querying condition then do not need to be included among the VariableSlab, like this, the internal memory that VariableSlab consumed is less than ScoreDoc of the prior art.
State the minor structure of multiple succession in advance with in VSA that the embodiment of the present application provided mechanism and the prior art from the ScoreDoc data structure, deciding according to the user inquiring condition in when operation then uses the technical scheme of which kind of data structure to compare, owing to be querying condition dynamic construction VariableSlab in the embodiment of the present application according to user's input, and do not need to state in advance the minor structure of multiple ScoreDoc data structure, do not need therefrom to choose suitable minor structure yet, therefore saved complicated logic determines process.
In the above-mentioned flow process that the embodiment of the present application provided, each operating process all can be realized by corresponding functional modules.Based on identical technical conceive, the embodiment of the present application also provides a kind of data handling system based on isomorphism sequence of blocks of data dynamic assignment.The functional module that is comprised in this system is corresponding with the corresponding operating in the above-mentioned flow process, comprising:
Isomorphism sequence of blocks of data determination module 201 is used for according to the data processing request that gets access to, and determines to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request and the data structure of data block;
Isomorphism sequence of blocks of data creation module 202 is used for data block quantity and the data structure determined according to isomorphism sequence of blocks of data determination module 201, creates the isomorphism sequence of blocks of data;
Data processing module 203, the isomorphism sequence of blocks of data that is used to utilize isomorphism sequence of blocks of data creation module 202 to create is carried out this data processing request.
Further this system also can comprise: the isomorphism sequence of blocks of data is destroyed module 204, is used for after complete described data processing request, destroys the isomorphism sequence of blocks of data of creating.
The function that each functional module had in the said system is corresponding with the corresponding flow process in the aforementioned flow process, does not repeat them here.
The application is that reference is according to asking the process flow diagram and/or the block scheme of method, equipment (system) and the computer program of embodiment to be described in the basis.Should understand can be by the flow process in each flow process in computer program instructions realization flow figure and/or the block scheme and/or square frame and process flow diagram and/or the block scheme and/or the combination of square frame.Can provide these computer program instructions to the processor of multi-purpose computer, special purpose computer, Embedded Processor or other programmable data processing device to produce a machine, make the instruction of carrying out by the processor of computing machine or other programmable data processing device produce to be used for the device of the function that is implemented in flow process of process flow diagram or a plurality of flow process and/or square frame of block scheme or a plurality of square frame appointments.
These computer program instructions also can be stored in energy vectoring computer or the computer-readable memory of other programmable data processing device with ad hoc fashion work, make the instruction that is stored in this computer-readable memory produce the manufacture that comprises command device, this command device is implemented in the function of appointment in flow process of process flow diagram or a plurality of flow process and/or square frame of block scheme or a plurality of square frame.
These computer program instructions also can be loaded on computing machine or other programmable data processing device, make on computing machine or other programmable devices and to carry out the sequence of operations step producing computer implemented processing, thereby the instruction of carrying out on computing machine or other programmable devices is provided for being implemented in the step of the function of appointment in flow process of process flow diagram or a plurality of flow process and/or square frame of block scheme or a plurality of square frame.
Obviously, those skilled in the art can carry out various changes and modification and the spirit and scope that do not break away from the application to the application.Like this, if these of the application are revised and modification belongs within the scope of the application's claim and equivalent technologies thereof, then the application also is intended to comprise these changes and modification interior.

Claims (12)

1. the data processing method based on isomorphism sequence of blocks of data dynamic assignment is characterized in that, comprises step:
According to the data processing request that gets access to, determine to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request and the data structure of data block;
According to data block quantity and the data structure determined, create the isomorphism sequence of blocks of data;
Utilize the isomorphism sequence of blocks of data of creating to carry out this data processing request.
2. the method for claim 1 is characterized in that, creates the isomorphism sequence of blocks of data, comprising:
According to the data type of determining that data structure comprised, state described data type to predefined isomorphism sequence of blocks of data divider;
According to the data block quantity of determining, utilize the data block of stating in the described isomorphism sequence of blocks of data divider to create the data type of function and statement, create the data block in the described isomorphism sequence of blocks of data one by one.
3. method as claimed in claim 2 is characterized in that, the data type that described isomorphism sequence of blocks of data divider also is each statement is created corresponding reference object, and statement has the function of creating the data object in the data block in the described reference object;
The data type of utilizing the data block of stating in the described isomorphism sequence of blocks of data divider to create function and statement is created data block, is specially:
Call the data block of stating in the described isomorphism sequence of blocks of data divider and create function and execution, described data block is created function in the process of implementation, call the function and the execution of the data object in the establishment data block of being stated in the described reference object, create obtaining data block.
4. method as claimed in claim 2, it is characterized in that, the data type that described isomorphism sequence of blocks of data divider also is each statement is created corresponding reference object, and statement is useful on first function and second function that is used to realize writing to data block data of realization reading of data from data block in the described reference object;
Utilize the isomorphism sequence of blocks of data of creating to carry out data processing request, comprising:
Described by reference reference object calls wherein first function of statement, and reading of data and assignment are given named variable from data block; Or/and
Described by reference reference object calls wherein second function of statement, with the value writing data blocks of named variable.
5. method as claimed in claim 2 is characterized in that, the data type that described isomorphism sequence of blocks of data divider also is each statement is created corresponding reference object, and statement has the function of analysing the data object in the structure data block in the described reference object;
After the complete described data processing request, also comprise: destroy each data block in the described isomorphism sequence of blocks of data one by one, and when destroying each data block, call data block destructor function and the execution stated in the described isomorphism sequence of blocks of data divider, described data block destructor function in the process of implementation, call function of analysing the data object in the structure data block and the execution stated in the described reference object, create obtaining data block.
6. the method for claim 1 is characterized in that, after the complete described data processing request, also comprises: destroy the isomorphism sequence of blocks of data of creating.
7. as each described method of claim 1-6, it is characterized in that, according to the data processing request that gets access to, determine to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request, be specially: parse the quantity of the related field of described data processing request, determine to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request according to the quantity of described field;
According to the data processing request that gets access to, determine to carry out the data structure of data block in the required isomorphism sequence of blocks of data of this data processing request, be specially: the data type that parses the related field of described data processing request, determine to carry out the data structure of data block in the required isomorphism sequence of blocks of data of this data processing request according to the data type of described field, make the data type that comprises described field in the data structure of data block at least.
8. the data handling system based on isomorphism sequence of blocks of data dynamic assignment is characterized in that, comprising:
Isomorphism sequence of blocks of data determination module is used for according to the data processing request that gets access to, and determines to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request and the data structure of data block;
Isomorphism sequence of blocks of data creation module is used for data block quantity and the data structure determined according to described isomorphism sequence of blocks of data determination module, creates the isomorphism sequence of blocks of data;
Data processing module, the isomorphism sequence of blocks of data that is used to utilize described isomorphism sequence of blocks of data creation module to create is carried out this data processing request.
9. system as claimed in claim 8 is characterized in that, described isomorphism sequence of blocks of data creation module specifically is used for: according to the data type of determining that data structure comprised, state described data type to predefined isomorphism sequence of blocks of data divider; And, according to the data block quantity of determining, utilize the data block of stating in the described isomorphism sequence of blocks of data divider to create the data type of function and statement, create the data block in the described isomorphism sequence of blocks of data one by one.
10. system as claimed in claim 9, it is characterized in that, described isomorphism sequence of blocks of data divider in the described isomorphism sequence of blocks of data creation module also is used for: for the data type of each statement is created corresponding reference object, statement is useful on first function and second function that is used to realize writing to data block data of realization reading of data from data block in the described reference object;
Described data processing module also is used for: described by reference reference object, call wherein first function of statement, and reading of data and assignment are given named variable from data block; Or/and described by reference reference object calls wherein second function of statement, with the value writing data blocks of named variable.
11. as each described system of claim 1-10, it is characterized in that, described isomorphism sequence of blocks of data determination module specifically is used for: parse the quantity of the related field of described data processing request, determine to carry out the quantity of data block in the required isomorphism sequence of blocks of data of this data processing request according to the quantity of described field; And, parse the data type of the related field of described data processing request, determine to carry out the data structure of data block in the required isomorphism sequence of blocks of data of this data processing request according to the data type of described field, make the data type that comprises described field in the data structure of data block at least.
12. as each described system of claim 1-10, it is characterized in that, also comprise:
The isomorphism sequence of blocks of data is destroyed module, is used for after complete described data processing request, destroys the isomorphism sequence of blocks of data of creating.
CN2009102601717A 2009-12-24 2009-12-24 Data processing method based on dynamic allocation of isomorphic data block array and system thereof Pending CN102109988A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102601717A CN102109988A (en) 2009-12-24 2009-12-24 Data processing method based on dynamic allocation of isomorphic data block array and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102601717A CN102109988A (en) 2009-12-24 2009-12-24 Data processing method based on dynamic allocation of isomorphic data block array and system thereof

Publications (1)

Publication Number Publication Date
CN102109988A true CN102109988A (en) 2011-06-29

Family

ID=44174164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102601717A Pending CN102109988A (en) 2009-12-24 2009-12-24 Data processing method based on dynamic allocation of isomorphic data block array and system thereof

Country Status (1)

Country Link
CN (1) CN102109988A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049485A (en) * 2012-11-30 2013-04-17 浙江工商大学 City public data flow fusion method based on wavelet timing sequence arborescence outline
CN106528551A (en) * 2015-09-09 2017-03-22 北京国双科技有限公司 Memory application method and apparatus
CN110134727A (en) * 2019-04-03 2019-08-16 清华大学天津高端装备研究院 A kind of data collection and transmission for serving manufacture execution level

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512332A (en) * 2002-12-31 2004-07-14 ����̩ƽ Processing method for self discribing data object

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512332A (en) * 2002-12-31 2004-07-14 ����̩ƽ Processing method for self discribing data object

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘宝祥: "Visual C++中动态数组的使用", 《吉林师范大学学报(自然科学版)》 *
周畅: "C++编程实现可动态创建的无限维数组", 《电脑编程技巧与维护》 *
周美莲,李青: "动态分配多维数组及其应用", 《信息技术》 *
张伟: "C/C++中堆与栈的区别和应用", 《长治学院学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049485A (en) * 2012-11-30 2013-04-17 浙江工商大学 City public data flow fusion method based on wavelet timing sequence arborescence outline
CN106528551A (en) * 2015-09-09 2017-03-22 北京国双科技有限公司 Memory application method and apparatus
CN110134727A (en) * 2019-04-03 2019-08-16 清华大学天津高端装备研究院 A kind of data collection and transmission for serving manufacture execution level
CN110134727B (en) * 2019-04-03 2023-11-14 清华大学天津高端装备研究院 Data acquisition and analysis system serving manufacturing execution layer

Similar Documents

Publication Publication Date Title
US10318511B2 (en) Expression tree interning
Lemire et al. Roaring bitmaps: Implementation of an optimized software library
CN108052321B (en) Method for automatically generating intelligent contract of block chain based on configuration information
Ai et al. Squeezing out All the Value of Loaded Data: An Out-of-core Graph Processing System with Reduced Disk {I/O}
CN102460420B (en) Conditional operation in an internal processor of a memory device
CN105808284B (en) A kind of method for updating increment and the server using it
EP3803570A1 (en) Systems and methods for dataflow graph optimization
CN103914506A (en) Data retrieval apparatus, data storage method and data retrieval method
CN109446362A (en) Chart database structure, diagram data storage method, device based on external memory
Demaine et al. Energy-efficient algorithms
Aoga et al. An efficient algorithm for mining frequent sequence with constraint programming
CN103455489A (en) Method and system for rapidly constructing key performance indicators (KPIs) of enterprises
CN110059129A (en) Date storage method, device and electronic equipment
CN101777061A (en) JAVA card object management method and JAVA card
CN116521576B (en) EDA software data processing system
CN102591787A (en) Method and device for data processing of JAVA card
CN102109988A (en) Data processing method based on dynamic allocation of isomorphic data block array and system thereof
CN100395712C (en) Source management method for software system
CN102567419B (en) Mass data storage device and method based on tree structure
CN105468541A (en) Cache management method for transparent-computing-oriented intelligent terminal
CN102169464B (en) Caching method and device used for non-volatile memory, and intelligent card
US11514236B1 (en) Indexing in a spreadsheet based data store using hybrid datatypes
Lagraa et al. An efficient exact algorithm for triangle listing in large graphs
Schram et al. SAWdoubler: A program for counting self-avoiding walks
Nguyen et al. Scratch-pad memory allocation without compiler support for java applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1159284

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110629

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1159284

Country of ref document: HK