Transactional memory manager
First Claim
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, and clear the dirty bit within each of the plurality of new elements.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a method and system for high-speed database searching with concurrent, transaction-based updating 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 may be received over the network, a plurality of new database elements may be created based on the new information, a dirty bit may be set within each new database element, a pointer to each new database element may be written to the database using a single uninterruptible operation, and the dirty bit within each new database element may be cleared.
-
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, and clear the dirty bit within each of the plurality of new elements. - 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, and clearing the dirty bit within each of the plurality of new elements. - 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, and clearing the dirty bit within each of the plurality of new elements. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54)
-
Specification