Releases: scylladb/gocql
v1.14.5
Changelog v1.14.5
New Features
- Replace Snappy compressor with Snappy compatible version of S2 algorithm by @sylwiaszunejko in #276
- Debouncing for pool.fill() by @sylwiaszunejko in #292
- Let retry policy to decide on non-idempotent queries by @sylwiaszunejko in #376
- Non-blocking NewSession by @sylwiaszunejko in #381
"Zero Token" Nodes Support
- Do not throw a warning for zero token nodes by @sylwiaszunejko in #324
- Wait for zero-token nodes in schema agreement by @sylwiaszunejko in #348
- Ring describer refactor by @sylwiaszunejko in #368 and #373
Tablets Invalidation
- Invalidate tablets data by @sylwiaszunejko in #351
- Make schemaDescriber solely owner of tablets metadata by @sylwiaszunejko in #356
- Invalidate tablets for dropped keyspace/table on control connection reconnect by @sylwiaszunejko in #363
- Invalidate tablets of updated keyspace/table on control connection reconnect by @sylwiaszunejko in #364
Better Error Handling
- Don't panic on unknown error by @dkropachev in #377
- Make driver print warnings returned by server by @dkropachev in #383
Marshalling and Unmarshalling Refactor
- add marshal test suite by @illia-li in #270
- make MarshalError and UnmarshalError support errors.Unwrap by @illia-li in #281
- add marshal serialization tests for float, double, decimal by @illia-li in #279
- add marshal serialization tests for boolean, tinyint, int, bigint, counter, varint by @illia-li in #277
- add marshal corrupt test suite by @illia-li in #278
- Fix marshal tinyint by @illia-li in #265
- Fix marshal smallint by @illia-li in #284
- Add marshal tests for inet by @illia-li in #288
- Add marshal tests for varchar, text, blob, ascii, uuid, timeuuid cql types by @illia-li in #285
- Fix int marshal, unmarshall by @illia-li in #290
- Fix bigint marshal, unmarshall by @illia-li in #291
- Add bigint test cases by @illia-li in #299
- Fix counter marshal, unmarshall by @illia-li in #293
- Fix marshal tinyint - optimization by @illia-li in #294
- Add smallint, int, bigint, counter, varint test cases by @illia-li in #300
- Add benchmark test suite for gocql.Marshal/Unmarshal by @sylwiaszunejko in #302
- Rename marshal folder by @dkropachev in #304
- Fix unmarshall errors, add condition for nil reference by @illia-li in #301
- Make data in serialization benchmark static by @sylwiaszunejko in #305
- Fix wrong encoding on the marshal duration from custom int64 by @illia-li in #312
- Fix float marshal, unmarshall functions by @illia-li in #313
- Add time, timestamp, date, duration tests by @illia-li in #311
- Add list, set marshal tests by @illia-li in #316
- Add map marshal tests by @illia-li in #317
- Fix double marshal, unmarshall functions by @illia-li in #314
- Fix marshal smallint - optimization by @illia-li in #315
- Fix marshal cqlint - optimization by @illia-li in #320
- Fix varchar, text, blob marshal, unmarshall by @illia-li in #321
- Fix uuid, timeuuid marshal, unmarshall by @illia-li in #334
- Fix gocql.Marshal add the unsetColumn processing by @illia-li in #343
- Fix ascii marshal, unmarshall by @illia-li in #322
- Fix marshal ascii, add unsetColumn processing by @illia-li in #355
- Fix debounce fails by @illia-li in #344
- Fix varint marshal, unmarshall by @illia-li in #309
- Fix inet marshal, unmarshall functions by @illia-li in #362
- Fix varint, makes encInt64 function exportable by @illia-li in #369
- Fix decimal marshal, unmarshall functions by @illia-li in #367
- Fix time marshal, unmarshall functions by @illia-li in #370
- Fix timestamp marshal, unmarshall by @illia-li in #371
- Add ParseUUIDMust for tests by @sylwiaszunejko in #372
- Fix date marshal, unmarshall functions by @illia-li in #374
- Fix timestamp serialization into time.Time, makes zero data <-> zeroTimestamp by @illia-li in #375
- Fix boolean, marshal, unmarshall functions by @illia-li in #379
- Fix duration marshal, unmarshall functions by @illia-li in #378
- Fix unmarshall, make const for negative ints by @illia-li in #382
- Add scylla serialization tests by @illia-li in #384
Bug Fixes
- Change default behavior with skipping metadata by @sylwiaszunejko in #283
Documentation
- docs(readme): add pkg-docs link feat markdown enhancement by @danielhe4rt in #310
- docs: add data types and quick start by @danielhe4rt in #323
Tests
- Bump scylladb version to 6.1.1 by @sylwiaszunejko in #272
- Switch tests from SimpleStrategy to NetworkTopologyStrategy by @sylwiaszunejko in #271
- tests: add compressor tests by @dkropachev in #289
- tests: relocate serialization tests by @dkropachev in #303
- fix(simple_debouncer_test): make sure first call is picked up before making more calls by @dkropachev in #329
- Fix debounce add skipping the TestSimpleDebouncer test by @illia-li in #345
- Implement single connection benchmark by @sylwiaszunejko in #308
- Add github workflow running jenkins job by @sylwiaszunejko in #255
- Check if localHost is not zero token node by @sylwiaszunejko in #333
- Add tags to all test files by @sylwiaszunejko in #342
- Update github action versions by @dkropachev in #357
- Use commit SHA instead of branch name in extended-ci by @sylwiaszunejko in #359
- Move refreshDebouncer to debounce package by @sylwiaszunejko in #380
New Contributors
- @illia-li made their first contribution in #270
- @danielhe4rt made their first contribution in #310
Full Changelog: v1.14.4...v1.14.5
v1.14.4
What's Changed
This release adds new API for tracing, introduces initial reconnection policy and adds workflow to delete old docker images for the purpose of future advanced CI. Additionally some refactoring was done and couple of bugs fixed.
- Expose driver name/version configuration on cluster config level and change default driver name by @dkropachev in #228
- Simplify IDGenerator and reduce collission rate by @dkropachev in #223
- Bug fix: Add matching case for unmarshalling nil uuid column by @izenhaim in #235
- Introduce initial reconnection policy by @dkropachev in #231
- Expand cluster validation and move SSL initialization to the validation step by @dkropachev in #245
- Add new API for tracing by @sylwiaszunejko in #247
- Refactor awaitSchemaAgreement logic by @sylwiaszunejko in #256
- Fix ErrNoConnections from defaultConnectionPicker.Remove code by @glutamatt in #257
- Add workflow to delete old docker images by @sylwiaszunejko in #269
New Contributors
- @izenhaim made their first contribution in #235
- @mrsinham made their first contribution in #239
- @glutamatt made their first contribution in #257
Full Changelog: v1.14.3...v1.14.4
v1.14.3
What's Changed
This release add a way to set up configurable server-side timeouts in schema queries and switches to use server side schema description for KeyspaceMetadata.ToCQL. Additionally few refactoring issues and bugs were fixed.
- Have a test to make sure paging feature works properly with allow filtering queries by @dkropachev in #212
- Update l4z libraries by @dkropachev in #220
- Switch to use server side schema description for KeyspaceMetadata.ToCQL by @dkropachev in #210
- Schema queries with configurable server-side timeouts by @sylwiaszunejko in #222
- Add iterator docs by @dkropachev in #225
Full Changelog: v1.14.2...v1.14.3
v1.14.2
What's Changed
This release fixes up a few issues regarding handling load balancing of LWT queries. Additionally few refactoring issues and bugs were fixed e.g. reducing unnecessary locking.
- Simplify tokenAwareHostPolicy.Pick by @dkropachev in #197
- HostSelectionPolicy: add Reset method, Session.Close: call HostSelect… by @moguchev in #166
- Add option to control if remote replicas should be used by @sylwiaszunejko in #202
- Add the datacenter name validation if provided by @sylwiaszunejko in #206
- Do not choose less busy connection if query is LWT by @sylwiaszunejko in #208
- Add LWTRetryPolicy interface by @Lorak-mmk in #213
New Contributors
Full Changelog: v1.14.1...v1.14.2
v1.14.1
What's Changed
This release fixes setting up connection to non-IP sockets, which is necessary for unix socket support. Additionally couple of bug fixes were added and Scylla version used in CI was bumped to 6.0.0.
- fix(dealer): make net.Dialer not to bind to reuse ephimeral ports by @dkropachev in #181
- Print out logs of failed container by @dkropachev in #188
- Make public interfaces implementable by @dkropachev in #184
- Fix cowHostList can't have hosts with same
ConnectAddress
by @dkropachev in #185 - Fix setting up connection to non-IP sockets by @sylwiaszunejko in #178
Full Changelog: v1.14.0...v1.14.1
v1.14.0
What's Changed
This release adds LOAD_BALANCING_POLICY_SLOW_AVOIDANCE
functionality, which makes the driver avoid the slowest node improving the latency. It is based on functionality already present in java-driver. Additionally couple of bug fixes were added.
- Do not try to query
peers_v2
table upon connection against a ScyllaDB cluster by @mykaul in #171 - Send heartbeat OPTIONS message less frequent and enable keep alive by @sylwiaszunejko in #169
- Use
newFramerWithExts
instead ofnewFramer
to utilize protocol extensions by @sylwiaszunejko in #173 - Add
LOAD_BALANCING_POLICY_SLOW_AVOIDANCE
funtionality by @sylwiaszunejko in #168
New Contributors
Full Changelog: v1.13.0...v1.14.0
v1.13.0
What's Changed
This release brings support for tablets to ScyllaDB's fork of gocql driver. Tablet support is an upcoming feature in ScyllaDB that changes the replication algorithm used in ScyllaDB. Drivers without support for tablets (for example old gocql versions) will continue to work, but the token awareness will not work properly in them, negatively affecting performance. gocql v1.13.0 is tablet-aware, meaning the driver will correctly route requests in tablet-enabled keyspaces.
- Introduce support for tablets by @sylwiaszunejko in #137
- Update CI to use new way of initializing keyspace with tablets by @sylwiaszunejko in #156
- Fix checking if tablets should be used in scyllaConnPicker Pick by @sylwiaszunejko in #158
Full Changelog: v1.12.0...v1.13.0
v1.12.0
What's Changed
- Merge upstream changes (gocql v1.6.0) by @sylwiaszunejko in #148
- Mark node as down if unable to dial control conn by @sylwiaszunejko in #150
- Fix aggregate bug by @sylwiaszunejko in #152
Full Changelog: v1.11.1...v1.12.0
v1.11.1
What's Changed
This release contains a number of changes merged from the upstream gocql repository:
- Re-resolve DNS hostnames as a fallback when all hosts are unreachable by @wprzytula in apache#1708
This change should make the driver more resiliant to a situation when some nodes are replaced and their DNS names change. - Add shard information to tracing by @sylwiaszunejko in apache#1716
- Use keyspace/table information from
PREPARED
response by @sylwiaszunejko in apache#1714
An example where this helps: previously the token awareness feature would work properly only if the user set a correct keyspace name on a session. Now, the metadata received from Scylla is used instead. Also see: apache#1621
Full Changelog: v1.11.0...v1.11.1
v1.11.0
What's Changed
This release is a essentially a rerelease of v1.8.0
. This is due to the fact that this repository incorrectly had v1.8.0
, v1.8.1
, v1.9.0
, v1.10.0
tags fetched from an upstream repository (see #139 and #110 for more context). Those versions have been retracted. v1.11.0
should be higher than any tag ever present in this repository.
Small changes for better CI stability:
- fix(docker-compose.yaml): increase memory limit to avoid hitting #126 by @dkropachev in #128
- Add healthchecks, switch from Docker Compose V1 to V2 by @sylwiaszunejko in #133
New Contributors
- @dkropachev made their first contribution in #128
- @sylwiaszunejko made their first contribution in #133
Full Changelog: v1.8.0...v1.11.0