Skip to content

Releases: tarantool/go-vshard-router

v2.0.2

23 Jan 09:51
Compare
Choose a tag to compare

FEATURES:

  • Slog provider is available now. Use NewSlogLogger for slog log provider creation.

BUG FIXES:

  • Fixed go.mod and go.sum files with go mod tidy.
  • DiscoveryAllBuckets: don't cancel requests to other replicasets if request to some replicaset failed.
  • AddReplicaset: don't fail if there are no available RW instances.
  • NewRouter: don't fail if DiscoveryAllBuckets has returned an error.

TESTS:

  • Added etcd v2 provider tests.
  • Add test for degraded cluster (TestDegradedCluster).
  • Add more tests for etcd v3 viper provider.
  • Add tests and correct panics for invalid topology config from viper.

v2.0.1

15 Jan 08:55
Compare
Choose a tag to compare

Release fix

in the v2.0.0 release there was a bug that did not allow go-get. Updating to v2 requires changing the module name

v2.0.0

14 Jan 10:53
Compare
Choose a tag to compare

We are excited to announce the release of version v2!
This major update was necessary due to the initial design of interfaces that were either incorrect or redundant.
In addition, we have fully adapted to work with Tarantool 3,
eliminating the dependency on UUID-based replica sets and instances.
While you can still use these elements for supplementary information, they are no longer mandatory.
The update also includes changes to several previously public methods,
which were not intended to be exposed in the original vshard implementation.
We would like to express our gratitude to everyone who shared their migration issues with us,
as your feedback was invaluable in shaping the current state of the interfaces.

FEATURES:

  • Implemented Pooler method that returns go-tarantool Pooler interface. That can be used by some go-tarantool modules(
    like box).

BUG FIXES:

  • ClusterBootstrap: eliminate direct access to r.idToReplicaset.

CHANGES:

  • Instance UUID no more required, use instance name instead.
  • Removed toolchain go1.23.3.
  • Refactored GetTyped interface and logic. Now we use raw msg buffer instead raw messages. Interface works and looks
    like go-tarantool response.
  • ReplicaCall, RouterCallImpl, RouterMapCallRWImpl, BucketResolve, BucketDiscovery, RouterBucketID, RouterBucketIDMPCRC32 methods were removed cause they work invalid, look useless or redundant.
  • All PR, issue references in #XYZ format in commits older than 42f3637 refer to https://github.com/KaymeKaydex/go-vshard-router.
  • VshardRouterCallMode type renamed to CallMode for simplicity.
  • StorageResultTypedFunc type removed as useless type.
  • Updated msgpack version from v5.3.5 to v5.4.1.
  • Replicaset identifier now is replicaset name instead uuid.
  • Remove unused Makefile target.
  • Update README.md, README_ru.md.
  • Rename RouterRouteAll -> RouteAll, RouterRoute -> Route, RouterBucketIDStrCRC32 -> BucketIDStrCRC32.
  • Replace github links to master branch with permalinks.

TESTS:

  • Write tests in tests/tnt folder are deprecated.
  • Removed empty todo tests from tests/tnt.
  • Moved TestReplicasetReplicaCall and Go benches from tests/tnt to tarantool_test.go .
  • TestRouterCallProto rewrote.
  • Start using constants in tarantool_test.go instead duplicate variables.
  • TestRouterMapCall moved to tarantool_test.go and renamed to TestRouter_RouterMapCallRWImpl.
  • Remove discovery_test.go, move tests/tnt/discovery_test.go -> tarantool_test.go

v1.3.2

27 Dec 11:22
80cfe4c
Compare
Choose a tag to compare

CHANGES:

  • Updated Go version from 1.20 to 1.22.
  • Update go-tarantool to 2.2.1 and testify to v1.10.0.

TESTS:

  • Added a test for using etcd v3 with Viper.

REFACTOR:

  • Added information about available providers to the README.

v1.3.1

24 Dec 09:48
e590009
Compare
Choose a tag to compare

REFACTOR:

  • Change already exists rs error "replicaset exists" to "replicaset already exists".
  • Rewrite some comments to en.

FEATURES:

  • Added viper tarantool3 topology provider implementation.

EXAMPLES:

  • Logger usage in customer example fixed.

v1.3.0

23 Dec 10:55
249e9ba
Compare
Choose a tag to compare

Migration

The repository was migrated from https://github.com/KaymeKaydex/go-vshard-router

BUG FIXES:

  • Fix decoding fields for StorageCallVShardError (MasterUUID, ReplicasetUUID).

CHANGES:

  • Add comment why and how we handle "NON_MASTER" vshard error.
  • Don't support 'type Error struct' anymore.
  • Linter: don't capitalize error strings and capitalize log.
  • Fix misspellings.
  • Handle vshard error the same way as lua vshard router (resolve issue #77).
  • Decode 'vshard.storage.call' response manually into struct vshardStorageCallResponseProto using DecodeMsgpack interface to reduce allocations (partially #61, #100).
  • Remove mapstructure tag from StorageCallVShardError.
  • Update benchmarks in README files.
  • Package mapstructure is completely removed from direct dependencies list.

FEATURES:

  • Add pause between requests in buckets discovering. Configured by config DiscoveryWorkStep, default is 10ms.
  • Add ReplicaUUID to the StorageCallVShardError struct.
  • New method 'RouterMapCallRW[T]' to replace the deprecated one 'RouterMapCallRWImpl'.
  • New method 'Router.Call' to replace the deprecated one 'RouterCallImpl'.

REFACTOR:

  • Use constants for vshard error names and codes.
  • Reduce SLOC by using CallAsync method.
  • BucketForceCreate optimization: don't decode tnt response.
  • Remove bucketStatError type, use StorageCallVShardError type instead.
  • Add custom msgpackv5 decoder for 'vshard.storage.bucket_stat' response (partially #100).
  • Add custom msgpackv5 decoder for 'BucketStatInfo', since msgpackv5 library has an issue (see commit content).
  • Add custom msgpackv5 decoder for 'RouterMapCallRW'.
  • New backward-compatible signature for StorageResultTypedFunc to fix interface for RouterCallImpl.

TESTS:

  • Rename bootstrap_test.go -> tarantool_test.go and new test in this file.
  • Test for new 'RouterMapCallRW[T]'.