Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/openinx/minibase
An embedded KV storage engine for learning HBase
https://github.com/openinx/minibase
Last synced: 15 days ago
JSON representation
An embedded KV storage engine for learning HBase
- Host: GitHub
- URL: https://github.com/openinx/minibase
- Owner: openinx
- Created: 2019-01-20T09:49:30.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-10-13T11:42:27.000Z (about 4 years ago)
- Last Synced: 2024-06-08T12:35:44.417Z (5 months ago)
- Language: Java
- Size: 39.1 KB
- Stars: 237
- Watchers: 7
- Forks: 144
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
MiniBase is an embedded KV storage engine, it's quit simple, not for production env, just for better understand HBase or
other LSM-related index algorithm.In MiniBase, we use those basic algorithm and data structure:
* BloomFilter: it can helps a lot when filtering much useless IO.
* ConcurrentSkipListMap: Yeah, it's quite suitable when designing memstore. It can maintian an sorted key value set in
high concurrency scenarios.
* LSM Index Algorithm: the memstore part and disk store part.### How to use ?
```java
Config conf = new Config().setDataDir(dataDir).setMaxMemstoreSize(1).setFlushMaxRetries(1)
.setMaxDiskFiles(10);
MiniBase db = MiniBaseImpl.create(conf).open();// Put
db.put(Bytes.toBytes(1), Bytes.toBytes(1));// Scan
Iter kv = db.scan();
while (kv.hasNext()) {
KeyValue kv = kv.next();
//...
}
```### How to build and test?
```shell
git clone [email protected]:openinx/minibase.git
mvn clean package
```