• Zardosht Kasheff's avatar
    refs #54, improve the performance of hot indexing. This change does two things: · cf1f872d
    Zardosht Kasheff authored
     - gets indexer to run in reverse, that is, start at the end and run to beginning
     - refines locking a bit. An estimate of the position of the hot indexer is stored,
       that is cheap to look at. Threads that use this estimate with a mutex either do
       only a quick comparison or set it to a new value. Threads doing writes (with XXX_multiple calls)
       will check their position with respect to the estimate, and if they see the hot indexer
       is already past where they will modify, they don't grab the more expensive indexer
       lock. For insertion workloads that go to the end of the main dictionary of a table/collection,
       this check should practically always pass.
    cf1f872d
indexer-internal.h 7.07 KB