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, andsend the plurality of search replies over the network; and
for the update thread;
create a new element in the database according to new information received over the network,without restricting access to the database for the plurality of search threads, and not using a different copy of the database than used by the search threads, write a pointer to the new element to the database using a single uninterruptible operation, andphysically delete an existing element from the memory after the pointer is written to the database.
1 Assignment
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.
-
Citations
73 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 new element in the database according to new information received over the network, without restricting access to the database for the plurality of search threads, and not using a different copy of the database than used by the search threads, write a pointer to the new element to the database using a single uninterruptible operation, and physically delete an existing element from the memory after the pointer is 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. 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 a 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 new element in the database according to new information received over the network, without restricting access to the database for the plurality of search threads, and not using a different copy of the database than used by the search threads, writing a pointer to the new element to the database using a single uninterruptible operation, and physically deleting an existing element after the pointer is written to the database. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. 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 a 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 new element in the database according to new information received over the network, without restricting access to the database for the plurality of search threads, and not using a different copy of the database than used by the search threads, writing a pointer to the new element to the database using a single uninterruptible operation, and physically deleting an existing element after the pointer is written to the database. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for searching and updating a database, comprising:
-
receiving a plurality of search queries over a network; searching the database; sending a plurality of search replies over the network; and while searching the database, modifying the database to incorporate new information received over the network, including; creating a new element in the database based on the new information, without locking the database, and not using a different copy of the database than used by the search threads, writing a pointer to the new element to the database using a single uninterruptible operation, and physically deleting an existing element after the pointer is written to the database. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
-
60. A system for searching and updating a database, comprising:
-
at least one processor coupled to a network; and a memory coupled to the processor, the memory storing a database and instructions adapted to be executed by the processor to; create a new element in the database based on new information received over the network, without restricting search access to the database, and not using a different copy of the database than used for searching the database, write a pointer to the new element to the database using a single uninterruptible operation, and physically delete an existing element after the pointer is written to the database. - View Dependent Claims (61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. 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;without restricting access to the database for the plurality of search threads, and not using a different copy of the database than used for searching the database, writing a pointer to an existing element to the database using a single uninterruptible operation, and physically deleting the existing element after the pointer is written to the database. - View Dependent Claims (73)
-
Specification