RocksDB Read Optimization Strategies for Streaming Applications
2023 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesisAlternative title
RocksDB Läsoperationsoptimeringsstrategier för Strömningsapplikationer (Swedish)
Abstract [en]
Modern stream processors rely on embedded key-value stores to manage state that accumulates over long-running computations and exceeds the available memory size. One of these key-value stores is RocksDB, which is widely used in many applications requiring high-performing storage with low latency. RocksDB uses local disk storage as its persistent storage medium. Disk reads are costly operations in terms of latency compared to reads from main memory, and if the time spent waiting for read operations in applications could be reduced, then the overall performance of applications could be improved. There are different strategies that can be used to achieve a shorter latency of read operations. Such a technique is micro-batching, which can utilize parallelism for increased performance and lowered latency. In this project, a specific method in RocksDB called MultiGet, which fetches multiple keys at the same time, was used to perform micro-batching of read operations. The strategy of using the MultiGet method on a batch of keys was benchmarked against a strategy of repeated Get calls, which only fetched one key at a time. The benchmarks were performed with those strategies to measure the difference in latency when used on synthetic key batches and on simulated streaming traces. The benchmarks showed that the MultiGet method had a latency of down to only 11% of the latency of the Get method when reading large batches from disk. When using these strategies on the simulated streaming workloads the strategies using MultiGet showed to be able to execute streaming traces with latency down to 58% of the latency of the Get strategy. These results show that micro-batching with the MultiGet method in RocksDB can potentially be used effectively depending on the streaming workload that is performed. However, there are some issues that need to be addressed first, such as batching operations in a way that makes sure that the streaming data semantics are kept.
Abstract [sv]
Moderna strömningsprocessorer använder inbyggda nyckel-värde-lagringsenheter för att hantera tillstånd som samlas upp över långvariga beräkningar och överskrider den tillgängliga huvudminnesstorleken. En av dessa nyckel-värde-lagringsenheter är RocksDB, som används flitigt i många program som kräver hög presterande lagring med låg accesstid. RocksDB använder lokal disklagring som sin persistenta lagringsmedium. Diskläsningar är kostsamma operationer vad gäller accesstid jämfört med läsningar från huvudminne, och om den tid som läggs på väntan på läsoperationer i program kunde reduceras skulle den totala prestandan i program förbättras. Det finns olika strategier som kan användas för att uppnå kortare accesstid vid läsoperationer. En sådan teknik är mikro-batchning, som kan utnyttja parallellism för ökad prestanda och minskad accesstid. I det här projektet användes en specifik metod i RocksDB som kallas MultiGet, som då hämtar flera nycklar samtidigt, för att utföra mikro-batchning av läsoperationer. Strategin att använda MultiGet-metoden på en batch av nycklar jämfördes med en strategi med upprepade Get-anrop, som bara hämtade en nyckel åt gången. Benchmarks utfördes med de här strategierna för att mäta skillnaden i latency när de används på syntetiska nyckelbatchar och på simuleringar av strömningstrakter. Benchmarks visade att MultiGet-metoden hade en accesstid på endast 11% av accesstiden för Get-metoden när stora batchar med nycklar lästes från disk. När dessa strategier användes på simuleringar av strömningsbelastningar visade strategierna med MultiGet sig kunna exekvera strömningstrace med en accesstid på 58% av accesstiden för Get-strategin. Dessa resultat visar att mikro-batchning med MultiGet-metoden i RocksDB potentiellt kan användas effektivt beroende på den utförda strömningsbelastningen. Det finns dock vissa frågor som måste hanteras först, såsom batch-operationer på ett sätt som säkerställer att strömningsdata-semantiken bevaras.
Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology , 2023. , p. 49
Series
TRITA-EECS-EX ; 2023:25
Keywords [en]
RocksDB, Data streams, Micro-batching, Data stream processing, read operation benchmark, Data stream workload simulation
Keywords [sv]
RocksDB, Dataströmmar, Mikro-batching, Dataströmsprocessering, Läsoperationsmätresultat, Dataströmsarbetsbelastningssimulation
National Category
Computer Sciences Computer Engineering Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-324034OAI: oai:DiVA.org:kth-324034DiVA, id: diva2:1737848
Subject / course
Information and Communication Technology
Presentation
2023-01-04, via Zoom https://kth-se.zoom.us/j/527707646, Isafjordsgatan 22 (Kistagången 16), Stockholm, 11:00 (English)
Supervisors
Examiners
2023-02-252023-02-182023-02-25Bibliographically approved