Skip to content

Releases: C-Pro/geche

Fix MapTTL tail/head overwrite

17 Dec 09:51
5192b20
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.3.0...v1.3.1

v1.3.0 add SetIfPresent

18 Oct 07:06
b63990f
Compare
Choose a tag to compare

New function for atomic SetIfPresent operation:

// SetIfPresent sets the kv only if the key was already present
// and returns the previous value (if any) and whether the insertion was performed
SetIfPresent(K, V) (V, bool)

kudos for @arthhhhh23 for implementing this

KV leaf node memory optimization

04 Nov 09:01
4f6a084
Compare
Choose a tag to compare

Optimization to store leaf nodes as single node with multi-byte suffix instead of a set of single-byte nodes to optimize both memory consumption (about 50x less memory used for long keys) as well as CPU usage reduction due to less iterations needed to reach terminal node.

For example before optimization keys "apple" and "approve" were stored this way (one node per character):

a - p - p - l - e
        |
        r - o - v - e

After "tail aggregation" the suffix parts of both keys can be aggregated in the single node:

a - p - p - le
        |
        rove

Fix leak of trie nodes on delete

11 Sep 02:44
2f51301
Compare
Choose a tag to compare

Do backwards walk to trie root removing all arcs that don't have leaf nodes.

Fix ListByPrefix

10 Jul 05:46
60675e9
Compare
Choose a tag to compare

Fix error in ListByPrefix DFS walk, when key length difference was more than 1.

Initial release

27 Jun 10:30
9a80dac
Compare
Choose a tag to compare

Initial release with several cache implementations and wrappers to provide extra functionality.