-
Notifications
You must be signed in to change notification settings - Fork 43
Description
Date: 2017-08-22
Tag: 1.7.5
.
1.7.5 is a stable release in the 1.7 series. Label 'stable' means we've had systems running in production without known crashes, bad results or other showstopper bugs for quite a while now. This release resolves more than 160 issues since 1.7.4. There may be bugs in less common areas, please feel free to file an issue on GitHub.
Incompatible Changes
This release doesn't contain incompatible changes since 1.7.4 (rc). See the full list of incompatible changes since Tarantool 1.6.9 is available from 1.7.1, 1.7.2 and 1.7.3 and 1.7.4 release notes.
Tarantool 1.7.x is backward-compatible with Tarantool 1.6.x in binary data layout, client-server protocol and replication protocol. Please upgrade via box.schema.upgrade()
procedure to unlock all new features of 1.7.x series.
Functionality Added or Changed
-
Vinyl: a new
force_recovery
mode to recover broken disk files
Usebox.cfg { force_recovery = true }
is useful to recover corrupted data files after hardware issues or power outages.
vinyl: support force_recovery tarantool#2253 -
Vinyl: index options can be changed on the fly without rebuild.
Nowpage_size
,run_size_ratio
,run_count_per_level
andbloom_fpr
index options can be dynamically changed via index:alter(). The changes take effect in newly created data files only.
vinyl: page_size, run_size_ratio, run_count_per_level, bloom_fpr: change without space rebuild tarantool#2109 -
Vinyl: improve box.info.vinyl() and index:info() output
vinyl: refactor box.info.vinyl() and index:info() output tarantool#1662 -
Vinyl: introduce box.cfg.vinyl_timeout option to control quota throttling
vinyl: add quota timeout tarantool#2014 -
Memtx: stable index:pairs() iterators for the TREE index
TREE iterators are automatically restored to a proper position after index's modifications.
memtx: make tree iterators stable tarantool#1796 -
Memtx: predictable order for non-unique TREE indexes
Non-unique TREE indexes preserve the sort order for duplicate entries.
memtx: make iteration over non-unique indexes predicatable tarantool#2476 -
Memtx, Vinyl: dynamic configuration of max tuple size
Nowbox.cfg.memtx_max_tuple_size
andbox.cfg.vinyl_max_tuple_size
configuration options can be changed on the fly without need to restart the server.
Allow to insert to memtx tuples bigger than `memtx_max_tuple_size' tarantool#2667 -
Memtx, Vinyl: new implementation
Space truncation doesn't cause re-creation of all indexes anymore.
getting "attempt to index field 'primary' (a nil value)" in lua procedure while space:truncate() call from admin console tarantool#618 -
Extended the maximal length of all identifiers from 32 to 65k characters
Space, user and function names are not limited by 32 characters anymore.
Function name is too long tarantool#944 -
Heartbeat messages for replication
Replication client now sends the selective acknowledgments for processed records and automatically re-establish stalled connections. This feature also changesbox.info.replication[replica_id].vclock
to display committed vclock of remote replica.
replication: heartbeat messages tarantool#2484 -
Keep track of remote replicas during WAL maintenance
Replication master now automatically preserves xlogs needed for remote replicas.
snapshot daemon: keep track of replica state and take it into account for WAL maintenance tarantool#748 -
Enabled box.tuple.new() to work without box.cfg()
Enable box.tuple.new() to work without box.cfg() tarantool#2047 -
box.atomic(fun, ...) wrapper to execute function in a transaction
lua decorator to make function atomic tarantool#818 -
box.session.type() helper to determine session type
box.session.type() tarantool#2642 -
Hot code reload for stored C stored procedures
Use box.schema.func.reload('modulename.function') to reload dynamic shared libraries on the fly.
C stored functions: implement "unload"/"reload" tarantool#910 -
string.hex() and str:hex() Lua API
string.hex() method tarantool#2522 -
Package manager based on LuaRocks
Usetarantoolctl rocks install MODULENAME
to installMODULENAME
Lua module from https://rocks.tarantool.org/.
Package manager based on LuaRocks tarantool#2067 -
Lua 5.1 command line options
Tarantool binary now supports '-i', '-e', '-m' and '-l' command line options.
Support Lua CLI options tarantool#1265 -
Experimental GC64 mode for LuaJIT
GC64 mode allow to operate the full address space on 64-bit hosts. Enable via-DLUAJIT_ENABLE_GC64=ON
compile-time configuration option.
LuaJIT's allocator is totally broken tarantool#2643 -
Syslog logger now support non-blocking mode
box.cfg { log_nonblock = true }
now also works for syslog logger.
log: logging to syslog should use syslogfd tarantool#2466 -
Added a VERBOSE log level beyond INFO
Log levels beyond INFO: VERBOSE tarantool#2467 -
Tarantool now automatically makes snapshots every hour.
Please setbox.cfg { checkpoint_interval = 0 }
to restore pre-1.7.5 behaviour.
Enable snapshot daemon by default tarantool#2496 -
Increase precision for percentage ratios provoded by box.slab.info()
Increase precision for percentage ratios provoded by box.slab.info() tarantool#2082 -
Stack traces now contains symbols names on all supported platforms
Previous versions of Tarantool didn't display meaningful function names infiber.info()
on non-x86 platforms.
Tarantool stack trace is broken when run in Docker tarantool#2103 -
Allowed to create fiber with custom stack size from C API
Custom stack size for fibers tarantool#2438 -
Added ipc_cond to public C API
Add ipc_cond to public C API tarantool#1451
New Rocks
-
http.client (built-in) - libcurl-based HTTP client with SSL/TLS support
Built-in tarantool-curl tarantool#2083 -
iconv (built-in) - bindings for iconv
Bindings for iconv tarantool#2587 -
authman - API for registration and login users in your site using email and social networks
https://github.com/mailru/tarantool-authman -
document - store nested documents in Tarantool
https://github.com/tarantool/document -
synchronized - critical sections for Lua
https://github.com/tarantool/synchronized
Bugs Fixed
-
Dozens of bug fixed in Vinyl engine, see the full list on GitHub
for details -
Multiple DDL fixes
Tarantool crashes while parallel alter for same space tarantool#2075
Truncate removes "unique" field in index ops tarantool#2060
complex way to segfault tarantool#928
Tarantool will abort if replacing tuple after index creation with inconsistent format tarantool#2074 -
COMMIT order is broken with replication and on_replace triggers
COMMIT order is broken with replication and on_replace triggers tarantool#2682 -
setuid functions break request multiplexor
setuid functions break request multiplexor tarantool#617 -
Crash on OS X with "not enough memory"
Crash on OS X with "not enough memory" tarantool#2638 -
YAML output in console is truncated on OS X
YAML output in console is truncated (MacOS) tarantool#1786 -
Autoupgrade fails on a read only replica
Autoupgrade fails on a read only replica tarantool#2531 -
xlog_cursor_next_tx(xlog_cursor*): Assertion `i->state != XLOG_CURSOR_EOF'
int xlog_cursor_next_tx(xlog_cursor*): Assertion `i->state != XLOG_CURSOR_EOF' tarantool#2460 -
Multiple systemd fixes
systemd_notify() doesn't work on Debian Jessie tarantool#2437 Can not start on Debian 8/9 if dbus package is not presented. tarantool#2538 Can't start on system boot on Debian 9 Stretch tarantool#2513 tarantoolctl silently fails when starting an instance with '-' in its name under centos7 tarantool#2552
A full list of fixed bugs is available on GitHub.