Skip to content

Releases: streamnative/oxia

v0.10.0

25 Sep 17:45
938b7a5
Compare
Choose a tag to compare

What's Changed

  • [Go client] Recover from write stream failures by @merlimat in #521
  • Fix NPE in coordinator when closing a half-initialized node controller by @merlimat in #520
  • Fixed notification DB read after DB was closed by @merlimat in #519
  • Include session-id in CLI tool output stats by @merlimat in #524
  • fix(server): print the correct error info by @mattisonchao in #527
  • fix(tool): follow up #524 to add session id to output by @mattisonchao in #528
  • Pool index buffer for read-write wal segments by @merlimat in #523
  • Allow to disable notifications on a namespace by @merlimat in #526
  • Implementation of disabling notifications on server side by @merlimat in #529
  • Configure notifications disabled on standalone CLI by @merlimat in #531
  • On delete-range send 1 single notification to clients by @merlimat in #532
  • Async quorum-ack-tracker should trigger callback outside of mutex by @merlimat in #533
  • feat(server): return storage entry to vtpool when callback error by @mattisonchao in #535
  • feat(cmd): support wal cmd truncate command by @mattisonchao in #530
  • fix(session): expired session write request will delete other session shadow key by @mattisonchao in #534

Full Changelog: v0.9.1...v0.10.0

v0.9.1

19 Sep 04:10
f21df14
Compare
Choose a tag to compare

What's Changed

  • fix(notification): support notification retention configuration by @mattisonchao in #515

Full Changelog: v0.9.0...v0.9.1

v0.9.0

14 Sep 00:31
1934d55
Compare
Choose a tag to compare

What's Changed

  • Rename ShardId field to Shard by @merlimat in #511
  • fix(coordinator): panic when BadVersion in coordinator by @mattisonchao in #512
  • Upgrade to go lint 1.61 by @merlimat in #514
  • Add term check on the internal streams, to avoid wrong closures of leader controller by @merlimat in #513

Full Changelog: v0.8.0...v0.9.0

v0.8.0

30 Aug 02:13
407ea2e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

27 Aug 01:36
b0988d2
Compare
Choose a tag to compare

What's Changed

  • build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 by @dependabot in #498
  • Added server side support for WriteStream operation by @merlimat in #499
  • server: enable pebble bloom filter for better read performance by @mattisonchao in #500
  • Use WriteStream in client sdk by @merlimat in #501
  • [improve][doc] Add info to specify different wal and dir paths if running a local test. by @heesung-sn in #504
  • Use unique version ids within the same batch by @merlimat in #505

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

08 Jul 05:17
61b2f81
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.0...v0.6.0

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