Releases: tarantool/queue
1.4.2
1.4.1
1.4.0
The release introduces an experimental storage_mode
option for the utube
and utubettl
drivers with the memtx
engine. It could be used to create a utube
or utubettl
queue with an additional buffer space that stores only ready to take tasks.
local tube = queue.create_tube('utube_with_ready_buffer', 'utube',
{storage_mode = queue.driver.utube.STORAGE_MODE_READY_BUFFER})
local tube = queue.create_tube('utubettl_with_ready_buffer', 'utubettl',
{storage_mode = queue.driver.utubettl.STORAGE_MODE_READY_BUFFER})
The storage mode slower in general cases, but a much faster in cases when you have utubes with many tasks (see README.md for the performance comparison). So you should make your choice carefully.
Added
- Experimental
storage_mode
option for creating autube
andutubettl
tube (#228). It enables the workaround for slow takes while working with busy tubes.
Fixed
1.3.3
Overview
This release updates the behavior of public queue methods on replicas in INIT state.
Fixed
-
In replicaset mode, the behavior of the public API is reduced to the same behavior
in all queue states, including INIT. Previously, in the INIT state, an ambiguous
error was thrown when trying to access a public method on a replica and the script
was interrupted by an error.Old behavior (call
create_tube
on replica, queue is in INIT state):2023-09-04 14:01:11.000 [5990] main/103/replica.lua/box.load_cfg I> set 'read_only' configuration option to true stack traceback: /home/void/tmp/cluster/repl/queue/init.lua:44: in function '__index' replica.lua:13: in main chunk 2023-09-04 14:01:11.004 [5990] main/105/checkpoint_daemon I> scheduled next checkpoint for Mon Sep 4 15:11:32 2023 2023-09-04 14:01:11.004 [5990] main utils.c:610 E> LuajitError: /home/void/tmp/cluster/repl/queue/init.lua:45: Please configure box.cfg{} in read/write mode first
After this fix:
2023-09-11 10:24:31.463 [19773] main/103/replica.lua abstract.lua:93 E> create_tube: queue is in INIT state
1.3.2
Overview
This release fixes a problem with duplicate id error with mvvc on put and take.
Bugfixes
- Duplicate id error with mvvc on put and take (#207).
Let's consider the problem on the example of executing twoput
commands one by one.
MVCC uses so-called best-effort visibility to minimize the probability of conflicts: read-committed is selected for write transactions and read-confirmed for read transactions. Which leads to a situation where a task gets a new id and yields while waiting to write to WAL and at the same time the second task gets the same id (because the record with the new id has not yet received confirmed status) and fails when trying to write.
1.3.1
1.3.0
1.2.5
Overview
This is a technical release that should fix several problems in the
repositories with packages that were caused by the mistaken creation
of several tags (for this reason there are no 1.2.3 and 1.2.4 tags
and corresponding packages in the repositories).