WO2012169675A1 - 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 - Google Patents
누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 Download PDFInfo
- Publication number
- WO2012169675A1 WO2012169675A1 PCT/KR2011/004213 KR2011004213W WO2012169675A1 WO 2012169675 A1 WO2012169675 A1 WO 2012169675A1 KR 2011004213 W KR2011004213 W KR 2011004213W WO 2012169675 A1 WO2012169675 A1 WO 2012169675A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- record
- moving average
- records
- cumulative moving
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Definitions
- the following embodiments are directed to a method and apparatus for providing a multiple search tree.
- a multiple search tree means a search tree with a degree greater than two.
- Multiple search trees may have a lower height than binary trees containing the same number of records.
- the number of accesses to the storage device to search for a particular record in the tree can be reduced, and the computational speed of the multiple search tree, such as search, insert, and delete, can be performed faster.
- the multiple search tree is balanced.
- the node into which the record is inserted or deleted or the nodes associated with the node can be split or rotated.
- the records stored in the split node are distributed by the same number to the two nodes created by the split.
- An embodiment of the present invention may provide a node partitioning method of a multiple search tree that partitions a node based on a cumulative moving average of the nodes.
- One embodiment of the present invention may provide a storage device for dividing a node of a multiple search tree based on a cumulative moving average.
- inserting a record in a first node calculating a cumulative moving average of the first node based on a position value in the first node of the record, based on the cumulative moving average Calculating a partition position of the first node and partitioning the first node into a second node and a third node based on the partition position.
- the position value may be a value obtained by dividing the number of the slot into which the record is inserted by the number of records in the first node.
- the calculating of the cumulative moving average of the first node may include: dividing the number of the slot into which the record is inserted by the number of records in the first node, the cumulative moving average, the number of records in the first node, and the The method may include updating the cumulative moving average based on an integer that is incremented by 1 whenever any record is inserted into the first node.
- the split position may be the middle of the total length of the split target records arranged in ascending order.
- the split position may be a position at which the total length of the split target records arranged in ascending order is divided by a predetermined ratio.
- the split position may be a position at which the total length of the split target records arranged in ascending order is divided by the ratio of the cumulative moving average.
- the length of the records of the multiple search tree may be variable.
- the record may be an index of a database.
- the multiple search tree may be a B tree or a B + tree.
- an insertion processing unit for inserting a record into a first node of a multiple search tree, and a cumulative movement of calculating a cumulative moving average of the first node based on a position value in the first node of the record.
- a division processor configured to calculate a split position of the first node based on an average calculator and the cumulative moving average, and divide the first node into a second node and a third node based on the split position.
- the cumulative moving average calculation unit may include: a value obtained by dividing the number of the slot into which the record is inserted by the number of records in the first node, the cumulative moving average, the number of records in the first node, and any record in the first node.
- the cumulative moving average of the first node may be calculated by updating the cumulative moving average based on an integer increasing by 1 each time is inserted.
- the division processing unit may determine, as the division position, the middle of the total length of the division target records arranged in ascending order.
- the division processing unit may determine, as the division position, a position for dividing the total length of the division target records arranged in ascending order by a predetermined ratio.
- the division processing unit may determine, as the division position, a position for dividing the total length of the split target records arranged in ascending order by the ratio of the cumulative moving average.
- a method and apparatus are provided for efficiently utilizing storage space allocated to a multiple search tree by dividing the nodes of the multiple search tree based on the cumulative moving average.
- a method of splitting a multi-way search tree that divides a node according to a pattern of values of records inserted into a node by determining a split position of a node of a multi-search tree based on a cumulative moving average, and an apparatus using the above-described split method.
- 1 and 2 illustrate a process of sequentially inserting records into a multiple search tree.
- FIG. 4 is a flowchart illustrating a method of inserting a record into a multiple search tree according to an embodiment of the present invention.
- FIG. 5 illustrates a method of calculating a cumulative moving average according to an example of the present invention.
- FIG. 6 illustrates a method of determining a split position of a node based on a cumulative moving average of nodes according to an embodiment of the present invention.
- FIG. 7 illustrates a method in which fixed length records are divided by an SP according to an embodiment of the present invention.
- FIG 8 illustrates a method in which variable length records are divided by an SP according to an embodiment of the present invention.
- FIG. 9 is a structural diagram of a storage device 900 according to an embodiment of the present invention.
- the multiple search tree may be a tree based on a B-tree, a B + tree, or other B-tree.
- the multiple search tree described in the embodiments and examples of the present invention may be a tree representing only index nodes, omitting data nodes.
- the operation of continuously inserting specific records into the multi-search tree may indicate only when a record is inserted into an index node of the multi-search tree.
- the root node of the multiple search tree may or may not include a record. If the root node does not contain a record, the record can only be inserted into the descendants of the root node while the root node is empty.
- a record may mean entire data including a key.
- a record may mean only a key of all data. That is, the record of the embodiments and examples of the present invention may be replaced with a key.
- the entire data corresponding to the key may be linked from the key through a pointer or the like and accessed through the key.
- the record or key may be an index of a database.
- the multiple search tree may be for managing a particular index of the database.
- 1 and 2 illustrate a process of sequentially inserting records into a multiple search tree according to an embodiment of the present invention.
- the value of the record is compared with the value of the record inserted within a node of the multiple search tree. 1 and 2, the values of the inserted records increase sequentially.
- the degrees of the multiple search tree of FIGS. 1 and 2 are three. That is, up to two records can be inserted into a node of the multi-search tree.
- a node of a multiple search tree has n-1 slots when the order of the multiple search tree is n. The record is inserted into one of the slots.
- the first tree 110 of FIG. 1 is a record " 10 " inserted into an empty polynomial search tree.
- the second tree 120 of FIG. 1 shows a result of additionally inserting the record "20" into the first tree 110.
- the record “30” is additionally inserted into the second tree 120.
- node 122 of second tree 120 there is no longer a space (i.e., a slot) into which a record is to be inserted.
- node 122 of second tree 120 is divided into two nodes 134 and 136.
- a new root node 132 is created as the parent node of the two divided nodes 134 and 136.
- the three nodes 132, 134, and 136 of the third tree 130 each include only one record. That is, the third tree 130 includes only half as many records as the maximum number of records that the third tree 130 can contain. Thus, the storage space allocated for the third tree 130 may be wasted.
- the record “40” is additionally inserted into the third tree 130.
- the record “50” is additionally inserted into the fourth tree 140 of FIG. 1.
- the record "50" should be inserted into the rightmost end node 142 of the fourth tree 140, but there is no empty space in the rightmost end node 142. Thus, the rightmost end node 142 is split into two nodes 214 and 216 in the first tree 210 of FIG. 2.
- the split two nodes 214 and 216 each contain one record, and the record "40" with the median value is passed to the parent node 212 of the split two nodes 214 and 216. Since there is an empty space in the parent node 212, the record "40" is inserted into the parent node 212.
- the record “60” is additionally inserted into the first tree 210 of FIG. 2.
- the record "60" is inserted into the rightmost end node 224 of the second tree 220.
- the record “70” is additionally inserted into the second tree 220 of FIG. 2.
- the rightmost end node 224 is divided into two nodes 238 and 240.
- the divided two nodes 238 and 240 each contain one record, and the record "60" with the median value is assigned to the parent node 222 of the rightmost end node 224 of the second tree 220. It must be inserted. However, since there is no empty space within parent node 222, parent node 222 is subdivided into two nodes 234 and 236.
- parent node 222 is the root node
- new root node 232 is created as parent node 222 splits.
- the new root node 232 has two nodes 234 and 236, created as the parent node 222 is split, as child nodes.
- the two nodes 234 and 236 each contain one record, 1) record “ 20 “ and 2) record “ 40 " that the parent node 220 included, and the rightmost distal node 224 split. 3) Record " 40 " having a median value of 3) Record " 60 " delivered to parent node 220 is inserted into new root node 232.
- the nodes of the third tree 230 each contain only one record. That is, the third tree 230 includes only half as many records as the maximum number of records that the third tree 230 can contain. Thus, the storage space allocated for the third tree 230 may be wasted.
- FIG 3 illustrates a problem when records having values sequentially increased in the nodes of the multiple search tree according to an embodiment of the present invention.
- the second tree 350 represents the result of the insertion of a new record "90" into the node 330 of the first tree 310.
- node 330 Since there is no free space within node 330, node 330 must be split in order for a new record " 90 " to be inserted.
- the median value of the records in node 330 and the new record "90" is record "50".
- node 330 is divided into first partitioned node 360 and second partitioned node 370. That is, the first partitioned node 360 includes nodes having a value less than or equal to the median value of the records in the node 330 and the new record "90". The second partitioned node 370 also includes nodes with a value greater than or equal to the median value of the records in node 330 and the new record " 90. "
- the first partitioned node 360 and the second partitioned node 370 may each have n / 2 records.
- the median record "50" is passed for insertion to the parent node 320 of node 330. If parent node 320 also does not have free space, parent node 320 is also partitioned as described above.
- FIG. 4 is a flowchart illustrating a method of inserting a record into a multiple search tree according to an embodiment of the present invention.
- step 410 the node to which additional records are to be inserted is retrieved. Names the retrieved node as the target node.
- step 420 it is checked whether there is space in the target node to insert additional records. That is, it is checked whether the number of records in the target node is smaller than the number of slots allocated to the node.
- steps 430, 440, and 450 are performed to insert the additional record in the target node and calculate the cumulative moving average of the target node.
- steps 460, 470 and 480 are performed to split the target node to insert the additional record into the plural search tree.
- steps 430, 440, and 450 performed when there is space in the target node to insert additional records will be described.
- record insert step 430 an additional record is inserted into the target node.
- the cumulative moving average (or running average) of the target node is based on the position value in the target node of the additional record. Is calculated.
- a position value in the target node of the additional record is calculated based on the position where the additional record is inserted into the target node.
- the location value of the additional record may be a value between 0 and 1, inclusive.
- the position value of the additional record may be a value obtained by dividing the index of the slot into which the additional record is inserted by the number of records (ie, records stored in the target node) in the target node.
- Slot numbers can start at 0 or 1. In the following examples it is assumed that the slot numbers start at one.
- the cumulative moving average of the target node is calculated based on the position value of the additional record.
- the cumulative moving average of nodes that do not contain records may be initialized to zero or one.
- the cumulative moving average may be calculated based on Equation 1 below.
- CA i-1 is the cumulative moving average of the target node before the additional record is inserted.
- CA i is the cumulative moving average updated after the additional record is inserted.
- i is a sequence. In other words, it is an integer that increments by 1 whenever any record is inserted into the target node. i can start at 1.
- x i is the position value of the additional record.
- x i indicates that x i is the position value of the i th record inserted into the target node. That is, the position values used to calculate the cumulative moving average of the target node are x 1 , x 2 , x 3 , ..., x n in order.
- the number of records in the target node may be reduced.
- i a variable that is continuously increasing
- the position value of a record inserted into the target node after deletion or division may be excessively less reflected in updating the cumulative moving average.
- the cumulative moving average may be calculated based on Equation 2 below.
- the cumulative moving average of the target node is obtained by dividing the number of slots into which additional records are inserted by the number n of records in the target node x i , the cumulative moving average CA i-1. It may be calculated based on the number n of records in the target node and an integer i that increases by 1 each time any record is inserted into the target node.
- the cumulative moving average may be stored in the header of the node. That is, the cumulative moving average calculated for the target node may be stored in the header of the target node, and may be extracted from the header of the target node for later update.
- split positions of split target records are calculated based on the cumulative moving average of the target node.
- the split target records may refer to a record to be included in one of the two nodes generated by the split and a record to be transmitted to the parent node of the target node when the target node is split.
- the split target records may mean records in the target node and additional records.
- the split target record may include records in the target node.
- the division position of the mall may represent a specific position in a series in which the division target records are arranged in ascending order.
- the split position of the target node may indicate a record to be delivered to the parent node of the target node when the target node is split among the records and additional records in the target node. That is, when the split position of the target node is calculated, the record corresponding to the calculated split position may be a criterion of the split, and the record that is the split standard may be transferred to the parent node of the target node for splitting.
- the record corresponding to the calculated split position is named as the reference record.
- the target node is divided into a left segmentation node and a right segmentation node based on the segmentation position.
- records having a value smaller than the value of the reference record may be included in the left splitting node, and records having a value larger than the value of the reference record may be included in the right splitting node.
- records positioned before the reference record among the split target records may be included in the left split node, and records positioned after the reference record among the split target records may be included in the right split node. have.
- step 410 is redone so that the reference record can be delivered to the parent node of the target node for insertion.
- the left split node and the right split node may be initialized, respectively.
- the cumulative moving average of the left split node may be initialized to the cumulative moving average of the target node.
- the cumulative moving average of the right split node may be initialized to the cumulative moving average of the target node.
- the sequence i of the left split node may be initialized to zero. Initialization of this sequence i allows records newly inserted in the left split node to have a high impact on the cumulative moving average of the left split node. In addition, the sequence i of the right split node may be initialized to zero.
- step 410 is performed again.
- the re-executing step 410 may be a step of inserting a record (that is, a reference record) not included in the left split node and the right split node into the parent node of the target node in step 470.
- the additional record may be changed to the reference record of step 470.
- the node retrieved in step 410 may be the parent node of the previous target node.
- the method of inserting a record into the multiple search tree including the steps 410 to 480 described above may be regarded as a node partitioning method of the multiple search tree. That is, the steps 430 through 450 may be steps of calculating a cumulative moving average of the split target node, and the steps of dividing the split target node based on the calculated cumulative moving average may include steps 460 through 480. Can be.
- FIG. 5 illustrates a method of calculating a cumulative moving average according to an example of the present invention.
- the first node 510 is a blank node.
- the initial value of the sequence i of the empty node may be zero.
- the initial cumulative moving average CA 0 of the blank node may be 0 or 1.
- the second node 520 is a node in which record "40" is inserted into the first node 510.
- sequence i increases by 1 as a new record is inserted. Therefore, the value of sequence i is 1 at this time.
- the value of the sequence i is 1 and the number of records inserted into the second node 520 is 1. Therefore, the value of I is 1.
- the cumulative moving average CA 1 of the second node 520 is 1.
- the third node 530 is a node in which record "80" is inserted into the second node 520.
- sequence i increases by 1 as a new record is inserted. Therefore, the value of sequence i is 2 at this time.
- the value of the sequence i is 2 and the number of records inserted into the third node 530 is 2. Thus, the value of I is two.
- the cumulative moving average CA 2 of the third node 530 is 1.
- the fourth node 540 is a node in which the record "20" is inserted into the second node 520.
- sequence i increases by 1 as a new record is inserted. Therefore, the value of sequence i is 2 at this time.
- the value of the sequence i is 2 and the number of records inserted into the fourth node 540 is 2. Thus, the value of I is two.
- the cumulative moving average CA 2 of the fourth node 540 is 3/4.
- the fifth node 550 is a node in which the record "10" is inserted into the fourth node 540.
- sequence i increases by 1 as a new record is inserted. Therefore, the value of sequence i is 3 at this time.
- the value of the sequence i is 3 and the number of records inserted into the fifth node 550 is three. Thus, the value of I is three.
- the cumulative moving average CA 3 of the fifth node 550 is 22/36.
- the cumulative moving average of a node when dividing the node, it stores many records in the left splitting node (i.e., the node into which low-value records are inserted) and the right splitting node (i.e. high). By storing a small number of records in a node in which records having values are inserted), storage locations allocated to the left split node and the right split node can be efficiently used.
- the storage allocated to the left partitioned node and the right partitioned node by storing fewer records in the left partitioned node and storing fewer records in the right partitioned node Place can be used efficiently.
- the storage locations allocated to the divided nodes can be efficiently used.
- the height of the multiple search tree may be lowered by dividing the node based on the cumulative moving average of the nodes.
- FIG. 6 illustrates a method of determining a split position of a node based on a cumulative moving average of nodes according to an embodiment of the present invention.
- the split position of the node may be determined in proportion to the cumulative moving average of the nodes.
- the cumulative moving average of the node is outlined as a Cumulative Moving Average (CA)
- the split position of the node is outlined as a SP (split point).
- TRL total record length
- the SP may be the end of the TRL.
- the division target records may represent the division target records described above with reference to FIG. 4. That is, the split target records may refer to records already inserted into a node (ie, the target node of FIG. 4) and records newly inserted into the node (ie, the additional record of FIG. 4).
- all the split target records may be included in the left split node, and the right split node may be an empty node.
- the SP may be the beginning of the TRL (ie zero).
- all the split target records may be included in the right split node, and the left split node may be an empty node.
- a reference record may be determined among split target records arranged in ascending order in proportion to CA.
- the SP may have a value indicating the determined reference record.
- the SP may have a value indicating a record having a middle value (ie, a value of the top 50%) among the split target records sorted in ascending order.
- the SP may be determined based on the range to which the CA belongs.
- Graph 610 of FIG. 6 shows the distribution of CA.
- the SP may indicate the middle of the TRL. That is, the value of SP may be a value obtained by multiplying TRL by 0.5.
- the SP may indicate a location at which the TRL is divided by the ratio of the CA. That is, the value of the SP may be a value obtained by multiplying the TRL by the CA.
- the SP may indicate a location at which the TRL is divided by a predetermined ratio (eg, P 1 % or P 2 %).
- the value of the SP can be a value obtained by multiplying the P 1/100 (or P 2/100) in the TRL.
- P 1 and P 2 described above are exemplary. That is, the value of SP may be a value obtained by multiplying TRL by P 3 .
- P 3 may be a natural number of 0 or more and 1 or less.
- t 1 , t 2 , t 3 and t 4 may be specific values.
- the value of t 1 may be 0.05.
- the value of t 2 may be 0.2 days.
- the value of t 3 may be 0.8.
- the value of t 4 may be 0.95.
- FIG. 7 illustrates a method in which fixed length records are divided by an SP according to an embodiment of the present invention.
- Target node 710 includes four records 712, 714, 716 and 718.
- record "40" 720 is inserted into target node 710, split target records 712, 714, 716, 718, and 720, if sorted in ascending order, record “10" 712, record “. 20 “714, record” 30 "716, record” 40 "720, and record” 50 "718.
- the left split node 740 includes records 712 and 714 located before the reference record 716, and the right split node 750 is located after the reference record 716. Records 720 and 718.
- the reference record 716 is inserted into the parent node 730 of the target node 710.
- FIG 8 illustrates a method in which variable length records are divided by an SP according to an embodiment of the present invention.
- Target node 810 includes four records 812, 814, 816, and 718.
- the length of record “AA” 812 is two.
- the length of record “BBBB” 814 is four.
- the length of record “C” 816 is one.
- the length of record “DD” 818 is two.
- the SP may be located at a distance of six from the front of the series of split target records.
- This may indicate a sixth storage unit (eg, a byte, a word, or a field) from the front of the storage space occupied by the split target records.
- a sixth storage unit eg, a byte, a word, or a field
- the record occupying the position corresponding to the value of SP among the split target records is the record "BBBB" 814.
- record "BBBB” 814 is determined as the reference record.
- the left split node 840 includes the record 812 located before the reference record 814
- the right split node 850 includes the records located after the reference record 814 ( 816, 818, and 820).
- FIG. 9 is a structural diagram of a storage device 900 according to an embodiment of the present invention.
- the storage device 900 may include an insertion processor 910, a cumulative moving average calculator 920, a division processor 930, and a storage 940.
- the insertion processor 910 may perform steps 410, 420, and 430.
- the insertion processor 910 may insert a record into the first node of the multiple search tree.
- the cumulative moving average calculator 920 may perform steps 440 and 450.
- the cumulative moving average calculator 920 may calculate the cumulative moving average of the first node based on a position value in the first node of the inserted record.
- the position value may be a value obtained by dividing the number of the slot into which the record is inserted by the number of records in the first node.
- the cumulative moving average calculation unit 920 1) divides the number of the slot into which the record is inserted by the number of records in the first node, 2) the cumulative moving average, 3) the number of records in the first node, and 4)
- the cumulative moving average of the first node may be calculated by updating the cumulative moving average based on an integer that is incremented by 1 each time any record is inserted into the first node.
- the cumulative moving average calculator 920 may calculate the cumulative moving average based on Equation 1 or Equation 2 described above.
- the division processor 930 may perform steps 460, 470, and 480.
- the division processor 930 may calculate a division position of the first node based on the cumulative moving average, and divide the first node into a second node and a third node based on the calculated division position.
- the division processing unit 930 may determine, as the division position, the middle of the total lengths of the division target records arranged in ascending order.
- the division processing unit 930 may determine, as the division position, a position for dividing the total length of the division target records arranged in ascending order by a predetermined ratio.
- the division processing unit 930 may determine, as the split position, a position for dividing the total length of the split target records arranged in ascending order by the ratio of the cumulative moving average.
- the storage unit 940 may store the multiple search tree.
- the storage unit 940 may store nodes constituting the multiple search tree.
- the storage unit 940 may store the cumulative moving average and the sequence of the node in the header of the node.
- the functions of the components 910, 920, and 930 may be performed by a single controller (not shown).
- the controller may represent a single or multi chip, a processor, or a core.
- Each of the components 910, 920, and 930 may represent a function, a library, a service, a process, a thread, or a module performed by the controller. have.
- Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (19)
- 제1 노드에 레코드를 삽입하는 단계;상기 레코드의 상기 제1 노드 내의 위치 값에 기반하여 상기 제1 노드의 누적 이동 평균을 계산하는 단계;상기 누적 이동 평균에 기반하여 상기 제1 노드의 분할 위치를 계산하는 단계; 및상기 분할 위치를 기준으로 상기 제1 노드를 제2 노드 및 제3 노드로 분할하는 단계를 포함하는, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 위치 값은 상기 레코드가 삽입된 슬롯의 번호를 상기 제1 노드 내의 레코드들의 개수로 나눈 값인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 제1 노드의 누적 이동 평균을 계산하는 단계는,상기 레코드가 삽입된 슬롯의 번호를 상기 제1 노드 내의 레코드들의 개수로 나눈 값, 상기 누적 이동 평균, 상기 제1 노드 내의 레코드들의 개수 및 상기 제1 노드에 임의의 레코드가 삽입될 때마다 1씩 증가하는 정수에 기반하여 상기 누적 이동 평균을 갱신하는 단계를 포함하는, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 상기 분할 위치는 오름차순으로 정렬된 분할 대상 레코드들의 총 길이의 중간인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 상기 분할 위치는 오름차순으로 정렬된 분할 대상 레코드들의 총 길이를 미리 지정된 비율로 나누는 위치인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 상기 분할 위치는 오름차순으로 정렬된 분할 대상 레코드들의 총 길이를 상기 누적 이동 평균의 비율로 나누는 위치인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 다원 탐색 트리의 레코드들의 길이는 가변인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 레코드는 데이터베이스의 인덱스인, 다원 탐색 트리의 노드 분할 방법.
- 제1항에 있어서,상기 다원 탐색 트리는 B 트리 또는 B+ 트리인, 다원 탐색 트리의 노드 분할 방법.
- 제1항 내지 제10항 중 어느 한 항의 다원 탐색 트리의 노드 분할 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
- 다원 탐색 트리의 제1 노드에 레코드를 삽입하는 삽입 처리부;상기 레코드의 상기 제1 노드 내의 위치 값에 기반하여 상기 제1 노드의 누적 이동 평균을 계산하는 누적 이동 평균 계산부; 및상기 누적 이동 평균에 기반하여 상기 제1 노드의 분할 위치를 계산하고, 상기 분할 위치를 기준으로 상기 제1 노드를 제2 노드 및 제3 노드로 분할하는 분할 처리부를 포함하는, 저장 장치.
- 제12항에 있어서,상기 위치 값은 상기 레코드가 삽입된 슬롯의 번호를 상기 제1 노드 내의 레코드들의 개수로 나눈 값인, 저장 장치.
- 제12항에 있어서,상기 누적 이동 평균 계산부는, 상기 레코드가 삽입된 슬롯의 번호를 상기 제1 노드 내의 레코드들의 개수로 나눈 값, 상기 누적 이동 평균, 상기 제1 노드 내의 레코드들의 개수 및 상기 제1 노드에 임의의 레코드가 삽입될 때마다 1씩 증가하는 정수에 기반하여 상기 누적 이동 평균을 갱신함으로써 상기 제1 노드의 누적 이동 평균을 계산하는, 저장 장치.
- 제12항에 있어서,상기 분할 처리부는, 상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 오름차순으로 정렬된 분할 대상 레코드들의 총 길이의 중간을 상기 분할 위치로서 결정하는, 저장 장치.
- 제12항에 있어서,상기 분할 처리부는, 상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 오름차순으로 정렬된 분할 대상 레코드들의 총 길이를 미리 지정된 비율로 나누는 위치를 상기 분할 위치로 결정하는, 저장 장치.
- 제12항에 있어서,상기 분할 처리부는, 상기 누적 이동 평균이 지정된 범위 내의 값일 경우, 오름차순으로 정렬된 분할 대상 레코드들의 총 길이를 상기 누적 이동 평균의 비율로 나누는 위치를 상기 분할 위치로 결정하는, 저장 장치.
- 제12항에 있어서,상기 다원 탐색 트리의 레코드들의 길이는 가변인, 저장 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020117014433A KR101242860B1 (ko) | 2011-06-08 | 2011-06-08 | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 |
PCT/KR2011/004213 WO2012169675A1 (ko) | 2011-06-08 | 2011-06-08 | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 |
JP2014514775A JP5774213B2 (ja) | 2011-06-08 | 2011-06-08 | 累積移動平均に基づく多重検索ツリーのノードを分割する方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2011/004213 WO2012169675A1 (ko) | 2011-06-08 | 2011-06-08 | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012169675A1 true WO2012169675A1 (ko) | 2012-12-13 |
Family
ID=47296220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2011/004213 WO2012169675A1 (ko) | 2011-06-08 | 2011-06-08 | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP5774213B2 (ko) |
KR (1) | KR101242860B1 (ko) |
WO (1) | WO2012169675A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101477017B1 (ko) | 2013-03-29 | 2014-12-29 | 주식회사 알티베이스 | 공유메모리 내의 인덱스 운용 장치 및 방법 |
KR102000627B1 (ko) * | 2019-01-04 | 2019-07-16 | (주)공간인소프트 | 데이터 갱신 방법 및 그 장치 |
KR102031928B1 (ko) * | 2019-03-25 | 2019-10-14 | 엘아이지넥스원 주식회사 | 이진 트리를 이용한 고속 펄스열 추출 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980047127A (ko) * | 1996-12-13 | 1998-09-15 | 윤덕용 | Hg-트리 색인 구조 및 그의 삽입, 삭제, 검색 방법 |
KR20020049767A (ko) * | 2000-12-20 | 2002-06-26 | 오길록 | 접근 빈도에 따른 데이터 구조체계의 재구성 장치 및 그방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124363A (ja) * | 1996-10-22 | 1998-05-15 | Fuji Xerox Co Ltd | 順編成索引管理方法 |
-
2011
- 2011-06-08 KR KR1020117014433A patent/KR101242860B1/ko active IP Right Grant
- 2011-06-08 WO PCT/KR2011/004213 patent/WO2012169675A1/ko active Application Filing
- 2011-06-08 JP JP2014514775A patent/JP5774213B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980047127A (ko) * | 1996-12-13 | 1998-09-15 | 윤덕용 | Hg-트리 색인 구조 및 그의 삽입, 삭제, 검색 방법 |
KR20020049767A (ko) * | 2000-12-20 | 2002-06-26 | 오길록 | 접근 빈도에 따른 데이터 구조체계의 재구성 장치 및 그방법 |
Non-Patent Citations (2)
Title |
---|
KWON, SEOK MYUN ET AL.: "A Co-Allocation Algorithm for a Multi-Cluster System", JOURNAL OF 2004 SPRING CONFERENCE OF KOREA INFORMATION SCIENCE SOCIETY, vol. 31, no. 1, April 2004 (2004-04-01) * |
LEE, YU JIN ET AL.: "A Divide and Conquer Algorithm for Drawing General Trees Aesthetically", JOURNAL OF KISS(A): COMPUTER SYSTEMS AND THEORY, vol. 26, no. 1, January 1991 (1991-01-01) * |
Also Published As
Publication number | Publication date |
---|---|
JP2014520323A (ja) | 2014-08-21 |
KR101242860B1 (ko) | 2013-03-12 |
JP5774213B2 (ja) | 2015-09-09 |
KR20130009575A (ko) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018034426A1 (ko) | 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법 | |
WO2015137641A2 (ko) | 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법 | |
WO2012169675A1 (ko) | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 | |
WO2020153552A1 (ko) | 기록된 거래의 수정이 가능한 블록체인을 위한 방법 및 장치 | |
WO2023153821A1 (en) | Method of compressing neural network model and electronic apparatus for performing the same | |
WO2018043843A1 (ko) | 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법 | |
WO2017073957A1 (ko) | 전자 장치 및 이의 메모리 관리 방법 | |
WO2023158133A1 (ko) | 번역된 콘텐츠의 편집 인터페이스 제공 방법 및 컴퓨터 프로그램 | |
WO2020222347A1 (ko) | 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치 | |
WO2011068315A4 (ko) | 최대 개념강도 인지기법을 이용한 최적의 데이터베이스 선택장치 및 그 방법 | |
WO2018191889A1 (zh) | 照片处理方法、装置及计算机设备 | |
WO2023163405A1 (ko) | 신용평가 모델 업데이트 또는 교체 방법 및 장치 | |
WO2015088291A1 (ko) | 장문 번역 서비스 장치 및 방법 | |
WO2010095807A2 (ko) | 기여 점수에 기초한 문서 순위 결정 시스템 및 방법 | |
WO2017094967A1 (ko) | 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템 | |
WO2023003246A1 (ko) | 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 | |
WO2019245247A1 (en) | Method for object management using trace identifier, apparatus for the same, computer program for the same, and recording medium storing computer program thereof | |
WO2023042989A1 (ko) | 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 | |
WO2022154326A1 (ko) | 가상화된 리소스를 관리하는 방법, 장치 및 컴퓨터 프로그램 | |
WO2010002174A2 (ko) | 입찰 속성 정보를 이용한 입찰 관리 방법 및 시스템 | |
WO2024039098A1 (ko) | 데이터를 처리하는 분산 처리 시스템 및 방법 | |
WO2015182833A1 (ko) | 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법 | |
WO2019190030A1 (ko) | 빅데이터 개인정보의 익명화 및 익명화 데이터의 결합 방법 | |
WO2024014631A1 (ko) | 데이터 스케일을 고려한 콘볼루션 데이터의 양자화 방법, 이를 위한 하드웨어 가속기, 및 이를 이용한 컴퓨팅 장치 | |
WO2024071505A1 (ko) | 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 20117014433 Country of ref document: KR Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11867397 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014514775 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11867397 Country of ref document: EP Kind code of ref document: A1 |