Releases: KaymeKaydex/go-vshard-router
Releases · KaymeKaydex/go-vshard-router
v1.2.0
CHANGES:
- We don't support LogProvider interface anymore, only LogfProvider should be used.
BUG FIXES:
- RouterCallImpl: retry on BucketResolve error.
- RouterCallImpl: do not retry on vshard error "TRANSFER_IS_IN_PROGRESS".
- RouterCallImpl: remove misleading RetryOnCall.
- AddInstance bugfix: pass r.cfg.PoolOpts to new instance.
FEATURES:
- Support StdoutLoggerf that allows control log level (resolve issue #84).
- Support new BucketsSearchMode config to set policy for BucketDiscovery (resolve #71).
- Implemented CalculateEtalonBalance based on lua router (part of #32).
- Implement go-tarantool Logger interface to use the same logger as router uses (resolve issue #79).
- Implemented ClusterBootstrap function based on lua router (#32).
REFACTOR:
- Func bucketSearchLegacy: log error from bucketStatWait (except bucketStatError).
- New bucketsDiscoveryAsync, bucketsDiscoveryWait, bucketsDiscovery methods for buckets discovery pagination.
- Support bucketSearchBatched method for batched buckets discovery (resolve #71).
TESTS:
- Tests for BucketsSearchMode (tnt/discovery_test.go).
- The tests have been rewritten in such a way that now you can configure the cluster to suit any needs, the configuration of the clusters may differ and the launch is controlled from go.
- Legacy integration tests removed (tests/integration).
v1.1.0
CHANGES:
- now if there is no etcd connection - etcd provider returns you error instead panic.
- etcd provider also accepts context as input for working with the logger.
BUG FIXES:
- fixed the problem of re-creating a new context when starting discovery, which led to a lack of discovery logging.
TESTS:
- Simplify test/tnt/{Makefile,router.lua).
- Indent fix for test/tnt/storage.lua.
FEATURES:
- now we write topology changes to debug logs.
- now we write info logs about new replicaset adding and nodes state.
- added pull request template to repository.
v1.0.1
BUG FIXES:
- fix invalid go-tarantool backward compatibility: NewCallRequest not method of router.
v1.0.0
This is the first version with which releases are recorded in the changelog and the version is production ready
Changelog
BUG FIXES:
- RouterCallImpl: fix decoding response from storage_ref (partially #42)
- RouterCallImpl: fix decoding response from storage_map (partially #42)
- BucketDiscovery: check res for nil
- BucketStat: decode bsInfo by ptr
- ReplicaCall: fix decoding response (#42)
- ReplicaCall: fix ignoring timeout while waiting for future.Get()
- Fix retry on Client or LuaJit error
FEATURES:
- Support new Sprintf-like logging interface (#48)
- DiscoveryTimeout by default is 1 minute (zero DiscoveryTimeout is not allowed #60)
- All discovering logs has new prefix [DISCOVERY]
- Introduce Replicaset.CallAsync, it is usefull to send concurrent requests to replicasets;
additionally, CallAsync provides new interface to interact with replicaset without cons of interface of ReplicaCall - Retry tarantool request only on some vshard errors (#66).
- Added call interfaces backwards compatible with go-tarantool (#31).
REFACTOR:
- resolve issue #38: simplify DiscoveryAllBuckets and remove suspicious if
- resolve issue #46: drastically simplify RouterMapCallRWImpl and added tests with real tnt
- Use typed nil pointers instead of memory allocation for EmptyMetrics and emptyLogger structs
- resolve issue #44: remove bucketCount field from struct Replicaset
- rename startCronDiscovery to cronDiscovery and make it panic-tolerant
- BucketStat: split into bucketStatAsync and bucketStatWait parts
- BucketDiscovery: do not spawn goroutines, just use futures in the single goroutine
- BucketResolve: make it alias for BucketDiscovery
- do not export anymore storageCallAssertError, bucketStatError
TESTS:
- New test for RouterCallImpl (and fix the old one)
- New tnt tests for discovery logic
- New tnt tests for RouterMapCallRWImpl
- New tnt tests for topology logic
- Big CI update
- 2 sections for CI: static checks and tests
- integration tests run on ci with Tarantool cluster on vshard
- implemented luacheck for static checks
- New tnt tests for ReplicaCall
- New tnt tests for CallAsync
- Init Go benches for tests/tnt
EXAMPLES:
- customer go mod fixed
- add customer example listen addr log