迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:kvdb开源软件地址:https://gitee.com/mphyatyh/kvdb开源软件介绍:kvdb介绍kvdb是一个基于B+ Tree的简单KV数据库。这不是一个实用的项目,主要目的是学习B+ Tree的应用。 软件架构软件架构说明详见 doc/design.ppt。 安装教程
使用说明
kv help -- this message kv get <key> -- get a key kv put <key> <val> -- set key kv del <key> -- delete a key kv list -- list all key in the db kv ins <start_seq> <num> -- insert records in batch mode kv clr -- remove all records in the database kv verify -- get all records and verify them 上面是kv支持的命令,说明如下:
struct kvdb_s; typedef struct kvdb_s *kvdb_t; 上面的kvdb_t是数据的描述符,这个描述符代表一个数据库文件,通过调用kvdb_open可以得到一个描述。在一个应用程序中可以同时打开多个数据库文件。以后的get/put/del等操作都需要用到这个描述符,数据库用完之后,需要调用kvdb_close关闭这个库文件。 kvdb_t kvdb_open(char *name); int kvdb_close(kvdb_t db); int kvdb_get(kvdb_t db, uint64_t k, uint64_t *v); int kvdb_put(kvdb_t db, uint64_t k, uint64_t v); int kvdb_del(kvdb_t db, uint64_t k);
struct cursor_s; typedef struct cursor_s *cursor_t; cursor_t kvdb_open_cursor(kvdb_t db, uint64_t start_key, uint64_t end_key); int kvdb_get_next(kvdb_t db, cursor_t cs, uint64_t *k, uint64_t *v); int kvdb_del_next(kvdb_t db, cursor_t cs, uint64_t *k, uint64_t *v); void kvdb_close_cursor(kvdb_t db, cursor_t cs); 上面的函数时用来执行批量操作的:(1)查找key在一个范围内的所有记录;(2)删除key落入一个范围内的所有记录。注意:范围包括start_key,但不包括end_key。 kvdb_del_next() -- 这个函数还没有实现。 性能测试插入性能,1000万条记录,耗时700sec。平均插入每条记录耗时70us。 total: 9983000 in 700 sec, avarage: 70 us/recordlast 1 sec: 15500, avarage: 64 us/recordtotal: 9998300 in 701 sec, avarage: 70 us/recordlast 1 sec: 15300, avarage: 65 us/record 参与贡献
![]() |
请发表评论