toplingdb
toplingdb copied to clipboard
ToplingDB is a cloud native LSM Key-Value Store with searchable compression algo and distributed compaction
- Follow steps in [wiki](https://github.com/topling/rockside/wiki/grafana%E5%B1%95%E7%A4%BAtoplingdb%E8%BF%90%E8%A1%8C%E6%8C%87%E6%A0%87-shell%E5%AE%89%E8%A3%85), error happens. ``` port/port_posix.cc:31:10: fatal error: terark/util/fast_getcpu.hpp: No such file or directory #include ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. ``` - Besides, the `MADV_COLD` flag for madvise seems...
As a cloud native DB, distributed compaction needs fee charge, this involves some code changes.
```bash # StartTrace curl -d '{"file": "trace.txt", "filter": "kTraceFilterNone"}' "http://somehost:port/db/mydb?cmd=StartTrace" # EndTrace curl -d '{}' "http://somehost:port/db/mydb?cmd=EndTrace" ``` Start | End -----|----- StartTrace | EndTrace StartIOTrace | EndIOTrace StartBlockCacheTrace | EndBlockCacheTrace
### Expected behavior set `level0_file_num_compaction_trigger=-1` should disable intra L0 compaction ### Actual behavior set `level0_file_num_compaction_trigger=-1` triggers infinite write stop ### Steps to reproduce the behavior set write_buffer_size=1G and target_file_size_base=1M, then...
Compaction needs CompactionFilter, which may use `DB::Get` for metadata(such as pika/todis/kvrocks), in distributed compaction, compact_worker has no `DB` object, thus can not support such compaction. ToplingZipTable Builder use two-pass scanning,...
Now Transaction DB use `BaseDeltaIterator`, but it needs compare base_iter key and delta_iter key on each Next()/Prev(), this waste CPU. We can add delta iter to the (heap of) underlying...
## Description Here `Omit L0 Flush` is: definitely reduce IO, memory and CPU. `Vaule content` should not be stored in MemTable, instead storing value offset(of WAL Log) and size in...
For Key and Value, same column pos of different rows may use RLE compression, and can use Rank-Select to map RLE runs to compressed form.
Now `DBIter::Next` supports lazy load value, but `DBIter::Prev` does not support lazy load for **first visible is kValueType**. `DBIter::Prev` needs to calling underlying `iter->Prev` to get the iter pos of...
This feature request is picked from https://github.com/facebook/rocksdb/issues/10888 Now RocksDB has TableReader::ApproximateKeyAnchors for sampling key boundaries for sub compaction. It is better to expose ApproximateKeyAnchors to DB for applications, such as:...