{"repo":"Vanilla-Beauty/tiny-lsm","free":true,"listed":false,"github":"https://github.com/Vanilla-Beauty/tiny-lsm","clone":"git clone https://github.com/Vanilla-Beauty/tiny-lsm.git","description":"A KV storage engine based on LSM Tree, supporting Redis RESP","language":"C++","stars":325,"topics":["cpp","database","key-value-store","lsm-tree","nosql","redis"],"license":"MIT","category":"databases-storage","readme_excerpt":"Tiny-LSM is a educational project to implement a simple kv database from scratch, using lsm-tree as the storage engine. The project manager uses xmake. The project is inspired by mini-lsm, tinykv and leveldb. The project is partly compatible with the Redis Resp protocol, so it can be used as a redis backend and relpace redis-server (Just for fun 🎮). The developing posts can be found in my blog or zhihu. The is also a recorded video Course. 📚 New: Lab Course Released! We now offer a complete hands-on step-by-step Lab course designed for learners interested in building LSM-based storage engines from scratch. Project production is not easy, please click star ⭐ to support us ❤️ 👉 Tiny-LSM Lab Course You can also join the QQ group 💬 for discussion: 📦 Build Configuration The project uses xmake as the build system. Below is the xmake configuration for building the project and running tests: 1. Compile the project 2. Run the example program or test 1. Generate compile commands.json for clangd 1. Install the shared library 🗂️ WiscKey: Value Separation Tiny-LSM supports WiscKey-style key-value separation to reduce write amplification for large values. When enabled, values exceeding a configurable threshold are written to a separate append-only Value Log (VLog) file instead of being inlined in SST blocks. SST blocks only store a compact 12-byte reference [vlog offset: uint64][value size: uint32] , keeping the sorted index small and compaction cheap. Each VLog record is CRC32-check","default_branch":null,"files":null,"tree":[],"storefront":"/r/Vanilla-Beauty","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Vanilla-Beauty/tiny-lsm/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}