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 according to database update information received over the network 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 the database update information received over the network, and write an n-byte pointer value to the new element to the database in a search index of the database using a single uninterruptible operation to thereby make the said new element visible to the said search threads, wherein the single uninterruptible operation is a store instruction and wherein the processor has a word size of at least n-bytes, the memory has a width of at least n-bytes and the store instruction writes n-bytes to a memory address located on an n-byte boundary, and wherein the new element is not visible to the search threads until the pointer value to the database is written. 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 according to database update information received over the network 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 the database update information received over the network, and write an n-byte pointer value to the new element to the database in a search index of the database using a single uninterruptible operation to thereby make the said new element visible to the said search threads, wherein the single uninterruptible operation is a store instruction and wherein the processor has a word size of at least n-bytes, the memory has a width of at least n-bytes and the store instruction writes n-bytes to a memory address located on an n-byte boundary, and wherein the new element is not visible to the search threads until the pointer value to the database is written. create an update thread according to database update information received over the network 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 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 the database update information received over the network, and write an n-byte pointer value to the new element to the database in a search index of the database using a single uninterruptible operation to thereby make the said new element visible to the said search threads, wherein the single uninterruptible operation is a store instruction and wherein the processor has a word size of at least n-bytes, the memory has a width of at least n-bytes and the store instruction writes n-bytes to a memory address located on an n-byte boundary, and wherein the new element is not visible to the search threads until the pointer value to the database is written. create a new element in the database according to the database update information received over the network, and write an n-byte pointer value to the new element to the database in a search index of the database using a single uninterruptible operation to thereby make the said new element visible to the said search threads, wherein the single uninterruptible operation is a store instruction and wherein the processor has a word size of at least n-bytes, the memory has a width of at least n-bytes and the store instruction writes n-bytes to a memory address located on an n-byte boundary, and wherein the new element is not visible to the search threads until the pointer value to the database is written.