Tarantool 1.10 | Tarantool
Документация на русском языке
поддерживается сообществом

Tarantool 1.10

Release: v. 1.10.0

Версия 1.10.4

Тип версии: стабильная (lts). Дата выхода: 2019-09-26. Тег: 1-10-4.

Release: v. 1.10.4.

Общие сведения

1.10.4 представляет собой очередную стабильную (lts) версию в серии 1.10. Пометка «стабильная» означает, что некоторые системы в течение определенного времени успешно отработали в производственной среде без известных сбоев, ненадежных результатов и прочих неисправностей.

Данная версия содержит около 50 исправлений по сравнению с версией 1.10.3.

Совместимость

Tarantool 1.10.x обратно совместим с Tarantool 1.9.x в том, что касается структуры бинарных данных, клиент-серверного протокола и протокола репликации. Чтобы воспользоваться новыми функциями серии 1.10.x, обновите версию 1.9 с помощью процедуры box.schema.upgrade().

Изменения или добавления функциональности

  • (Engines) Improve dump start/stop logging. When initiating memory dump, print

    how much memory is going to be dumped, expected dump rate, ETA, and the recent write rate. Upon dump completion, print observed dump rate in addition to dump size and duration.

  • (Engines) Look up key in reader thread. If a key isn’t found in the tuple cache,

    we fetch it from a run file. In this case disk read and page decompression is done by a reader thread, however key lookup in the fetched page is still performed by the TX thread. Since pages are immutable, this could as well be done by the reader thread, which would allow us to save some precious CPU cycles for TX (gh-4257).

  • (Core) Improve box.stat.net

    (gh-4150).

  • (Core) Add idle to downstream status in box.info.

    When a relay sends a row it updates last_row_time value with the current time. When box.info() is called, idle is set to current_time - last_row_time.

  • (Replication) Print corrupted rows on decoding error.

    Improve row printing to log. Print the header row by row, 16 bytes in a row, and format output to match xxd output:

    [001] 2019-04-05 18:22:46.679 [11859] iproto V> Got a corrupted row:
    [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000000: A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53 60 5F 20 3F
    [001] 2019-04-05 18:22:46.679 [11859] iproto V> 00000010: D8 E2 D6 E2 A3 02 D6 5A E4 D9 E7 68 A1 53 8D 53
    
  • (Lua) Add type of operation to space trigger parameters.

    For example, a trigger function may now look like this:

    function before_replace_trig(old, new, space_name, op_type)
        if op_type == 'INSERT' then
            return old
        else
            return new
        end
    end
    

    (gh-4099).

  • (Lua) Add debug.sourcefile() and debug.sourcedir() helpers

    (and debug.__file__ and debug.__dir__ shortcuts) to determine the location of a current Lua source file. Part of (gh-4193).

  • (HTTP client) Add max_total_connections option in addition to

    max_connections to allow more fine-grained tuning of libcurl connection cache. Don’t restrict the total connections` with a constant value by default, but use libcurl’s default, which scales the threshold according to easy handles count (gh-3945).

Исправленные ошибки

  • (Vinyl) Fix assertion failure in vy_tx_handle_deferred_delete
    (gh-4294).
  • (Vinyl) Don’t purge deleted runs from vylog on compaction. Cherry-picked from (gh-4218).
  • (Vinyl) Don’t throttle DDL
    (gh-4238).
  • (Vinyl) Fix deferred DELETE statement lost on commit
    (gh-4248).
  • (Vinyl) Fix assertion while recovering dumped statement
    (gh-4222).
  • (Vinyl) Reset dump watermark after updating memory limit
    (gh-3864).
  • (Vinyl) Be pessimistic about write rate when setting dump watermark
    (gh-4166).
  • (Vinyl) Fix crash if space is dropped while space.get is reading from it
    (gh-4109).
  • (Vinyl) Fix crash during index build
    (gh-4152).
  • (Vinyl) Don’t compress L1 runs
    (gh-2389).
  • (Vinyl) Считать операторы, пропущенные при чтении.
  • (Vinyl) Принять во внимание поиск первичного ключа при учете задержек.
  • (Vinyl) Исправить зависание vy_range_update_compaction_priority.
  • (Vinyl) Освобождать область при фиксации vylog вместо сброса и очищать после выделения заместителя оператора.
  • (Vinyl) Еще увеличить ограничение на количество открытых файлов в файле systemd.
  • (Vinyl) Увеличить минимальный размер диапазона до 128 Мбайт
  • (Memtx) Cancel checkpoint thread at exit
    (gh-4170).
  • (Core) Fix crash for update with empty tuple
    (gh-4041).
  • (Core) Fix use-after-free in space_truncate
    (gh-4093).
  • (Core) Fix error while altering index with sequence
    (gh-4214).
  • (Core) Detect a new invalid json path case
    (gh-4419).
  • (Core) Fix empty password authentication
    (gh-4327).
  • (Ядро) Исправить размер массива txn::sub_stmt_begin.
  • (Ядро) Учитывать index.pairs в box.stat.SELECT().
  • (Replication) Disallow bootstrap of read-only masters
    (gh-4321).
  • (Replication) Enter orphan mode on manual replication configuration change
    (gh-4424).
  • (Репликация) Задать значение now для last_row_time в relay_new и relay_start. Проблема 4431.
  • (Replication) Stop relay on subscribe error
    (gh-4399).
  • (Replication) Init coio watcher before join/subscribe
    (gh-4110).
  • (Replication) Allow to change instance id during join
    (gh-4107).
  • (Репликация) Исправить логику сборки мусора.
  • (Репликация) Вернуть проверку границ пакета для iproto.
  • (Репликация) Не прерывать репликацию при ER_UNKNOWN_REPLICA.
  • (Репликация) Уменьшить воздействие фрагментации буфера ввода при большом cfg.readahead.
  • (Репликация) Исправить обновление с 1.7 (не распознает тип запроса IPROTO_VOTE).
  • (Replication) Fix memory leak in call / eval in the case when a transaction
    is not committed (gh-4388).
  • (Lua) Fix fio.mktree() error reporting
    (gh-4044).
  • (Lua) Fix segfault on ffi.C_say() without filename
    (gh-4336).
  • (Lua) Fix segfault on json.encode() on a recursive table
    (gh-4366).
  • (Lua) Fix pwd.getpwall() and pwd.getgrall() hang on CentOS 6
    and FreeBSD 12 (gh-4447, gh-4428).
  • (Lua) Fix a segfault during initialization of a cipher from crypto module
    (gh-4223).
  • (HTTP client) Reduce stack consumption during waiting for a DNS resolving result
    (gh-4179).
  • (HTTP client) Increase max outgoing header size to 8 KiB
    (gh-3959).
  • (HTTP client) Verify «headers» option stronger
    (gh-4281, gh-3679).
  • (HTTP client) Use bundled libcurl rather than system-wide by default
    (gh-4318, gh-4180, gh-4288, gh-4389, gh-4397).
  • (HTTP client) This closes several known problems that were fixed in recent
    libcurl versions, including segfaults, hangs, memory leaks and performance problems.
  • (LuaJIT) Fix overflow of snapshot map offset
    Part of (gh-4171).
  • (LuaJIT) Fix rechaining of pseudo-resurrected string keys
    Part of (gh-4171).
  • (LuaJIT) Fix fold machinery misbehaves
    (gh-4376).
  • (LuaJIT) Fix for debug.getinfo(1,'>S')
    (gh-3833).
  • (LuaJIT) Fix string.find recording
    (gh-4476).
  • (LuaJIT) Исправлена ошибка нетонущих 64-битных указателей.
  • (Разное) Еще увеличить предел количества открытых файлов в файле systemd.
  • (Misc) Raise error in tarantoolctl when box.cfg() isn’t called
    (gh-3953).
  • (Misc) Support systemd’s NOTIFY_SOCKET on OS X
    (gh-4436).
  • (Misc) Fix coio_getaddrinfo() when 0 timeout is passed
    (affects netbox’s connect_timeout) (gh-4209).
  • (Misc) Fix coio_do_copyfile() to perform truncate of destination
    (affects fio.copyfile()) (gh-4181).
  • (Разное) Сделать подсказки в coio_getaddrinfo() необязательными.
  • (Misc) Validate msgpack.decode() cdata size argument
    (gh-4224).
  • (Misc) Fix linking with static openssl library
    (gh-4437).

Устаревшие функции

  • (Core) Deprecate rows_per_wal in favor of wal_max_size.
    Part of (gh-3762).

Версия 1.10.3

Тип версии: стабильная (lts). Дата выхода: 2019-04-01. Тег: 1-10-3.

Release: v. 1.10.3.

Общие сведения

1.10.3 представляет собой очередную стабильную (lts) версию в серии 1.10. Пометка «стабильная» означает, что некоторые системы в течение определенного времени успешно отработали в производственной среде без известных сбоев, ненадежных результатов и прочих неисправностей.

Данная версия содержит 69 исправлений по сравнению с версией 1.10.2.

Совместимость

Tarantool 1.10.x обратно совместим с Tarantool 1.9.x в том, что касается структуры бинарных данных, клиент-серверного протокола и протокола репликации. Чтобы воспользоваться новыми функциями серии 1.10.x, обновите версию 1.9 с помощью процедуры box.schema.upgrade().

Изменения или добавления функциональности

  • (Engines) Randomize vinyl index compaction
    (gh-3944).
  • (Engines) Throttle tx thread if compaction doesn’t keep up with dumps
    (gh-3721).
  • (Engines) Do not apply run_count_per_level to the last level
    (gh-3657).
  • (Server) Report the number of active iproto connections
    (gh-3905).
  • (Replication) Never keep a dead replica around if running out of disk space
    (gh-3397).
  • (Replication) Report join progress to the replica log
    (gh-3165).
  • (Lua) Expose snapshot status in box.info.gc()
    (gh-3935).
  • (Lua) Show names of Lua functions in backtraces in fiber.info()
    (gh-3538).
  • (Lua) Check if transaction opened
    (gh-3518).

Исправленные ошибки

  • (Engines) Tarantool crashes if DML races with DDL
    (gh-3420).
  • (Engines) Recovery error if DDL is aborted
    (gh-4066).
  • (Engines) Tarantool could commit in the read-only mode
    (gh-4016).
  • (Engines) Vinyl iterator crashes if used throughout DDL
    (gh-4000).
  • (Engines) Vinyl doesn’t exit until dump/compaction is complete
    (gh-3949).
  • (Engines) After re-creating secondary index no data is visible
    (gh-3903).
  • (Engines) box.info.memory().tx underflow
    (gh-3897).
  • (Engines) Vinyl stalls on intensive random insertion
    (gh-3603).
  • (Server) Newer version of libcurl explodes fiber stack
    (gh-3569).
  • (Server) SIGHUP crashes tarantool
    (gh-4063).
  • (Server) checkpoint_daemon.lua:49: bad argument #2 to „format“
    (gh-4030).
  • (Server) fiber:name() show only part of name
    (gh-4011).
  • (Server) Second hot standby switch may fail
    (gh-3967).
  • (Server) Updating box.cfg.readahead doesn’t affect existing connections
    (gh-3958).
  • (Server) fiber.join() blocks in „suspended“ if fiber has cancelled
    (gh-3948).
  • (Server) Tarantool can be crashed by sending gibberish to a binary socket
    (gh-3900).
  • (Server) Stored procedure to produce push-messages never breaks on client disconnect
    (gh-3559).
  • (Server) Tarantool crashed in lj_vm_return
    (gh-3840).
  • (Server) Fiber executing box.cfg() may process messages from iproto
    (gh-3779).
  • (Server) Possible regression on nosqlbench
    (gh-3747).
  • (Server) Assertion after improper index creation
    (gh-3744).
  • (Server) Tarantool crashes on vshard startup (lj_gc_step)
    (gh-3725).
  • (Server) Do not restart replication on box.cfg if the configuration didn’t change
    (gh-3711).
  • (Replication) Applier times out too fast when reading large tuples
    (gh-4042).
  • (Replication) Vinyl replica join fails
    (gh-3968).
  • (Replication) Error during replication
    (gh-3910).
  • (Replication) Downstream status doesn’t show up in replication.info unless the channel is broken
    (gh-3904).
  • (Replication) replication fails: tx checksum mismatch
    (gh-3883).
  • (Replication) Rebootstrap crashes if master has replica’s rows
    (gh-3740).
  • (Replication) After restart tuples revert back to their old state which was before replica sync
    (gh-3722).
  • (Replication) Add vclock for safer hot standby switch
    (gh-3002).
  • (Replication) Master row is skipped forever in case of wal write failure
    (gh-2283).
  • (Lua) space:frommap():tomap() conversion fail
    (gh-4045).
  • (Lua) Non-informative message when trying to read a negative count of bytes from socket
    (gh-3979).
  • (Lua) space:frommap raise «tuple field does not match…» even for nullable field
    (gh-3883).
  • (Lua) Tarantool crashes on net.box.call after some uptime with vshard internal fiber
    (gh-3751).
  • (Lua) Heap use after free in lbox_error
    (gh-1955).
  • (Misc) http.client doesn’t honour „connection: keep-alive“
    (gh-3955).
  • (Misc) net.box wait_connected is broken
    (gh-3856).
  • (Misc) Mac build fails on Mojave
    (gh-3797).
  • (Misc) FreeBSD build error: no SSL support
    (gh-3750).
  • (Misc) „http.client“ sets invalid (?) reason
    (gh-3681).
  • (Misc) Http client silently modifies headers when value is not a «string» or a «number»
    (gh-3679).
  • (Misc) yaml.encode uses multiline format for „false“ and „true“
    (gh-3662).
  • (Misc) yaml.encode encodes „null“ incorrectly
    (gh-3583).
  • (Misc) Error object message is empty
    (gh-3604).
  • (Misc) Log can be flooded by warning messages
    (gh-2218).

Устаревшие функции

  • Опция console=true для net.box.new() объявлена устаревшей.

Версия 1.10.2

Тип версии: стабильная (lts). Дата выхода: 2018-10-13. Тег: 1-10-2.

Release: v. 1.10.2.

Данная сборка представляет собой первую стабильную (lts) версию в серии 1.10. Кроме того, Tarantool 1.10.2 представляет собой мажорную версию, версия Tarantool 1.9.2 объявлена устаревшей. Это обновление содержит 95 исправлений по сравнению с версией 1.9.2.

Tarantool 1.10.x обратно совместим с Tarantool 1.9.x в том, что касается структуры бинарных данных, клиент-серверного протокола и протокола репликации. Обновление можно произвести с помощью процедуры box.schema.upgrade().

Цель данного релиза – значительно повысить стабильность vinyl'а и реализовать автоматическую повторную настройку набора реплик в Tarantool.

Изменения или добавления функциональности:

Нашли ответ на свой вопрос?
Обратная связь