NZ533166A

High speed non-concurrency controlled database

Abstract

A multi-threaded network database system for high-speed database searching with concurrent updating without the use of database locks or access controls. The Look-up Engine uses indices, hash tables, lookaside files or read-only snapshot files to perform a multi-threaded search for a plurality of incoming search requests and send the search results over the network, at the same time allowing an update thread to update the database in a single uninterruptible operation.

NZ533166A, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 1 November 2022, 3.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

53 claims: 24 independent, 29 dependent

  1. 1
    What is claimed is: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 according to new information received over the network, and without restricting access to the database for the plurality of search threads, write a pointer to the new element to the database using a single uninterruptible operation.
  2. 7
    The system of any preceding claim, wherein the plurality of search queries are received within a single network packet. —
  3. 8
    The system of any preceding claim, wherein the plurality of search replies are sent within a single network packet.
  4. 9
    The system of any preceding claim, wherein said restricting access includes database locking.
  5. 10
    The system of any one of claims 1 to 8, wherein said restricting access includes spin locking.
  6. 13
    The system of any preceding claim, further comprising a plurality of processors and a symmetric multi-processing operating system.
  7. 17
    The system of any preceding claim, wherein the pointer to the new element is written to a search index.
  8. 20
    The system of any one of claims 1 to 16, wherein the pointer to the new element is written to a data record within the database.
  9. 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 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 according to new information received over the network, and without restricting access to the database for the plurality of search threads, writing a pointer to the new element to the database using a single uninterruptible operation.
  10. 26
    The method of any one of claims 21 to 25, wherein the plurality of search queries are received within a single network packet. 5
  11. 27
    The method of any one of claims 21 to 26, wherein the plurality of search relies are sent within a single network packet.
  12. 28
    The method of any one of claims 21 to 27, wherein said restricting access includes database locking.
  13. 29
    The method of any one of claims 21 to 27, wherein said restricting access 10 includes spin locking.
  14. 32
    The method of any one of claims 21 to 31, wherein the plurality of search threads perform at least 100,000 searches per second.
  15. 35
    The method of any one of claims 21 to 34, wherein the pointer to the new element is written to a search index. '
  16. 37
    The method of any one of claims 21 to 34, wherein the pointer to the new 25 element is written to a data record within the database.
  17. 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:A η π m ,,, L - ... i ... ..] WO 03/038596 PCT/USO2/35082 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: 5 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 10 for the update thread: creating a new element according to new information received over the network, and without restricting access to the database for the plurality of search threads, writing a pointer to the new element to the database 15 using a single uninterruptible operation.
  18. 43
    The computer readable medium of any one of claims 38 to 42, wherein the plurality of search queries are received within a single network packet. .7'.....7Z77\'77 ? Γ* FT /*** r* » * » WO 03/038596 PCT/US02/35082
  19. 44
    The computer readable medium of any one of claims 38 to 43. wherein the plurality of search replies are sent within a single network packet.
  20. 45
    The computer readable medium of. any one of claims 38 to 44, wherein said restricting access includes database locking.
  21. 46
    The computer readable medium of any one of claims 38 to 44, wherein said restricting access includes spin locking.
  22. 49
    The computer readable medium of any one of claims 38 to 48, wherein the pointer to the new element is written to a search index.
  23. 51
    The computer readable medium of any one of claims 38 to 48, wherein the pointer to the new element is written to a data record within the database.
  24. 52
    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: WO 03/038596 PCT/US02/35082 without restricting access to the database for the plurality of search threads, writing a pointer to an existing element to the database, using a single uninterruptible operation.
Independent claims24