Vi presenterar Masstree, en snabb nyckel-värde databas utformad för SMP maskiner. Masstree håller alla data i minnet. Dess huvudsakliga datastruktur är en trie-liknande konkatering av B + -träd, som var och en hanterar en fast längdskiva av en variabel-längd nyckel. Denna struktur hanterar effektivt godtyckliga längd möjligen binära nycklar, inklusive nycklar med långa delade prefix. B +-tree fanout valdes för att minimera total DRAM-fördröjning vid nedstigning av trädet och förhämtning av varje trädknuta. Lookups använder optimistisk konvergenskontroll, en read-copy-update-liknande teknik, och skriver inte delade datastrukturer; uppdateringar lås bara drabbade noder. Loggning och checkpointing ger konsekvens och hållbarhet. Även om några av dessa idéer dyker upp någon annanstans, är Masstree först med att kombinera dem. Vi diskuterar designvarianter och deras konsekvenser. På en 16-kärnig maskin, med loggning aktiverad och frågor anländer över ett nätverk, Masstree utför mer än sex miljoner enkla frågor per sekund. Denna prestanda är jämförbar med memcached, en icke-beständig hash bordsserver, och högre (ofta mycket högre) än VoltDB, MongoDB och Redis.
Masstree REF är en trie-liknande konkatering av B-träd och använder finkornig låsning och optimistisk konvergenskontroll för att uppnå hög prestanda under flerkärniga scenarier.
Cache craftiness for fast multicore key-value storage