Skip to content

Releases: streamnative/oxia

v0.5.0

20 May 18:18
6c0fc21
Compare
Choose a tag to compare

New Features

Get() operation with floor/ceiling comparison

It's now possible to do a Get() request for a key that is floor (<=), ceiling (>=), lower (<) or higher >.

eg.:

key, value, version, err := client.Get(ctx, "my-key", ComparisonFloor())

Partition Key

A PartitionKey can be specified in all the operations. When a partition key is set, the shard routing mechanism will be based on it instead of using the record key.

eg.:

key1, v1, err := client.Put(ctx, "key-1", []byte("1"), PartitionKey("x"))
key2, v2, err := client.Put(ctx, "key-2", []byte("1"), PartitionKey("x"))
key2, v2, err := client.Put(ctx, "key-3", []byte("1"), PartitionKey("x"))

All these record are going to be stored on the same shard, even though they have different keys.

Operations such as Get() with floor/ceiling match, List() and RangeScan() become more efficient when a PartitionKey() option is set, since they only need to operate on a single shard.

Sequential Keys

Oxia can help generating unique and monotonically increasing keys composed on an arbitrary number of sequences.

key1, v1, err := client.Put(ctx, "a", []byte("0"), SequenceKeysDeltas(1), PartitionKey("x"))
// key1 -> a-00000000000000000001
key2, v2, err := client.Put(ctx, "a", []byte("0"), SequenceKeysDeltas(5), PartitionKey("x"))
// key2 -> a-00000000000000000006

RangeScan

RangeScan() is similar to List(), though it allows to efficiently iterate over a large set of records

Reading Coordinator configuration from config map

When running in Kubernetes, the Oxia coordinator can read the configuration directly from a config map. This will allow to get instant notifications of changes to the configuration and to get them applied immediately.

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

26 Apr 01:54
281313c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

01 Feb 20:22
bf7fd35
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.2.1...v0.3.0

v0.2.1

30 Nov 23:25
ef438d9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.2.0...v0.2.1

v0.2.0

31 Oct 00:31
fc90adf
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0 Initial release

26 Apr 16:31
62445f9
Compare
Choose a tag to compare
Run Maelstrom in CI (#336)