Patentable/Patents/US-6484172
US-6484172

Concurrency control method for high-dimensional index structure using latch and lock

PublishedNovember 19, 2002
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A concurrency control method for searching the high-dimensional index tree of a database is disclosed. The concurrency control includes: a) adding a root node to the queue and acquiring the shared lock for reinsertion node; b) determining whether the queue is empty or not, fetching a node from the queue and assigning the fetched node as a current node if queue is not empty, releasing the shared lock and terminating the search process if queue is empty; c) acquiring the shared latch in the current node, selecting the lower nodes which are within the query range and adding the selected nodes to the queue if current node is not leaf or to the result set if current node is leaf; and d) returning to the step b).

Patent Claims
14 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for searching a high-dimensional index tree of a database, wherein the concurrency of the database can be controlled, comprising the steps of: a) adding a root node to the queue and acquiring the shared lock for reinsertion node; b) determining whether the queue is empty or not, fetching a node from the queue and assigning the fetched node as a current node if queue is not empty, releasing the shared lock and terminating the search process if queue is empty; c) acquiring the shared latch in the current node, selecting the lower nodes which are within the query range and adding the selected nodes to the queue if current node is not leaf or to the result set if current node is leaf; and d) returning to the step b).

2

2. The method as recited in claim 1 , furthers comprising the step of e) maintaining the level information about a node being accessed when traversing the tree so as to search entries within the reinsertion node, determining whether the level information is equal to the level of which the node is being reinserted, and searching the reinsertion node if the level information is changed to the level of reinsertion level.

3

3. The method as recited in claim 1 , further comprising the step of f) moving to a rightward-pointing link of the lower node to select the adjacent node when the split which is not propagated to the upper node is detected.

4

4. The method as recited in claim 1 , further comprising the step of g) controlling a level to be the same with the level of the current node, so that the shared latch is always maintained in only the node existing in one level.

5

5. A method for inserting an entry to the high-dimensional index tree of a database, wherein the concurrency of the database can be controlled, comprising the steps of: a) searching a leaf node to which a new entry is inserted; b) determining whether an insert for the new entry to the searched leaf node causes any overflow; c) when the result of the step b) is positive, acquiring a tree lock, performing the process for the overflow of the leaf node and then releasing the tree lock; and d) when the result of the step b) is negative, inserting the new entry to the leaf node, acquiring a tree lock changing a MBR and releasing the tree lock.

6

6. The method as recited in claim 5 , wherein the step a) includes the steps of: a-1) determining whether a child node is a leaf node; a-2) if the child node is a leaf node, acquiring an exclusive lock and an exclusive latch for the child node; a-3) if the child node is not a leaf node, acquiring a shared lock and a shared latch for the child node; a-4) determining whether the NSN composed of LSN of the child node is higher than the estimated NSN composed of LSN of the current node; a-5) when the result of the step a-4) is positive, releasing a latch and a lock for the child node, selecting an appropriate node in the node split from the child node which is not reflected on the upper node and acquiring a latch and a lock in the selected node; a-6) when the result of the step a-4) is negative, determining whether a child node is a leaf node; a-7) when the result of the step a-6) is positive, returning a path stack which stores a path from a root node to the child node and the child node; and a-8) when the result of the step a-6) is negative, the current is assigned to child node and return to the step a-1).

7

7. The method as recited in claim 5 , wherein the step c) includes the steps of: c-1) determining whether the current node is the root node; c-2) when the result of the step c-1) is positive, performing a root split, and when the result of the step c-1) is negative, requesting a conditional exclusive lock for the current node; c-3) determining whether the current node acquires an exclusive lock based on the request of the step c-2); c-4) when the result of the step c-3) is positive, calling a Reinsert function; and c-5) when the result of the step c-3) is negative, calling a Split function.

8

8. The method as recited in claim 7 , wherein the step c-5) further includes: c-6) reading out a parent node of the current node from the path stack and then determining whether the propagation of the split to the parent node causes any overflow; c-7) when the result of the step c-6) is positive, assigning the current node to parent node, returning to the step c-1); and c-8) when parent node has enough space, inserting the split new node into the parent node, propagating the MBR change and completing the overflow process.

9

9. The method as recited in claim 7 , wherein the step c-4) includes the step of: c-4-1) compulsorily acquiring an exclusive lock for the reinsertion node; c-4-2) deleting the reinsertion entries from the current node and then storing the deleted entries in the reinsertion node; c-4-3) calling a function for processing a MBR change such that ancestor nodes of the current node are changed based on the changed MBR of the current node; c-4-4) inserting the entries of the reinsertion node into the index tree after the change of the MBR; and c-4-5) when all entries of the reinsertion node are inserted, completing the reinsertion process, and when any entry of the reinsertion node remains uninserted, returning to the step c-4-4).

10

10. The method as recited in claim 9 , wherein the step c-4-2) includes the step of recording the number of the deleted entries in the current node.

11

11. The method as recited in claim 9 , wherein the step c4-5) includes the steps of: c-4-5-1) finding a node to reinsert an entry and determining whether the found node has enough space to insert an entry; c-4-5-2) when the result of the step c-4-5-1) is negative, calling a SplitAll process for splitting the found node; and c-4-5-3) when the result of the step c-4-5-1) is positive, inserting the entry stored in the reinsertion node into the found node, and then returning to the step c-4-3) for repeating when any change of the MBR of the inserted node occurs.

12

12. The method as recited in claim 7 , wherein the step c-5) includes the steps of: c-5-1) assigning a new node and then acquiring an exclusive latch for the new node; c-5-2) determining whether the new node is a leaf node; c-5-3) when the new node is a leaf node, acquiring an exclusive lock for the new node; c-5-4) selecting some entries from the current node, moving the selected entries into the new node, wherein the current node is split to become the new node; c-5-6) assigning the NSN of the current node to the NSN of the new node and assigning the LSN of the new node to the NSN of the current node; and c-5-7) completing the split process after the exclusive latch and the exclusive lock of the current node and the new node are released.

13

13. A computer readable medium having computer-executable instructions stored thereon, for performing a method for searching the high-dimensional index tree of a database, wherein the concurrency of the database can be controlled, the method comprising the steps of: a) adding a root node to the queue and acquiring the shared lock for reinsertion node; b) determining whether the queue is empty or not, fetching a node from the queue and assigning the fetched node as a current node if queue is not empty, releasing the shared lock and terminating the search process if queue is empty; c) acquiring the shared latch in the current node, selecting the lower nodes which are within the query range and adding the selected nodes to the queue if current node is not leaf or to the result set if current node is leaf; and d) returning to the step b).

14

14. A computer readable medium having computer-executable instructions stored thereon, for inserting an entry to the high-dimensional index tree of a database, wherein the concurrency of the database can be controlled, the method comprising the steps of: a) searching a leaf node to which a new entry is inserted; b) determining whether an insert for the new entry to the searched leaf node causes any overflow; c) if the result of the step b) is positive, acquiring a tree lock, performing a process for the overflow of the leaf node and then releasing the tree lock; and d) if the result of the step b) is negative, inserting the new entry to the leaf node, acquiring a tree lock, changing a MBR and releasing the tree lock.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 3, 2000

Publication Date

November 19, 2002

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Concurrency control method for high-dimensional index structure using latch and lock” (US-6484172). https://patentable.app/patents/US-6484172

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.