WO2015093026A1 - 書き込み情報記憶装置、方法、及び、記録媒体 - Google Patents
書き込み情報記憶装置、方法、及び、記録媒体 Download PDFInfo
- Publication number
- WO2015093026A1 WO2015093026A1 PCT/JP2014/006220 JP2014006220W WO2015093026A1 WO 2015093026 A1 WO2015093026 A1 WO 2015093026A1 JP 2014006220 W JP2014006220 W JP 2014006220W WO 2015093026 A1 WO2015093026 A1 WO 2015093026A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- write
- data
- node
- range
- search
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
Definitions
- the present invention relates to a write information storage device, method, and recording medium, and in particular, the information of a write request issued to a storage device for storing data is stored, and updated data is read therefrom.
- the present invention relates to an information storage device, method, and recording medium.
- Non-Patent Document 1 discloses the format of such differential data. This format holds the bit map of the block in which the difference has occurred due to the writing and the updated block data.
- Non Patent Literature 2 discloses an AVL tree (AVL tree, Adelson-Velskii and Landis' tree).
- Patent Document 1 discloses a storage apparatus provided with a second volume that stores a write history to a first volume that stores data, and a third volume that stores copy data of the first volume at a specific point in time.
- the storage device refers to the write history stored in the second volume, and rewrites the copy data stored in the third volume to the copy data of the first volume at a point different from the specified point in time.
- the computer system of Patent Document 2 stores the file system update history in a secondary storage device independent of the file system.
- This update history stores the content before the update. Therefore, this computer system can restore the image of the file system at a predetermined time in the past.
- Patent Document 3 uses the correction history to recover data at a past time.
- a system using difference data in the format of Non-Patent Document 1 overwrites difference data when there is a write to an overlapping address section. Therefore, this system can not return the write state to any point in the past.
- Patent Document 1 only uses the write history data to update data of the third volume, and does not read the latest write data from the write history data.
- the techniques of Patent Documents 2 and 3 are also the same.
- An object of the present invention is to provide a write information storage device, method, and recording medium which solve the above-mentioned problems.
- the write information storage device records the write record including the data string to be written and the address range so that the time series of the write request can be known for each write request issued to the data storage unit.
- a binary search tree of nodes including list storage means for storing the data list and the address range of the data storage unit as a range of key values and including pointer information to a write record including the latest data of the address range; And index storage means for storing.
- a method is a data list in which a write record including a data string to be written and an address range is recorded so that the time series of the write request can be known for each write request issued to the data storage unit. , And stores a binary search tree of nodes including the address range of the data storage unit as a range of key values and including pointer information to a write record including the latest data of the address range.
- the device according to the present invention can efficiently read the updated data from the difference data, and can return the write state to any point in the past.
- FIG. 1 is a block diagram of a write information storage device 1 according to a first embodiment of the present invention.
- FIG. 2 shows the data structure of the data list 221.
- FIG. 3 is a diagram showing the data structure of each node 112 constituting the balanced binary search tree 111.
- FIG. 4 is a diagram showing an example of a method of forming the data list 221 and the balanced binary search tree 111 created for the exemplary sequence of the write request.
- FIG. 5 is an operation flowchart of the search and update unit 33 that has received the write request when the data storage unit 21 is write-protected.
- FIG. 6A is a diagram showing a process of the search update unit 33 removing an overlap portion from the range of key values for an overlap node (case 1-A).
- FIG. 6B is a diagram showing a process of the search update unit 33 shortening a range of key values and inserting a new node at the position of the highest overlapping node (Case 1-B).
- FIG. 6C is a diagram showing a process in which the search update unit 33 rotates a node (Case 1-C).
- FIG. 7A is a diagram showing a process of the search update unit 33 removing an overlap portion from the range of key values for the overlap node.
- FIG. 7B is a diagram showing a process of the search update unit 33 inserting the divided nodes into the subtree.
- FIG. 8 is a block diagram of the write information storage device 1 of the second embodiment.
- FIG. 9 is a block diagram of the write information storage device 1 of the third embodiment.
- FIG. 1 is a block diagram of a write information storage device 1 according to a first embodiment of the present invention.
- the write information storage device 1 is, for example, a computer.
- the write information storage device 1 causes the processor 30 to execute an application program 31 and a file system 32 that reads and writes data stored in the data storage unit 21.
- the write information storage device 1 further includes a search and update unit 33, a list storage unit 22, and an index storage unit 11.
- the search update unit 33 receives an instruction from the file system 32 and reads and writes data in the data storage unit 21.
- the data storage unit 21 may be temporarily prohibited from being written and may only be read. Such prohibition is performed, for example, by a backup program (not shown) that stores backup data of the data storage unit 21 in a backup disk device (not shown) or the like.
- the backup program may be executed by the write information storage device 1 or may be executed by another computer (not shown) sharing the data storage unit 21.
- the search update unit 33 stores the write request including the write data in the list storage unit 22 as the data list 221.
- the search update unit 33 updates the data in the data storage unit 21 (performs roll forward) based on the contents of the data list 221 after the write prohibition is released.
- the search update unit 33 determines if data in the read range is stored in the data list 221 if not stored therein. It reads from the storage unit 21. If the read range is written many times, data of the range is stored in the data list 221 for many generations. In this case, the search and update unit 33 reads the latest data for each address in the read range. In order to improve the speed of reading the latest data from the data list 221, the search update unit 33 creates an index corresponding to the data list 221 in the index storage unit 11. This index is a balanced binary search tree 111.
- the file system 32 When the file system 32 issues a write instruction to the search and update unit 33, it specifies the address range of the storage area in the data storage unit 21 and a data string. When the file system 32 issues a read command, the address range of the storage area in the data storage unit 21 is specified.
- the address range is, for example, a start address and an end address, or a start address and a data length.
- the search update unit 33 is configured of a logic circuit.
- the search update unit 33 may be a logic circuit centering on a microprocessor other than the processor 30. Furthermore, the search update unit 33 may be realized by a program stored in the memory of the write information storage device 1 and executed by the processor 30.
- the data storage unit 21 and the list storage unit 22 are, for example, disk devices.
- the index storage unit 11 is an IC memory (Integrated Circuit) or a disk device.
- FIG. 2 shows the data structure of the data list 221.
- the data list 221 stores a write record including the address range and the data string for each write request.
- the write records are stored, for example, in order of write time.
- the write record includes the write time, and the search update unit 33 may determine the time series of the write record based on the value.
- FIG. 3 is a diagram showing the data structure of each node 112 constituting the balanced binary search tree 111.
- Each node 112 has a range of addresses, a write record in the data list 221 including the latest data of the range of the address or a pointer to a character string in the write record (for example, an offset from the beginning of the file of the data list 221), a subtree Contains pointers to lower left and right lower nodes 112 (hereinafter, child nodes).
- the equilibrium binary search tree 111 is searched using the address as a key. In this sense, the address range of node 112 may be referred to as the key value range.
- the equilibrium binary search tree 111 is an AVL tree (see Non-Patent Document 2).
- the difference in height between the left and right subtrees is at most one.
- the search update unit 33 starts with the root node of the nodes 112, and if the range of the key value of the node 112 is a section of an address larger than the search key, the right child node; if the section of an address smaller than the search key, the left child node It can be traced. As described above, the search update unit 33 can search for position information of a data string on the data list 221 corresponding to a section including the specific address or a section before or after the section.
- a child node of a range of key values smaller than the range of key values of a parent node is referred to as a left node
- a child node of a range of key values larger than the range of key values of a parent node is referred to as a right node.
- the magnitude relationship between the name and the key value is not limited to this example.
- FIG. 4 is a diagram for explaining an example of a method of forming the data list 221 and the balanced binary search tree 111 created for the sequence example of the write request 100.
- the upper left of FIG. 4 shows a sequence example of the write request 100.
- the horizontal axis indicates the address of the data storage unit 21 and the vertical axis indicates time (including time t1, t2, t3 and t4).
- the search update unit 33 receives the following four write requests as a write request 100 in time series.
- the write request 100 includes the character string described above as a data string.
- the search update unit 33 creates the data list 221 shown in the upper right of FIG. 4. First, the search update unit 33 stores the write record Rt1 including the write section of the write request 100 and the data string in the data list 221 when writing at time t1. Next, in response to the write requests at times t2, t3, and t4, the search and update unit 33 sequentially adds the write records Rt2, Rt3, and Rt4 to the end of the data list 221.
- the search update unit 33 When the write request 100 of FIG. 4 is received, the search update unit 33 generates a balanced binary search tree 111 including five nodes 112 as shown in the lower left of FIG. 4. That is, there is no overlap relation in the address range of each node 112, there is no inclusion relation, node 1 is placed at the left child node of root node 0, node 3 is placed at the left child node thereof, 2. The node 4 is placed at the right child node thereof. Therefore, the search update unit 33 can search for the latest data in the equilibrium binary search tree 111 using the address as a search key.
- the contents of each node of the balanced binary search tree 111 are as follows.
- Node 3 This node 112 includes a range of key values 1 to 2 and a pointer to the write record Rt2, and indicates that the latest data in the area of addresses 1 and 2 is the write data string “HI” at time t2.
- Node 1 This node 112 includes the range 3 to 4 of the key value and the pointer to the write record Rt3, and indicates that the latest data of the area of the address 3 to 4 is the write data string “LM” at time t3.
- Node 0 This node 112 includes a range of key values 5 to 8 and a pointer to the write record Rt4, and indicates that the latest data in the area of addresses 5 to 8 is the write data string "TUVW" at time t4. .
- Node 2 This node 112 includes a range of key values 9 to 10 and a pointer to the write record Rt3, and indicates that the latest data in the area of addresses 9 to 10 is the write data string “RS” at time t3.
- Node 4 This node 112 includes a range of key values 11 to 12 and a pointer to the write record Rt1, and indicates that the latest data in the area of the addresses 11 to 12 is the write data string "FG" at time t1. .
- FIG. 5 is an operation flowchart of the search and update unit 33 that has received the write request when the data storage unit 21 is write-protected.
- the search update unit 33 updates the data list 221 and the equilibrium binary search tree 111.
- the search update unit 33 searches for duplicate nodes (S3).
- the overlapping node is a node 112 in which the range of the key value overlaps at least a part of the writing interval. If there is an overlapping node (Y in S4), the search update unit 33 removes the overlapping part from the range of the key value of the overlapping node (S5, S6, S10), and finds it first by tracing from the node 112 of the route
- the created new node 112 is inserted at the same position as the overlapping node (hereinafter, the highest overlapping node) (S7). Inserting the node 112 at the same position means pointing at the same child node pointer of the same parent node.
- the search and update unit 33 performs rebalancing of the balanced binary tree (S8).
- the search and update unit 33 selects the node 112 whose entire range of the key value is included in the writing interval. From the subtree of (S6 a)).
- FIG. 6A is a diagram showing a process of the search update unit 33 removing an overlap portion from the range of key values for the overlap node. This is called Case 1-A.
- FIG. 6B is a diagram showing a process in which the search update unit 33 shortens the range of key values and inserts a new node at the position of the highest overlapping node. This is called Case 1-B.
- FIG. 6C is a diagram showing the process of the search update unit 33 rotating a node. This is called Case 1-C.
- the search / update unit 33 for example, in Case 1-A, the shaded node 112 (a node whose key value range overlaps with the write interval) in the write interval in the broken line of the equilibrium binary search tree 111 shown in FIG. 6A. Remove Furthermore, in Case 1-B, the search update unit 33 sets the range of the key value of the node 112 where a part (one of the two halves) of the range of the key value overlaps the write interval to a range other than the overlap range (divided (S6 b)). In this case, for example, the search update unit 33 cuts the overlapping part with the writing section from the range of the key values of the nodes x and y in FIG. 6A to shorten the range of the key value (FIG. 6B).
- the search update unit 33 inserts the created new node 112 (the node z 1 in FIG. 6B) into the position of the highest overlapping node (S7). For example, the search and update unit 33 inserts a new node z into the position of the topmost duplicate node. The search and update unit 33 may update the data of the highest overlapping node with the data of the new node 112.
- the search update unit 33 performs rebalancing by rotation of the node 112 (S8). Specifically, the search update unit 33 rotates the node x to set the difference between the heights of the left and right subtrees to at most 1.
- the rotation is a well-known operation of a binary search tree, so detailed description will be omitted.
- the search and update unit 33 may execute the above-described processes of S6 and S7 as follows.
- the search / update unit 33 searches the right subtree using the address of the end position of the writing section as a search key, and searches the left child node if the section whose address is larger than the search key is the key value of the node 112 If the section has an address smaller than the key, the node 112 and the left subtree are deleted at once.
- the search update unit 33 changes the pointer so that the right child node of the node 112 can be traced from the parent node as a new child node.
- the search update unit 33 traces the right child node, and shortens the section of the key value by trimming the section to the left of the search key if the section includes the search key.
- the search update unit 33 After reaching a node 112 having no child node (a leaf node) or a node 112 having a section including a search key as a key value, the search update unit 33 rebalances the AVL tree while returning the traced path Do. That is, when there is a difference between the heights of the left and right subtrees of 2 or more, the search and update unit 33 performs processing to reduce the height difference between the left and right trees by the rotation operation of the tree structure.
- the search update unit 33 performs rebalancing processing by tracing back the traced path after reaching the node 112 whose key value is a leaf node or a section including a search key.
- the search and update unit 33 also performs rebalancing processing retroactively on the route traced from the node 112 of the route to the highest overlapping node (S8).
- the search update unit 33 performs the following processing (Not shown in FIG. 5). First, a) a portion where the range of the key value of the write interval and the top duplicate node overlap, and b) the range of the write value of the top duplicate node exceeds the range of the key value of the top duplicate node. The search and update unit 33 performs the process described in S6 for the large or small portion.
- c) for a portion where the range of the key value of the highest-order overlapping node exceeds the range of the key value of the writing section (larger or smaller than the key value of the writing section) 112 is added to the right or left sub-tree, eg, the top duplicate node after the range of key values has been shortened.
- the search update unit 33 inserts a new node 112 at a position according to the writing interval (S11).
- the section serving as the key value of the node 112 to be inserted does not overlap with the section in the balanced binary search tree 111. Therefore, the search and update unit 33 can insert the node 112 in the same manner as the normal AVL tree insertion processing.
- the search update unit 33 uses the start address of the specified address range (hereinafter referred to as read interval) as a key from the balanced binary search tree 111 , Find the node 112 whose start address is included in the key value range.
- the search update unit 33 reads, from the write record of the data list 221 indicated by the pointer of the node 112, data corresponding to an overlapping section of the range of the key value of the node 112 and the read section.
- the search update unit 33 reads the write data string in order of address until the end address of the read section. Note that the search update unit 33 reads data from the data storage unit 21 for a section in the data list 221 where there is no data string in the read section.
- the search and update unit 33 combines the data strings read from the data list 221 or the data storage unit 21 to generate a data string in the read section, and returns it to the application program 31 via the file system 32 as a read result. Do.
- the search update unit 33 creates a new balanced binary search tree 111 based on the write record of the data list 221. For example, the search update unit 33 reinserts the address range of the write record and the position information of the write data string into the balanced binary search tree 111 sequentially from the top write record (the oldest write record of write time) of the data list 221.
- the write information storage device 1 of the present embodiment can efficiently read the latest data from the difference data of the data list 221 while maintaining the data of the data storage unit 21.
- the reason is that the search and update unit 33 creates and uses the balanced binary search tree 111 for data search.
- the number of nodes in the balanced binary search tree 111 is 2 n-1 at the maximum with respect to the number n of write records recorded in the data list 221, and the height of the tree is equal to or less than log 2 (2 n-1). Therefore, the search process can be performed at the worst in the order of the logarithm of the number of nodes, and the time required for the read process does not increase in proportion to the increase in the number of write records.
- the write information storage device 1 of the present embodiment can also efficiently carry out the update processing of the equilibrium binary search tree 111 accompanied by deletion of a plurality of overlapping nodes. In the case of normal AVL tree deletion processing, it takes a required time proportional to the number of nodes 112 to be deleted.
- the search update unit 33 according to the present embodiment can execute the search in the order of the logarithm of the number of nodes 112 because the search update unit 33 deletes duplicate nodes in units of subtrees while searching for duplicate nodes. Therefore, in the write information storage device 1 of the present embodiment, the time required for the write process does not increase in proportion to the increase in the number of write records.
- FIG. 8 is a block diagram of the write information storage device 1 of the present embodiment.
- the data storage unit 21 of the present embodiment stores a plurality of data lists 221.
- the list storage unit 22 stores the balanced binary search tree 111 corresponding to each data list 221.
- the data list 221 appends an unlimited number of write records. Even if the time required for index search and update is reduced to the order of the log number of records by the balanced binary search tree 111, the time required for operations on the balanced binary search tree 111 can not be ignored if the number of write records increases without limit. .
- an upper limit is set for the number of write records to be recorded in the data list 221, and data recovery in write units is possible up to this upper limit, and old writes before that are reflected in the data storage unit 21 and the data list 221 You may take action to delete it from However, it is inefficient to reorganize the equilibrium binary search tree 111 every time old write data is deleted from the data list 221.
- the search and update unit 33 has a plurality of data lists 221 and a plurality of balanced binary search trees 111 corresponding to each data list 221.
- the search update unit 33 switches the write destination of the write records to the new data list 221, and reflects the contents of the old data list 221 in the data storage unit 21 collectively. By doing this, the search and update unit 33 reflects the old writing in the data storage unit 21 without reorganizing the balanced binary search tree 111.
- the search update unit 33 When reading data, the search update unit 33 first searches for and reads a write data string from the data list 221 to which a write record is being added. The search and update unit 33 searches and reads out the section where there is no data there from the previous (one generation old) data list 221, and if there is not there, one more previous data list 221 and a plurality of new data lists 221 Search from in order. If there is no data list 221, the search update unit 33 reads data from the data storage unit 21.
- the search update unit 33 deletes unnecessary write records from the data list 221, and only the balanced binary search tree 111 of the data list 221 is initialized and reorganized. As a result, the writing state can be returned to the state before any writing is performed in the range recorded in the data list 221 in which the data storage unit 21 is not reflected.
- the write information storage device 1 can efficiently search and update the balanced binary search tree 111 even if there are many writes during the period when writing of the data storage unit 21 is prohibited. .
- the reason is that the write information storage device 1 of the present embodiment is provided with a plurality of data lists 221 and a balanced binary search tree 111.
- FIG. 9 is a block diagram of the write information storage device 1 of the present embodiment.
- the write information storage device 1 of the present embodiment includes an index storage unit 11 and a list storage unit 22.
- the write information storage device 1 may be a computer or a removable storage medium storing a database.
- the write information storage device 1 is a removable medium storing a database, for example, a magnetic tape medium
- the magnetic tape medium is attached to a magnetic tape drive of a computer device, and the database is installed in a computer.
- the write information storage device 1 of the present embodiment can efficiently read the latest data from the difference data of the data list recorded in the list recording unit 22 while maintaining the data of the data storage unit.
- the reason is that a binary search tree is provided for data search.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、本発明の第1の実施形態にかかる書き込み情報記憶装置1の構成図である。
・時刻t1に、アドレス6乃至12の領域に文字列“ABCDEFG”
・時刻t2に、アドレス1乃至4の領域に文字列“HIJK”
・時刻t3に、アドレス3乃至10の領域に文字列“LMNOPQRS”
・時刻t4に、アドレス5乃至8の領域に文字列“TUVW”
書き込み要求100は、上述に示す文字列をデータ列として含む。図4の書き込み要求100を受けたとき、探索更新部33は、図4の右上に示すデータリスト221を作成する。探索更新部33は、先ず、時刻t1の書き込みに対して、書き込み要求100の書き込み区間とデータ列を包含する書き込みレコードRt1をデータリスト221に格納する。ついで、探索更新部33は、時刻t2、t3、t4の書き込み要求に対し、順次、書き込みレコードRt2、Rt3、Rt4をデータリスト221の末尾に追記する。
・ノード3:このノード112はキー値の範囲1~2と書き込みレコードRt2へのポインタを含み、アドレス1乃至2の領域の最新データは、時刻t2の書き込みデータ列“HI”となることを示す。
・ノード1:このノード112はキー値の範囲3~4と書き込みレコードRt3へのポインタを含み、アドレス3乃至4の領域の最新データは、時刻t3の書き込みデータ列“LM”となることを示す。
・ノード0:このノード112はキー値の範囲5~8と書き込みレコードRt4へのポインタを含み、アドレス5乃至8の領域の最新データは、時刻t4の書き込みデータ列“TUVW”となることを示す。
・ノード2:このノード112はキー値の範囲9~10と書き込みレコードRt3へのポインタを含み、アドレス9乃至10の領域の最新データは、時刻t3の書き込みデータ列“RS”となることを示す。
・ノード4:このノード112はキー値の範囲11~12と書き込みレコードRt1へのポインタを含み、アドレス11乃至12の領域の最新データは、時刻t1の書き込みデータ列“FG”となることを示す。
図8は、本実施の形態の書き込み情報記憶装置1の構成図である。本実施の形態のデータ記憶部21は複数のデータリスト221を記憶する。リスト記憶部22は、各々のデータリスト221に対応する平衡二分探索木111を記憶する。
図9は、本実施の形態の書き込み情報記憶装置1の構成図である。本実施の形態の書き込み情報記憶装置1は、インデックス記憶部11とリスト記憶部22を備える。
11 インデックス記憶部
111 平衡二分探索木
112 ノード
21 データ記憶部
22 リスト記憶部
221 データリスト
30 プロセッサ
31 アプリケーションプログラム
33 探索更新部
Claims (10)
- データ記憶部に発行された書き込み要求ごとに、書き込み対象のデータ列およびアドレス範囲を含む書き込みレコードを、書き込み要求の時系列が分かるように記録したデータリストを格納するリスト記憶手段と、
前記データ記憶部のアドレス範囲をキー値の範囲として含み、かつ、当該アドレス範囲の最新データを含む書き込みレコードへのポインタ情報を含むノードの二分探索木を格納するインデックス記憶手段と、を備える書き込み情報記憶装置。 - 新たな書き込み要求を取得して、当該新たな書き込み要求に対応する新たな書き込みレコードを前記データリストに追加し、キー値の範囲が、当該新たな書き込み要求の書き込み区間の少なくとも一部と重複するノード(以降、重複ノード)について、キー値の範囲から重複部分を除去し、前記書き込み区間と前記新たな書き込みレコードへのポインタ情報とを含むノードを、ルートノードに最も近い重複ノードの位置に挿入して、前記二分探索木を更新する検索更新手段を、さらに備える請求項1の書き込み情報記憶装置。
- 前記検索更新手段は、指定された時点までの書き込みレコードを新しい順に前記データリストから削除し、残った書き込みレコードに基づいて新たな二分探索木を作成する、請求項2の書き込み情報記憶装置。
- 前記検索更新手段は、読み出し要求を取得して、キー値の範囲の少なくとも一部が、当該読み出し要求のアドレス範囲に含まれるノードからポイントされる書き込みレコードに含まれるデータ列を出力する、請求項2乃至3の何れかの書き込み情報記憶装置。
- 前記検索更新手段は、キー値の範囲全部が前記書き込み区間内に包含されるノードは削除し、キー値の範囲の一部が前記書き込み区間内に包含されるノードについてはキー値の範囲を当該一部以外の範囲に縮小し、前記書き込み区間全部がキー値の範囲に包含されるノードを、キー値の範囲が前記書き込み区間より大きな範囲のノードと小さな範囲のノードの2つのノードに分割することで前記重複部分を除去し、さらに、各ノードの左右のサブツリーの高さの差がたかだか1となるようにノードの位置を入れ替えることにより前記二分探索木の平衡化を行う、請求項2乃至4の何れかの書き込み情報記憶装置。
- 前記検索更新手段は、新たな書き込み要求を取得した際に、前記データリスト内の書き込みレコード数が所定数に達していると、新たなデータリストと当該新たなデータリストに対応する新たな二分探索木を作成し、前記データリスト内の書き込みレコードに基づいて前記データ記憶部のデータを更新して、前記二分探索木と前記データリストを削除する、請求項2乃至5の何れかの書き込み情報記憶装置。
- データ記憶部に発行された書き込み要求ごとに、書き込み対象のデータ列およびアドレス範囲を含む書き込みレコードを、書き込み要求の時系列が分かるように記録したデータリストを記憶し、
前記データ記憶部のアドレス範囲をキー値の範囲として含み、かつ、当該アドレス範囲の最新データを含む書き込みレコードへのポインタ情報を含むノードの二分探索木を記憶する、方法。 - 新たな書き込み要求を取得して、当該新たな書き込み要求に対応する新たな書き込みレコードを前記データリストに追加し、キー値の範囲が、当該新たな書き込み要求の書き込み区間の少なくとも一部と重複するノード(以降、重複ノード)について、キー値の範囲から重複部分を除去し、前記書き込み区間と前記新たな書き込みレコードへのポインタ情報とを含むノードを、ルートノードに最も近い重複ノードの位置に挿入して、前記二分探索木を更新する請求項7の方法。
- 指定された時点までの書き込みレコードを新しい順に前記データリストから削除し、残った書き込みレコードに基づいて新たな二分探索木を作成する、請求項8の方法。
- データ記憶部に発行された書き込み要求ごとに、書き込み対象のデータ列およびアドレス範囲を含む書き込みレコードを、書き込み要求の時系列が分かるように記録したデータリストを記憶する処理と、
前記データ記憶部のアドレス範囲をキー値の範囲として含み、かつ、当該アドレス範囲の最新データを含む書き込みレコードへのポインタ情報を含むノードの二分探索木を記憶する処理とをコンピュータに実行させるプログラムを記録した記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015553370A JP6156517B2 (ja) | 2013-12-17 | 2014-12-12 | 書き込み情報記憶装置、方法、及び、プログラム |
CN201480069279.7A CN105830039A (zh) | 2013-12-17 | 2014-12-12 | 写入信息存储设备、方法和记录介质 |
US15/104,757 US20160314153A1 (en) | 2013-12-17 | 2014-12-12 | Write information storage device, method, and recording medium |
EP14871752.3A EP3086234A4 (en) | 2013-12-17 | 2014-12-12 | Write information storage device, method, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013260132 | 2013-12-17 | ||
JP2013-260132 | 2013-12-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015093026A1 true WO2015093026A1 (ja) | 2015-06-25 |
Family
ID=53402398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/006220 WO2015093026A1 (ja) | 2013-12-17 | 2014-12-12 | 書き込み情報記憶装置、方法、及び、記録媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160314153A1 (ja) |
EP (1) | EP3086234A4 (ja) |
JP (1) | JP6156517B2 (ja) |
CN (1) | CN105830039A (ja) |
WO (1) | WO2015093026A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5988447B2 (ja) | 2014-08-28 | 2016-09-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ログメッセージのフォーマットを推定する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム |
KR101947503B1 (ko) * | 2017-03-20 | 2019-02-14 | 주식회사 티맥스데이터 | 트리 인덱스를 제공하는 컴퓨팅 장치 |
US10956318B2 (en) * | 2018-06-19 | 2021-03-23 | Macronix International Co., Ltd. | Overlapping ranges of pages in memory systems |
JP7228328B2 (ja) | 2018-08-25 | 2023-02-24 | ニックス株式会社 | 容器の蓋 |
KR102195836B1 (ko) * | 2019-02-07 | 2020-12-28 | 주식회사 티맥스티베로 | 인덱스 관리 방법 |
US11392585B2 (en) * | 2019-09-26 | 2022-07-19 | Palantir Technologies Inc. | Functions for path traversals from seed input to output |
CN111090614A (zh) * | 2019-12-03 | 2020-05-01 | 深信服科技股份有限公司 | Rom快照的读取方法、装置和存储介质 |
CN116719480B (zh) * | 2023-08-04 | 2023-11-14 | 青岛鼎信通讯股份有限公司 | 一种基于数据孪生的电能表数据存储方法、装置及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229825A (ja) * | 2000-11-29 | 2002-08-16 | Hewlett Packard Co <Hp> | コンピュータメモリ |
JP2005050024A (ja) | 2003-07-31 | 2005-02-24 | Toshiba Corp | 計算機システムおよびプログラム |
WO2005031576A2 (en) * | 2003-09-23 | 2005-04-07 | Revivio, Inc. | Systems and methods for time dependent data storage and recovery |
JP2006018632A (ja) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | リレーショナルデータベースのインデックス追加プログラム,インデックス追加装置及びインデックス追加方法 |
JP2008033527A (ja) | 2006-07-27 | 2008-02-14 | Hitachi Ltd | ストレージ装置、ディスク装置及びデータ復元方法 |
JP2008511083A (ja) | 2004-08-24 | 2008-04-10 | レヴィヴィオ,インク. | データ記憶部内のデータ位置に関する修正履歴を提供するためのシステムと方法 |
JP2009134689A (ja) * | 2007-10-29 | 2009-06-18 | Hitachi Ltd | ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム |
WO2009126557A1 (en) * | 2008-04-06 | 2009-10-15 | Fusion Multisystems, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
WO2010033365A1 (en) * | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Aggregation of write traffic to a data store |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7171410B1 (en) * | 2001-06-02 | 2007-01-30 | Redback Networks, Inc. | Fault tolerant network element |
US7747633B2 (en) * | 2007-07-23 | 2010-06-29 | Microsoft Corporation | Incremental parsing of hierarchical files |
US8543944B2 (en) * | 2010-06-14 | 2013-09-24 | Microsoft Corporation | Fast edge routing for interactive diagramming |
US9720927B2 (en) * | 2011-07-12 | 2017-08-01 | The Board Of Trustees Of The Leland Stanford Junior University | Method and system for database storage management |
US8521785B2 (en) * | 2012-01-03 | 2013-08-27 | Oracle International Corporation | System and method for efficient representation of dynamic ranges of numeric values |
KR20140078354A (ko) * | 2012-12-17 | 2014-06-25 | 삼성전자주식회사 | 디스플레이 장치 및 이의 ui 제공 방법 |
-
2014
- 2014-12-12 EP EP14871752.3A patent/EP3086234A4/en not_active Withdrawn
- 2014-12-12 JP JP2015553370A patent/JP6156517B2/ja active Active
- 2014-12-12 CN CN201480069279.7A patent/CN105830039A/zh active Pending
- 2014-12-12 US US15/104,757 patent/US20160314153A1/en not_active Abandoned
- 2014-12-12 WO PCT/JP2014/006220 patent/WO2015093026A1/ja active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229825A (ja) * | 2000-11-29 | 2002-08-16 | Hewlett Packard Co <Hp> | コンピュータメモリ |
JP2005050024A (ja) | 2003-07-31 | 2005-02-24 | Toshiba Corp | 計算機システムおよびプログラム |
WO2005031576A2 (en) * | 2003-09-23 | 2005-04-07 | Revivio, Inc. | Systems and methods for time dependent data storage and recovery |
JP2006018632A (ja) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | リレーショナルデータベースのインデックス追加プログラム,インデックス追加装置及びインデックス追加方法 |
JP2008511083A (ja) | 2004-08-24 | 2008-04-10 | レヴィヴィオ,インク. | データ記憶部内のデータ位置に関する修正履歴を提供するためのシステムと方法 |
JP2008033527A (ja) | 2006-07-27 | 2008-02-14 | Hitachi Ltd | ストレージ装置、ディスク装置及びデータ復元方法 |
JP2009134689A (ja) * | 2007-10-29 | 2009-06-18 | Hitachi Ltd | ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム |
WO2009126557A1 (en) * | 2008-04-06 | 2009-10-15 | Fusion Multisystems, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
WO2010033365A1 (en) * | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Aggregation of write traffic to a data store |
Non-Patent Citations (4)
Title |
---|
GEORGII M. ADELSON-VELSKII; EVGENII M. LANDIS: "An algorithm for the organization of information", DOKLADY AKADEMII NAUK SSSR, vol. 146, 1962, pages 263 - 266 |
MYRON J. RICCI, SOVIET MATH. DOKLADY, vol. 3, 1962, pages 1259 - 1263 |
See also references of EP3086234A4 * |
VIRTUAL HARD DISK IMAGE FORMAT SPECIFICATION, MICROSOFT CORPORATION, VER. 1. 0, 2006 |
Also Published As
Publication number | Publication date |
---|---|
US20160314153A1 (en) | 2016-10-27 |
CN105830039A (zh) | 2016-08-03 |
EP3086234A4 (en) | 2017-10-25 |
EP3086234A1 (en) | 2016-10-26 |
JP6156517B2 (ja) | 2017-07-05 |
JPWO2015093026A1 (ja) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、記録媒体 | |
US9684462B2 (en) | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory | |
US5261088A (en) | Managing locality in space reuse in a shadow written B-tree via interior node free space list | |
US11301379B2 (en) | Access request processing method and apparatus, and computer device | |
KR20210057835A (ko) | 압축한 키-값 저장소 트리 데이터 블록 유출 | |
US20050010592A1 (en) | Method and system for taking a data snapshot | |
US9767120B2 (en) | Multi-way checkpoints in a data storage system | |
EP2742417A1 (en) | Shrinking virtual hard disk image | |
JPH0318208B2 (ja) | ||
US8457018B1 (en) | Merkle tree reference counts | |
KR20200122994A (ko) | 키 값 첨부 | |
US10055162B2 (en) | Using a tree-based data structure to map logical addresses to physical addresses on a storage device | |
JP6598997B2 (ja) | データ準備のためのキャッシュ最適化 | |
EP2669806B1 (en) | Storage system | |
JP4825719B2 (ja) | 高速ファイル属性検索 | |
JP2553751B2 (ja) | ディスクセクタ代替方式 | |
CN111221478A (zh) | 数据写入、读取方法、装置、设备及机器可读存储介质 | |
JP6788386B2 (ja) | ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品 | |
JP2007128412A (ja) | ストレージシステム、計算機システム、ホスト計算機及びデータ複製方法 | |
JP5808264B2 (ja) | コード生成装置及びコード生成方法及びプログラム | |
JP4468342B2 (ja) | データ管理方法 | |
TWI475419B (zh) | 用於在儲存系統上存取檔案的方法和系統 | |
CN114385584A (zh) | 一种数据写入方法及一种数据读取方法 | |
WO2019092990A1 (ja) | 情報蓄積装置、データ処理システム、およびプログラム | |
KR20200102337A (ko) | 캐시라인 컨시어스 익스텐더블 해싱 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14871752 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015553370 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15104757 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2014871752 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014871752 Country of ref document: EP |