4 ms·
Will be interesting to test this against Cyrus' two skiplist based databases: https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyrusdb_skiplist.c https
by brongondwana 9y ago
Will be interesting to test this against Cyrus' two skiplist based databases:
https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyrusdb_skiplist.c https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyr...
https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyrusdb_twoskip.c https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyr...
They take slightly different tradeoffs. I wrote twoskip to work around a handful of issues with skiplist around crash recovery. The big cost still is repack speed, which is why I have a project to build something called zeroskip, which won't be single-file, but will have some very nice never-rewrite behaviour.
http://opera.brong.fastmail.fm/talks/twoskip/twoskip-yapc12.pdf http://opera.brong.fastmail.fm/talks/twoskip/twoskip-yapc12.... describes the design of twoskip a bit.