Releases: tarantool/vshard
0.1.20
Compatibility
VShard 0.1.20 is fully compatible with the previous VShard versions. But since
this release VShard supports only Tarantool >= 1.10.1.
Functionality added or changed
-
The configuration option
collect_lua_garbage
is deprecated. Now it doesn't
do anything except printing a warning in the logs that it should not be used. -
The router now supports
msgpack.object
feature. It can be passed to all
vshard.router.call...()
and.map_call...()
functions. They can also accept
the netbox optionreturn_raw
to get an msgpack object in return (gh-312). -
The URIs in the config now support everything what can be passed to
box.cfg.listen
andnetbox.connect()
: number, string, table. There is also
a new config option -<replica_object>.listen
. It can be used to setup
listen on multiple ports on storages and for SSL in Tarantool Enterprise
(gh-325).
Bugs fixed
-
Fixed a bug when router could raise a Lua exception about
vshard.error
being
not defined if a storage was disabled (implicitly or via
vshard.storage.disable()
). -
Fixed a bug when router could raise a Lua exception about
master_uuid
variable being not defined whenmaster='auto'
feature was used. -
Fixed a bug when usage of
memtx_use_mvcc_engine
option inbox.cfg
could
make bucket garbage collector not work. As a result, rebalancing also could
stop working and there could be'garbage'
and'sent'
buckets visible in
the monitoring (gh-314).
0.1.19
Compatibility
Fully compatible with 0.1.18.
Bugs fixed
is_async
invshard.router.call()
and othervshard.router.call*
functions such ascallbro
/callbre
/etc didn't work on Tarantool >= 2.8.2 (gh-294).
Functionality added or changed
0.1.18
Compatibility
Fully compatible with 0.1.17.
Bugs fixed
- During rebalancing, even if all went fine, there were messages on the storages like "Starting ... buckets recovery step". They are not printed anymore unless there are really bucket transfers which somewhy need a recovery (gh-274).
vshard.storage.buckets_count()
on replicas could return an outdated value (gh-276).
Functionality added or changed
vshard.storage.bucket_recv()
now returns a very detailed error when a tuple couldn't be inserted into a space due to any reason. It also works for the built-in rebalancer - these errors are logged so it becomes easy to locate the spaces and tuples incompatible between replicasets during rebalancing (gh-275).- The router supports automatic master discovery. For that in the config for the needed replicasets need to specify
master = 'auto'
in their root and drop allmaster = ...
from their replica configs (gh-75).
0.1.17
Overview
The version contains a not critical bugfix, and a big new feature - consistent map-reduce.
Compatibility
Fully compatible with 0.1.16.
Bugs fixed
- A locked replicaset (locked via the configuration option
lock
) still could receive new buckets ifvshard.storage.bucket_send()
was called manually.
Functionality added or changed
- Storage option
collect_bucket_garbage_interval
is deprecated. It does not make any effect now, and its usage prints a warning. Bucket-garbage collector now works reactively, i.e. it finds and deletes the garbage immediately as it appears, no delays. - Router has a new function
vshard.router.map_callrw()
. It works like the othercall*
functions, but it does not take a bucket ID. Instead, it performs a consistent map-reduce operation. The specified function is broadcast over all the master nodes where it can work with all the data available on the node regardless of bucket IDs. "Consistency" means that the call guarantees that if it succeeded, then the function has "seen" all the buckets in the cluster (gh-147).
0.1.16
Overview
The version contains a few not critical bugfixes, and a few new features for the router.
Compatibility
Fully compatible with 0.1.15.
Bugs fixed
- Storage function
vshard.storage.bucket_send()
could use a not declared variable when created an error message about sending a bucket to self (gh-217). - Improved compatibility with 1.9. VShard on 1.9 could use a few functions and constant appeared since 1.10 (gh-225).
- Replica could throw an exception from
vshard.storage.cfg()
, if configured before master (gh-237). - Router couldn't connect to a not bootstrapped cartridge instance, or connected but ignored it until restart (gh-241).
- Router could ignore URI update in the configuration for an existing replica (gh-245).
- Fixed broken discovery in Tarantool 1.9 (gh-250).
- Router could show bad statistics when replicaset with non-zero bucket count is removed from the config (N/A 57492fa).
Functionality added or changed
- Router has new built-in functions for bucket_id calculation:
vshard.router.bucket_id_strcrc32()
andvshard.router.bucket_id_mpcrc32()
. The old functionvshard.router.bucket_id()
, because it is not stable - may return different results for the same values of different Lua types (gh-207). - Router's discovery is configurable - can work always, once, and can be turned off. See
vshard.router.discovery_set()
, anddiscovery_mode
in the configuration (gh-210).