https://github.com/poonai/aran
Key Value storage based on Ranged LSM tree
https://github.com/poonai/aran
Last synced: 2 months ago
JSON representation
Key Value storage based on Ranged LSM tree
- Host: GitHub
- URL: https://github.com/poonai/aran
- Owner: poonai
- License: apache-2.0
- Created: 2019-02-21T04:25:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-17T08:33:34.000Z (almost 5 years ago)
- Last Synced: 2025-04-13T18:13:33.654Z (2 months ago)
- Language: Go
- Size: 39.1 KB
- Stars: 105
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Aran
Aran is an embedded key value storage based on new research paper [
Efficient Key-Value Stores with Ranged Log-Structured Merge Trees](https://ieeexplore.ieee.org/document/8457859)# Usage
```go
opts := aran.DefaultOptions()
db, err := aran.New(opts)
if err != nil {
panic(err)
}
defer db.Close()
db.Set([]byte("hello"), []byte("schoolboy"))
val, exist := db.Get([]byte("hello"))
if !exist {
panic("value not exist")
}
fmt.Println(string(val))
```
### Note
Don't forget to close the db, otherwise some data will be lost.# Supported API
- Get
- Set# MileStones
- Transaction API
- WAL support
- Loadbalancing small files# Contribution
Don't think too much. just send a PR, if you need any feature or if you find any bug.
Raising an issue is also a kind of help, so feel free to raise an issue if you find any bug.
# Why another embedded KV store if badger already exist?
I was bored so I wrote this on my weekend. And, `Go` is awesome. btw I like `Rust` too.
# Acknowledgments
- Thank you sci-hub for letting me to download the paper. Language and money should not be a barrier for gaining the knowledge (My opinion)
- Thank you badger for inspiration.
- Thank you [
Efficient Key-Value Stores with Ranged Log-Structured Merge Trees's](https://ieeexplore.ieee.org/document/8457859) author for writing beautiful piece of LSM.
# About MeI go with the name [schoolboy](https://twitter.com/hi_balaji) and I do `Go` and little bit `Rust`. If you're looking for someone to collaborate with an open source project or to fill any junior dev position. You can DM me at [@hi_balaji](https://twitter.com/hi_balaji)
# அரண்
அரண் என்பது புதிய [ஆராய்ச்சியின்படி](https://ieeexplore.ieee.org/document/8457859) எழுதப்பட்ட ஒரு தகவல் சேமிப்பு நிரல்.
# பயன்பாட்டு முறை
```go
opts := aran.DefaultOptions()
db, err := aran.New(opts)
if err != nil {
panic(err)
}
defer db.Close()
db.Set([]byte("வாழ்க"), []byte("மனிதாபிமானம்"))
val, exist := db.Get([]byte("வாழ்க"))
if !exist {
panic("தகவல் கிடைக்கவில்லை")
}
fmt.Println(string(val))
```
### குறிப்புclose அழைக்கவும், இல்லையென்றால் தகவல்களை இழக்க நேரிடும்
# பங்குஅளிப்பாளர் குறிப்பு
நீங்க கண்ணா மூடிக்கிட்டு கவலைபடாம PR அனுப்பலாம்
# ஒப்புகை
- ஆய்வு கட்டுரையை பதிவு இரக்கம் செய்ய உதவிய sci-hub'கு நன்றி
- எடுத்துக்காட்டாக இருந்த badger'கு நன்றி
- ஆய்வு கட்டுரை எழுதிய ஆசிரியர்க்கு நன்றி [Efficient Key-Value Stores with Ranged Log-Structured Merge Trees](https://ieeexplore.ieee.org/document/8457859)# என்னை பற்றி
எனது பெயர் பாலாஜி ஜின்னா. நான் ஒரு பொறியியல் கல்லூரி மாணவன். உங்களுக்கு சந்தேகம் அல்லது ஒரு புதிய நட்பை உருவாக்க விரும்பினால் நீங்கள் எனது கிச்சாக [முகவரிக்கு](https://twitter.com/hi_balaji) செய்தி அனுப்பலாம்