agatedb icon indicating copy to clipboard operation
agatedb copied to clipboard

A persistent key-value storage in rust.

Results 38 agatedb issues
Sort by recently updated
recently updated
newest added

This issue describe a possible way to ingest external SST file to a running agatedb instance just as rocksdb. # Background TiKV use ingest external SST feature for some use...

Stage 1: Finish basic implementation - [x] Merge the develop branch to master, and reach the same test coverage ratio as bager - [x] https://github.com/tikv/agatedb/issues/125 - [x] introduce code-cov bot...

When getting value from LSM, agatedb iters on levelhandlers and calls `LevelHandler::get()` under a `RwLockReadGuard` which will cause the whole read I/O path on this level under a read lock....

DO NOT MERGE! This is just an example impl for block cache. The design of LRU is copied from leveldb. (I'm a Rust beginner. So the code is quite ugly.)...

Signed-off-by: GanZiheng Unify all kinds of iterators which implement the `AgateIterator` trait. Suppose we have another two extra elements in the data which the iterator iterates over, one is before...

This will cause problem when performing compaction in memory mode, since we will never return tables built by compaction successfully due to the `sync_dir` returning error with empty path input....

看起来,现在agatedb并没有类似rocksdb的Column family的东西,我一开始以为table是类似Column family,仔细看了一下代码,感觉table只是一个sst文件(没有compact)。 我的想法是,搞多个agatedb,每个相当于一个Column family 但是,现在每个agatedb都持有一份独立的yatp,开多个agatedb,就会有一堆线程。 我的想法是,把yatp放到参数中去,这样多个agatedb就可以共用一个yatp,不知道这个想法是否合理。

Transaction 的 set(key,value) 不会增加版本号,当前进程读取是新数据,关闭进程后重新读取就会读取旧数据 读取都是用的 pub fn get(&self, key: impl Into) -> Result { let key = key_with_ts(key.into(), std::u64::MAX); self.core.get(&key) }

Currently every sst is opened in mmap mode, we can't control the memory usage of agatedb with this mode, it will use as much as it can. This may cause...

enhancement