Skip to content

Releases: C-Pro/geche

v1.5.2

24 Dec 02:02
4997339

Choose a tag to compare

What's Changed

Full Changelog: v1.5.1...v1.5.2

v1.5.1

04 Dec 12:19
9fa9cd0

Choose a tag to compare

Allow ListByPrefix access in a wrapped KVCache

v1.5.0

04 Dec 10:28
6a93e00

Choose a tag to compare

Add new KVCache type.

Full Changelog: v1.4.1...v1.5.0

v1.4.1

21 Aug 11:10
33979f5

Choose a tag to compare

What's Changed

  • fix: prevent forever lock in udpate when multiple goroutines reach past waitInFlight at the same time by @arthhhhh23 in #16

Full Changelog: v1.4.0...v1.4.1

v1.4.0

19 Jun 04:28

Choose a tag to compare

Add iterators support

Fix MapTTL tail/head overwrite

17 Dec 09:51
5192b20

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

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

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

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

Choose a tag to compare

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