mirror of
https://github.com/radareorg/sdb.git
synced 2026-11-07 06:36:02 -10:00
53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
BUGS
|
|
----
|
|
* expire time may be affected by timezone and system time change (NOTE)
|
|
* verify return 0/1 everywhere
|
|
|
|
TODO
|
|
----
|
|
* Remove all calls to eprintf in the library functions
|
|
* Add disk database file checksum to verify if its broken or valid file
|
|
* ht->ls is wrong! dups appear
|
|
* implement mmap for w32
|
|
* implement sdb_ainc/sdb_adec
|
|
* implement io filters for load/save databases (io wrap)
|
|
* create string pool for a list of sizes
|
|
newpool (sizeof (char), 10, 100, 1000);
|
|
* Add api to store serialized in memory
|
|
* Add api for raw bytes
|
|
* Add api and syntax for json_length()
|
|
* Add support for socket file for memcached api
|
|
* add api to create db without caching it before
|
|
|
|
Synchronization
|
|
--------------
|
|
- each key/value have a timestamp of creation/modification
|
|
- sdb_diff() must check both databases and look for removed entries
|
|
- syncronization between hosts - realtime storage
|
|
- run sync every N seconds? every N keys in cache?
|
|
- sdb_log to dump to a file descriptor all sets.. as a stream
|
|
|
|
Optimization
|
|
------------
|
|
* remove endian conversions
|
|
* use slices instead of mallocs
|
|
* use strstore
|
|
* accelerate get ops with cached results (const char* instead of strdup)
|
|
* implement udp protocol for memcache
|
|
* rewrite mcsdb in luvit
|
|
* use 16 bit key and 16 bit value // dont think so
|
|
* use kernel's linked list? it should be faster..
|
|
|
|
StringPool
|
|
----------
|
|
string types:
|
|
readonly
|
|
numeric
|
|
array
|
|
word
|
|
string
|
|
|
|
char *hugestring;
|
|
int hugestring_size;
|
|
{type;}
|