forked from BohuTANG/nessDB
-
Notifications
You must be signed in to change notification settings - Fork 0
A very fast key-value, embedded Database Storage Engine. Using SST(Small-Splittable Tree, one of Bε-tree) as storage engine from version 2.0.
License
lkunxyz/nessDB
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
================================================================ nessDB v2.0 with Small-Splittable Tree (one of Bε-tree) Copyright (C) 2012-2013 BohuTANG________________ _____________________________ __ \__ __ ) __ __ \ _ \_ ___/_ ___/_ / / /_ __ | _ / / / __/(__ )_(__ )_ /_/ /_ /_/ / /_/ /_/\___//____/ /____/ /_____/ /_____/ ================================================================ nessDB is a fast Key-Value database(embedded), which is written in ANSI C with GPL LICENSE and works in most POSIX systems without external dependencies. From Version 2.0, nessDB uses Small-Splittable Tree (SST), it's one of Bε-tree and Cache-oblivious write-optimized structure, for more details, please refer to documentations which in 'spec' folder. V2.0 FEATURES ============= a. Better performances on Random-Read/Write b. Using Small-Splittable Tree as storage engine c. Using fractional cascading to speed up search d. Cache-oblivious write-optimized structure HOW TODO BENCHMARK ================== $make db-bench $./db-bench <write | read > <count> or $./db-bench readone <key> If you want delete all indexes/db/logs, you should do: $make cleandb HOW TO USE AS DB ENGINE ======================= a. OPEN struct nessdb *db = db_open(db-path); b. ADD struct slice sk, sv; sk.len = 3; sk.data = "key"; sv.len = 5; sv.data = "value"; db_add(db, &sk, &sv); c. DELETE struct slice sk; sk.len = 3; sk.data = "key"; db_remove(db, &sk); d. READ struct slice sk, sv; sk.len = 3; sk.data = "key"; int ret = db_get(db, &sk, &sv); if (ret == 1) { printf("data is %s", sv.data); db_free_data(sv.data); } else print("Not found"); e. EXISTS struct slice sk; sk.len = 3; sk.data = "key"; int ret = db_exists(db, &sk); if (ret == 1) print("yes, exists"); else print("oops"); f. SHRINK db_shrink(db); g. CLOSE db_close(db); Thanks for your attention! --BohuTANG--
About
A very fast key-value, embedded Database Storage Engine. Using SST(Small-Splittable Tree, one of Bε-tree) as storage engine from version 2.0.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published