Skip to content

Releases: tarantool/vshard

0.1.20

23 May 22:10
Compare
Choose a tag to compare

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 option return_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 and netbox.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 when master='auto' feature was used.

  • Fixed a bug when usage of memtx_use_mvcc_engine option in box.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

27 Dec 10:42
Compare
Choose a tag to compare

Compatibility

Fully compatible with 0.1.18.

Bugs fixed

  • is_async in vshard.router.call() and other vshard.router.call* functions such as callbro/callbre/etc didn't work on Tarantool >= 2.8.2 (gh-294).

Functionality added or changed

  • Until vshard.storage.cfg() is finished and box.info.status is 'loading' or 'orhpan', most of vshard.storage.* functions will throw a special error (gh-123).
  • New functions vshard.storage.enable() and vshard.storage.disable() to control when the storage can accept requests (gh-298).

0.1.18

06 Aug 10:18
Compare
Choose a tag to compare

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 all master = ... from their replica configs (gh-75).

0.1.17

14 Apr 21:50
Compare
Choose a tag to compare

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 if vshard.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 other call* 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

19 Aug 20:10
Compare
Choose a tag to compare

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() and vshard.router.bucket_id_mpcrc32(). The old function vshard.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(), and discovery_mode in the configuration (gh-210).

0.1.6

22 Aug 15:27
Compare
Choose a tag to compare

Now vshard uses fullmesh master-slave topology instead of star.

0.1.5

15 Aug 15:13
Compare
Choose a tag to compare

Vinyl spaces now are supported for sharding.