Skip to content

Releases: tarantool/queue

1.2.0

06 Jun 17:36
Compare
Choose a tag to compare

Overview

This release introduce:

  • Master-replica switching support.
  • Additional grants for queue/tube functions.

New features

Bugfixes

  • Fix work with "ttl" of buried task.
    Previously, if a task was "buried" after it was "taken" (and the task has a
    "ttr"), then the time when the "release" should occur (the "ttr" timer) will
    be interpreted as the end of the "ttl" timer and the task will be deleted.

1.1.0

25 Dec 11:59
Compare
Choose a tag to compare

Overview

This release introduce:

  • "Shared session" machinery. Previously, a connection to a server
    was synonym of the queue session. But now multiple connections can work with
    tasks in one logical session.
  • Possibility to work with tasks after reconnect. The queue module now provides
    the ability to set the ttr setting for sessions by using
    queue.cfg({ ttr = ttr_in_sec}), which characterizes how long the logical
    session will exist after all active connections are closed. So, it is possible
    to take() a task, reconnect to the server, identify to the previous session
    (using queue.identify()) and after to ack() the task.
  • Fix custom driver registration after reboot.

New features

  • "Shared sessions" was added to the queue. Previously, a connection to server
    was synonym of the queue session. Now the session has a unique UUID (returned
    by the "queue.identify()" method), and one session can have many connections.
    To connect to an existing session, call "queue.identify(uuid)" with the
    previously obtained UUID.
  • Possibility to work with tasks after reconnect. The queue module now provides
    the ability to set the ttr setting for sessions by
    queue.cfg({ ttr = ttr_in_sec}), which characterizes how long the logical
    session will exist after all active connections are closed.

Bugfixes

  • Fix custom driver registration after reboot. Previously, if a custom driver is
    registered after calling box.cfg() it causes a problem when the instance will
    be restarted.

1.0.8

17 Oct 13:34
Compare
Choose a tag to compare

Overview

This release add the ability to start an instance with a loaded queue module in
read-only mode.

New features

  • Add the ability to start an instance with a loaded queue module in read-only
    mode. In this case, a start of the module will be delayed until the instance
    will be configured with read_only = false. Previously, when trying to
    initialize the queue module on an instance configured in ro mode, an error
    occurred: "ER_READONLY: Can't modify data because this instance is in
    read-only mode." See https://github.com/tarantool/queue#initialization for
    more details.

Bugfixes

No.

1.0.7

03 Sep 08:21
Compare
Choose a tag to compare

Overview

This release fixes critical problem in queue that may cause an error for some
drivers (*ttl core drivers) while tasks releases on start of the queue:
"attempt to index local 'opts' (a nil value)"

In addition, the release adds a check for missing methods in the driver
implementation. It's important when using external drivers.

We highly recommend to update to this version if you use *ttl core drivers or
external ones.

Breaking changes

A check for a driver API implementation was added. Now, the consumer will be
informed about the missing methods in the driver implementation (an error will
be thrown).

New features

No.

Bugfixes

  • Fix the tasks releases on start for some drivers (utubettl, fifottl,
    limfifottl). Before, an attempt to release "taken" tasks on start lead to an
    error: "attempt to index local 'opts' (a nil value)" (#121).

Other

  • Updated the requirements for the "delete" driver method. Now, the method
    should change the state of a task to "done". Before, it was duplicated by
    external code.
  • Added notification about missing methods in the driver implementation (#126).

1.0.6

29 Feb 00:49
Compare
Choose a tag to compare

Overview

This release fixes several critical problems in queue, which can cause task
being stuck in 'taken' state or even lead to the inconsistent state of runtime
queue data.

We highly recommend to update to this version.

Breaking changes

External drivers should be updated with the new tasks_by_state() method.
Consider the example from the fifo driver:

-- get iterator to tasks in a certain state
function method.tasks_by_state(self, task_state)
    return self.space.index.status:pairs(task_state)
end

The example uses 'status' secondary index, which is built on top of 'status'
and 'task_id' fields.

This new method is necessary to correctly manage state of tasks: when tarantool
instance is restarted we should release all taken tasks (otherwise they would
stuck in the taken state forever). See #66 and #126 for more information.

New features

No.

Bugfixes

  • Fix releasing tasks at a client disconnection (#103).
  • Optimize statistics build (-15% in some cases) (#92).
  • Release all taken tasks at start (#66).
  • Don't take tasks during a client disconnection (#104).

1.0.2

22 Jan 11:39
Compare
Choose a tag to compare

First release with rockspecs