3 个版本 (重大更新)
0.3.0 | 2019年6月26日 |
---|---|
0.2.0 | 2019年5月27日 |
0.1.0 | 2019年5月8日 |
2866 在 数据库接口
29KB
561 行
Kalavara
一个支持 http 的分布式持久化键值存储。受 minkeyvalue 启发。
安装
预编译的二进制文件可在 发布页面 获取,或者您可以运行 cargo install kalavara
命令来安装 kalavara
主服务器
主服务器在 rocksdb 中存储索引(键,存储值的卷服务器的 URL)。在更新元数据后,请求将被重定向到相应的卷服务器。
要启动服务器,请运行
master -p 6000 -d /tmp/kalavadb -v http://volume1:6001 http://volume2:6002
卷服务器
卷服务器将值存储在文件系统中。为此方法能够工作,destdir/tmp
目录和目标路径应在同一文件系统中。在目标路径中创建临时文件,然后将其移动到目标路径。
要启动卷服务器,请运行
volume -p 7000 -d /tmp/kalavarastore
如果主服务器不知道这个卷服务器,请使用以下命令进行注册
volume -p 7000 -d /tmp/kalavarastore -m http://master.server -b http://this.volume.server:7000
用法
- 插入键值对
curl -XPUT -L -d value https://127.0.0.1:6000/store/key
- 检索值
curl -XGET -L https://127.0.0.1:6000/store/key
- 删除键
curl -XDELETE -L https://127.0.0.1:6000/store/key
- 向主服务器注册新的卷服务器
curl -XPOST -d http://newvolume.server https://127.0.0.1:6000/admin/add-volume
性能
./wrk -t2 -c100 -d10s https://127.0.0.1:6000/missingkey
Running 10s test @ https://127.0.0.1:6000/missingkey
2 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.04ms 1.61ms 28.98ms 83.07%
Req/Sec 21.33k 4.76k 34.42k 66.00%
426423 requests in 10.07s, 65.88MB read
Non-2xx or 3xx responses: 426423
Requests/sec: 42359.95
Transfer/sec: 6.54MB
许可证
在法律允许的范围内,作者已将本软件的所有相关版权和邻接权奉献给全球公众领域。本软件分发时不附带任何保证。
依赖项
~28–39MB
~714K SLoC