High speed non-concurrency controlled database
First Claim
Patent Images
1. A multi-threaded network database system, comprising:
- at least one processor coupled to a network; and
a memory coupled to the processor, the memory including a database and instructions adapted to be executed by the processor to;
create an update thread and a plurality of search threads;
assign each of a plurality of search queries, received over the network, to one of the plurality of search threads;
for each search thread;
search the database according to the assigned search queries, create a plurality of search replies corresponding to the assigned search queries, and send the plurality of search replies over the network; and
for the update thread;
create a plurality of new elements according to new information received over the network, set a dirty bit within each of the plurality of new elements, without restricting access to the database for the plurality of search threads, write a pointer to each of the plurality of new elements to the database using a single uninterruptible operation for each pointer, clear the dirty bit within each of the plurality of new elements, and delete an existing element from the memory after the pointers are written to the database.
0 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a method and system for high-speed database searching with concurrent updating, without the use of database locks or access controls, for large database systems. Specifically, a plurality of search queries may be received over a network, the database may be searched, and a plurality of search replies may be sent over the network. While searching the database, new information received over the network may be incorporated into the database by creating a new element based on the new information and writing a pointer to the new element to the database using a single uninterruptible operation.
92 Citations
54 Claims
-
1. A multi-threaded network database system, comprising:
-
at least one processor coupled to a network; and
a memory coupled to the processor, the memory including a database and instructions adapted to be executed by the processor to;
create an update thread and a plurality of search threads;
assign each of a plurality of search queries, received over the network, to one of the plurality of search threads;
for each search thread;
search the database according to the assigned search queries, create a plurality of search replies corresponding to the assigned search queries, and send the plurality of search replies over the network; and
for the update thread;
create a plurality of new elements according to new information received over the network, set a dirty bit within each of the plurality of new elements, without restricting access to the database for the plurality of search threads, write a pointer to each of the plurality of new elements to the database using a single uninterruptible operation for each pointer, clear the dirty bit within each of the plurality of new elements, and delete an existing element from the memory after the pointers are written to the database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 52)
-
-
21. A method for searching and concurrently updating a database, comprising:
-
creating an update thread and a plurality of search threads;
assigning each of a plurality of search queries, received over the network, to one of the plurality of search threads;
for each search thread;
searching the database according to the assigned search queries, creating a plurality of search replies corresponding to the assigned search queries, and sending the plurality of search replies over the network; and
for the update thread;
creating a plurality of new elements according to new information received over the network, setting a dirty bit within each of the plurality of new elements, without restricting access to the database for the plurality of search threads, writing a pointer to each of the plurality of new elements to the database using a single uninterruptible operation for each pointer, clearing the dirty bit within each of the plurality of new elements, and deleting an existing element from the memory after the pointers are written to the database. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 53)
-
-
38. A computer readable medium including instructions adapted to be executed by at least one processor to implement a method for searching and concurrently updating a database, the method comprising:
-
creating an update thread and a plurality of search threads;
assigning each of a plurality of search queries, received over the network, to one of the plurality of search threads;
for each search thread;
searching a database according to the assigned search queries, creating a plurality of search replies corresponding to the assigned search queries, and sending the plurality of search replies over the network; and
for the update thread;
creating a plurality of new elements according to new information received over the network, setting a dirty bit within each of the plurality of new elements, without restricting access to the database for the plurality of search threads, writing a pointer to each of the plurality of new elements to the database using a single uninterruptible operation for each pointer, and clearing the dirty bit within each of the plurality of new elements, and deleting an existing element from the memory after the pointers are written to the database. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54)
-
Specification