Tarantool 1.7
Release: v. 1.7.0
Release 1.7.6
Release type: stable. Release date: 2017-11-07. Tag: 1.7.6-0-g7b2945d6c. Release: https://groups.google.com/forum/#!topic/tarantool/hzc7O2YDZUc or v. 1.7.6.
This is the next stable release in the 1.7 series. It resolves more than 75 issues since 1.7.5.
What’s new in Tarantool 1.7.6?
- In addition to rollback of a transaction, there is now rollback to a defined point within a transaction – savepoint support.
- There is a new object type: sequences. The older option, auto-increment, will be deprecated.
- String indexes can have collations.
New options are available for:
Incompatible changes:
- Layout of
box.space._index
has been extended to support is_nullable and collation features. All new indexes created on columns withis_nullable
orcollation
properties will have the new definition format. Please update your client libraries if you plan to use these new features (gh-2802).- fiber_name() now raises an exception instead of truncating long fiber names. We found that some Lua modules such as expirationd use
fiber.name()
as a key to identify background tasks. If a name is truncated, this fact was silently missed. The new behavior allows to detect bugs caused byfiber.name()
truncation. Please usefiber.name(name, { truncate = true })
to emulate the old behavior (gh-2622).- space:format() is now validated on DML operations. Previously
space:format()
was only used by client libraries, but starting from Tarantool 1.7.6, field types inspace:format()
are validated on the server side on every DML operation, and field names can be used in indexes and Lua code. If you usedspace:format()
in a non-standard way, please update layout and type names according to the official documentation for space formats.
Functionality added or changed:
- Hybrid schema-less + schemaful data model. Earlier Tarantool versions allowed to store arbitrary MessagePack documents in spaces. Starting from Tarantool 1.7.6, you can use space:format() to define schema restrictions and constraints for tuples in spaces. Defined field types are automatically validated on every DML operation, and defined field names can be used instead of field numbers in Lua code. A new function tuple:tomap() was added to convert a tuple into a key-value Lua dictionary.
- Collation and Unicode support. By default, when Tarantool compares strings, it takes into consideration only the numeric value of each byte in the string. To allow the ordering that you see in phone books and dictionaries, Tarantool 1.7.6 introduces support for collations based on the Default Unicode Collation Element Table (DUCET) and the rules described in Unicode® Technical Standard #10 Unicode Collation Algorithm (UTS #10 UCA) See collations.
- NULL values in unique and non-unique indexes. By default, all fields in Tarantool are “NOT NULL”. Starting from Tarantool 1.7.6, you can use
is_nullable
option in space:format() or inside an index part definition to allow storing NULL in indexes. Tarantool partially implements three-valued logic from the SQL standard and allows storing multiple NULL values in unique indexes (gh-1557).- Sequences and a new implementation of auto_increment(). Tarantool 1.7.6 introduces new sequence number generators (like CREATE SEQUENCE in SQL). This feature is used to implement new persistent auto increment in spaces (gh-389).
- Vinyl: introduced gap locks in Vinyl transaction manager. The new locking mechanism in Vinyl TX manager reduces the number of conflicts in transactions (gh-2671).
- net.box: on_connect and on_disconnect triggers (gh-2858).
- Structured logging in JSON format (gh-2795).
- (Lua) Lua: string.strip() (gh-2785).
- (Lua) added base64_urlsafe_encode() to
digest
module (gh-2777).- Log conflicted keys in master-master replication (gh-2779).
- Allow to disable backtrace in fiber.info() (gh-2878).
- Implemented
tarantoolctl rocks make *.spec
(gh-2846).- Extended the default loader to look for
.rocks
in the parent dir hierarchy (gh-2676).SOL_TCP
options support in socket:setsockopt() (gh-598).- Partial emulation of LuaSocket on top of Tarantool Socket (gh-2727).
Developer tools:
- Integration with IntelliJ IDEA with debugging support. Now you can use IntelliJ IDEA as an IDE to develop and debug Lua applications for Tarantool. See Using IDE.
- Integration with MobDebug remote Lua debugger (gh-2728).
- Configured
/usr/bin/tarantool
as an alternative Lua interpreter on Debian/Ubuntu (gh-2730).
New rocks:
- smtp.client - support SMTP via
libcurl
.
Release 1.7.5
Release type: stable. Release date: 2017-08-22. Tag: 1.7.5. Release: doc-289 or v. 1.7.5.
This is a stable release in the 1.7 series. This release resolves more than 160 issues since 1.7.4.
Functionality added or changed:
- (Vinyl) a new force_recovery mode to recover broken disk files. Use
box.cfg{force_recovery=true}
to recover corrupted data files after hardware issues or power outages (gh-2253).- (Vinyl) index options can be changed on the fly without rebuild. Now page_size, run_size_ratio, run_count_per_level and bloom_fpr index options can be dynamically changed via index:alter(). The changes take effect in newly created data files only (gh-2109).
- (Vinyl) improve box.info.vinyl() and
index:info()
output (gh-1662).- (Vinyl) introduce box.cfg.vinyl_timeout option to control quota throttling (gh-2014).
- Memtx: stable index:pairs() iterators for the TREE index. TREE iterators are automatically restored to a proper position after index’s modifications (gh-1796).
- (Memtx) predictable order for non-unique TREE indexes. Non-unique TREE indexes preserve the sort order for duplicate entries (gh-2476).
- (Memtx+Vinyl) dynamic configuration of max tuple size. Now
box.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 (gh-2667).- (Memtx+Vinyl) new implementation. Space truncation doesn’t cause re-creation of all indexes any more (gh-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 (gh-944).
- Heartbeat messages for replication. Replication client now sends the selective acknowledgments for processed records and automatically re-establish stalled connections. This feature also changes box.info.replication[replica_id].vclock. to display committed vclock of remote replica (gh-2484).
- Keep track of remote replicas during WAL maintenance. Replication master now automatically preserves xlogs needed for remote replicas (gh-748).
- Enabled box.tuple.new() to work without
box.cfg()
(gh-2047).- box.atomic(fun, …) wrapper to execute function in a transaction (gh-818).
- box.session.type() helper to determine session type (gh-2642).
- Hot code reload for stored C stored procedures. Use
box.schema.func.reload('modulename.function')
to reload dynamic shared libraries on the fly (gh-910).- string.hex() and
str:hex()
Lua API (gh-2522).- Package manager based on LuaRocks. Use
tarantoolctl rocks install MODULENAME
to install MODULENAME Lua module from https://rocks.tarantool.org/. (gh-2067).- Lua 5.1 command line options. Tarantool binary now supports ‘-i’, ‘-e’, ‘-m’ and ‘-l’ command line options (gh-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 (gh-2643).- Syslog logger now support non-blocking mode. box.cfg{log_nonblock=true} now also works for syslog logger (gh-2466).
- Added a VERBOSE log level beyond INFO (gh-2467).
- Tarantool now automatically makes snapshots every hour. Please set box.cfg{checkpoint_interval=0 to restore pre-1.7.5 behavior (gh-2496).
- Increase precision for percentage ratios provided by box.slab.info() (gh-2082).
- Stack traces now contain symbols names on all supported platforms. Previous versions of Tarantool didn’t display meaningful function names in fiber.info() on non-x86 platforms (gh-2103).
- Allowed to create fiber with custom stack size from C API (gh-2438).
- Added
ipc_cond
to public C API (gh-1451).
New rocks:
- http.client (built-in) - libcurl-based HTTP client with SSL/TLS support (gh-2083).
- iconv (built-in) - bindings for iconv (gh-2587).
- authman - API for user registration and login in your site using email and social networks.
- document - store nested documents in Tarantool.
- synchronized - critical sections for Lua.
Release 1.7.4
Release type: release candidate. Release date: 2017-05-12. Release tag: Tag: 1.7.4.
Release: v. 1.7.4 or https://groups.google.com/forum/#!topic/tarantool/3x88ATX9YbY
This is a release candidate in the 1.7 series. Vinyl Engine, the flagship feature of 1.7.x, is now feature complete.
Incompatible changes
box.cfg()
options were changed to add Vinyl support:
snap_dir
renamed tomemtx_dir
slab_alloc_arena
(gigabytes) renamed tomemtx_memory
(bytes), default value changed from 1Gb to 256MBslab_alloc_minimal
renamed tomemtx_min_tuple_size
slab_alloc_maximal
renamed tomemtx_max_tuple_size
slab_alloc_factor
is deprecated, not relevant in 1.7.xsnapshot_count
renamed tocheckpoint_count
snapshot_period
renamed tocheckpoint_interval
logger
renamed tolog
logger_nonblock
renamed tolog_nonblock
logger_level
renamed tolog_level
replication_source
renamed toreplication
panic_on_snap_error = true
andpanic_on_wal_error = true
superseded byforce_recovery = false
Until Tarantool 1.8, you can use deprecated parameters for both initial and runtime configuration, but such usage will print a warning in the server log (gh-1927 and gh-2042).
Hot standy mode is now off by default. Tarantool automatically detects another running instance in the same
wal_dir
and refuses to start. Usebox.cfg {hot_standby = true}
to enable the hot standby mode (gh-775).UPSERT via a secondary key was banned to avoid unclear semantics (gh-2226).
box.info
andbox.info.replication
format was changed to display information about upstream and downstream connections ((gh-723):
- Added
box.info.replication[instance_id].downstream.vclock
to display the last sent row to remote replica.- Added
box.info.replication[instance_id].id
.- Added
box.info.replication[instance_id].lsn
.- Moved
box.info.replication[instance_id].{vclock,status,error}
tobox.info.replication[instance_id].upstream.{vclock,status,error}
.- All registered replicas from
box.space._cluster
are included tobox.info.replication
output.box.info.server.id
renamedbox.info.id
box.info.server.lsn
renamedbox.info.lsn
box.info.server.uuid
renamedbox.info.uuid
box.info.cluster.signature
renamed tobox.info.signature
box.info.id
andbox.info.lsn
now returnnil
instead of-1
during initial cluster bootstrap.
net.box
: added per-request options to all requests:
conn.call(func_name, arg1, arg2,...)
changed toconn.call(func_name, {arg1, arg2, ...}, opts)
conn.eval(func_name, arg1, arg2,...)
changed toconn.eval(func_name, {arg1, arg2, ...}, opts)
All requests now support
timeout = <seconds>
,buffer = <ibuf>
options.Added
connect_timeout
option tonetbox.connect()
.
netbox:timeout()
andconn:timeout()
are now deprecated. Usenetbox.connect(host, port, { call_16 = true })
for 1.6.x-compatible behavior (gh-2195).systemd configuration changed to support
Type=Notify
/sd_notify()
. Nowsystemctl start tarantool@INSTANCE
will wait until Tarantool has started and recovered from xlogs. The recovery status is reported tosystemctl status tarantool@INSTANCE
(gh-1923).
log
module now doesn’t prefix all messages with the full path to tarantool binary when used withoutbox.cfg()
(gh-1876).
require('log').logger_pid()
was renamed torequire('log').pid()
(gh-2917).Removed Lua 5.0 compatible defines and functions (gh-2396):
luaL_reg
removed in favor ofluaL_Reg
luaL_getn(L, i)
removed in favor oflua_objlen(L, i)
luaL_setn(L, i, j)
removed (was no-op)lua_ref(L, lock)
removed in favor ofluaL_ref(L, lock)
lua_getref(L,ref)
removed in favor oflua_rawgeti(L, LUA_REGISTRYINDEX, (ref))
lua_unref(L, ref)
removed in favor ofluaL_unref(L, ref)
math.mod()
removed in favor ofmath.fmod()
string.gfind()
removed in favor ofstring.gmatch()
Functionality added or changed:
(Vinyl) multi-level compaction. The compaction scheduler now groups runs of the same range into levels to reduce the write amplification during compaction. This design allows Vinyl to support 1:100+ ram:disk use-cases (gh-1821).
(Vinyl) bloom filters for sorted runs. Bloom filter is a probabilistic data structure which can be used to test whether a requested key is present in a run file without reading the actual file from the disk. Bloom filter may have false-positive matches but false-negative matches are impossible. This feature reduces the number of seeks needed for random lookups and speeds up REPLACE/DELETE with enabled secondary keys (gh-1919).
(Vinyl) key-level cache for point lookups and range queries. Vinyl storage engine caches selected keys and key ranges instead of entire disk pages like in traditional databases. This approach is more efficient because the cache is not polluted with raw disk data (gh-1692).
(Vinyl) implemented`). Now all in-memory indexes of a space store pointers to the same tuples instead of cached secondary key index data. This feature significantly reduces the memory footprint in case of secondary keys (gh-1908).
(Vinyl) new implementation of initial state transfer of JOIN command in replication protocol. New replication protocol fixes problems with consistency and secondary keys. We implemented a special kind of low-cost database-wide read-view to avoid dirty reads in JOIN procedure. This trick wasn’t not possible in traditional B-Tree based databases (gh-2001).
(Vinyl) index-wide mems/runs. Removed ranges from in-memory and and the stop layer of LSM tree on disk (gh-2209).
(Vinyl) coalesce small ranges. Before dumping or compacting a range, consider coalescing it with its neighbors (gh-1735).
(Vinyl) implemented transnational journal for metadata. Now information about all Vinyl files is logged in a special
.vylog
file (gh-1967).(Vinyl) implemented consistent secondary keys (gh-2410).
(Memtx+Vinyl) implemented low-level Lua API to create consistent backups. of Memtx + Vinyl data. The new feature provides
box.backup.start()/stop()
functions to create backups of all spaces. box.backup.start() pauses the Tarantool garbage collector and returns the list of files to copy. These files then can be copied be any third-party tool, like cp, ln, tar, rsync, etc.box.backup.stop()
lets the garbage collector continue. Created backups can be restored instantly by copying into a new directory and starting a new Tarantool instance. No special preparation, conversion or unpacking is needed (gh-1916).(Vinyl) added statistics for background workers to
box.info.vinyl()
(gh-2005).(Memtx+Vinyl) reduced the memory footprint for indexes which keys are sequential and start from the first field. This optimization was necessary for secondary keys in Vinyl, but we optimized Memtx as well (gh-2046).
LuaJIT was rebased on the latest 2.1.0b3 with out patches (gh-2396):
- Added JIT compiler backend for ARM64
- Added JIT compiler backend and interpreter for MIPS64
- Added some more Lua 5.2 and Lua 5.3 extensions
- Fixed several bugs
- Removed Lua 5.0 legacy (see incompatible changes above).
Enabled a new smart string hashing algorithm in LuaJIT to avoid significant slowdown when a lot of collisions are generated. Contributed by Yury Sokolov (@funny-falcon) and Nick Zavaritsky (@mejedi). See https://github.com/tarantool/luajit/pull/2.
box.snapshot()
now updates mtime of a snapshot file if there were no changes to the database since the last snapshot. (gh-2045).Implemented
space:bsize()
to return the memory size utilized by all tuples of the space. Contributed by Roman Tokarev (@rtokarev). (gh-2043).Exported new Lua/C functions to public API:
Exported new Box/C functions to public API:
box_key_def
,box_tuple_format
,tuple_compare()
,tuple_compare_with_key()
. (gh-2225).xlogs now can be rotated based on size (
wal_max_size
) as well as the number of written rows (rows_per_wal
). (gh-173).Added
string.split()
,string.startswith()
,string.endswith()
,string.ljust()
,string.rjust()
,string.center()
API (gh-2211, gh-2214, gh-2415).Added
table.copy()
andtable.deepcopy()
functions. (gh-2212).Added
pwd
module to work with UNIX users and groups. (gh-2213).Removed noisy “client unix/: connected” messages from logs. Use
box.session.on_connect()
/on_disconnect()
triggers instead. (gh-1938).
box.session.on_connect()
/on_disconnect()
/on_auth()
triggers now also fired for admin console connections.tarantoolctl:
eval
,enter
,connect
commands now support UNIX pipes (gh-672).tarantoolctl: improved error messages and added a new man page (gh-1488).
tarantoolctl: added filter by
replica_id
tocat
andplay
commands (gh-2301).tarantoolctl:
start
,stop
andrestart
commands now redirect tosystemctl start/stop/restart
when systemd is enabled (gh-2254).net.box: added
buffer = <buffer>
per-request option to store raw MessagePack responses into a C buffer (gh-2195).net.box: added
connect_timeout
option (gh-2054).net.box: added
on_schema_reload()
hook (gh-2021).net.box: exposed
conn.schema_version
andspace.connection
to API (gh-2412).log:
debug()
/info()
/warn()
/error()
now doesn’t fail on formatting errors (gh-889).crypto: added HMAC support. Contributed by Andrey Kulikov (@amdei) (gh-725).
Release 1.7.3
Release type: beta. Release date: 2016-12-24. Release tag: Tag: 1.7.3-0-gf0c92aa.
Release: v. 1.7.3
This is the second beta release in the 1.7 series.
Incompatible changes:
Functionality added or changed:
- Substantial progress on stabilizing the Vinyl storage engine:
- Fix most known crashes and bugs with bad results.
- Switch to use XLOG/SNAP format for all data files.
- Enable ZStandard compression for all data files.
- Squash UPSERT operations on the fly and merge hot keys using a background fiber.
- Significantly improve the performance of index:pairs() and index:count().
- Remove unnecessary conflicts from transactions.
- In-memory level was mostly replaced by memtx data structures.
- Specialized allocators are used in most places.
- We’re still actively working on Vinyl and plan to add multi-level compaction and improve the performance of secondary keys in 1.7.4. This implies a data format change.
- Support for DML requests for space:on_replace() triggers (gh-587).
- UPSERT can be used with the empty list of operations (gh-1854).
- Lua functions to manipulate environment variables (gh-1718).
- Lua library to read Tarantool snapshots and xlogs (gh-1782).
- New
play
andcat
commands intarantoolctl
(gh-1861).- Improve support for the large number of active network clients. Issue#5#1892.
- Support for
space:pairs(key, iterator-type)
syntax (gh-1875).- Automatic cluster bootstrap now also works without authorization (gh-1589).
- Replication retries to connect to master indefinitely (gh-1511).
- Temporary spaces now work with
box.cfg { read_only = true }
(gh-1378).- The maximum length of space names increased to 64 bytes (was 32) (gh-2008).
Release 1.7.2
Release type: beta. Release date: 2016-09-29. Release tag: Tag: 1.7.2-1-g92ed6c4
.
Release: https://groups.google.com/forum/#!topic/tarantool-ru/qUYUesEhRQg or v. 1.7.2
This is a release in the 1.7 series.
Incompatible changes:
- A new binary protocol command for CALL, which no more restricts a function to returning an array of tuples and allows returning an arbitrary MsgPack/JSON result, including scalars, nil and void (nothing). The old CALL is left intact for backward compatibility. It will be removed in the next major release. All programming language drivers will be gradually changed to use the new CALL (gh-1296).
Functionality added or changed:
- Vinyl storage engine finally reached the beta stage. This release fixes more than 90 bugs in Vinyl, in particular, removing unpredictable latency spikes, all known crashes and bad/lost result bugs.
- new cooperative multitasking based architecture to eliminate latency spikes,
- support for non-sequential multi-part keys,
- support for secondary keys,
- support for
auto_increment()
,- number, integer, scalar field types in indexes,
- INSERT, REPLACE and UPDATE return new tuple, like in memtx.
- We’re still actively working on Vinyl and plan to add
zstd
compression and a new memory allocator for Vinyl in-memory index in 1.7.3. This implies a data format change which we plan to implement before 1.7 becomes generally available.- Tab-based autocompletion in the interactive console,
require('console').connect()
,tarantoolctl enter
andtarantoolctl connect
commands (gh-86 and gh-1790). Use the TAB key to auto complete the names of Lua variables, functions and meta-methods.- A new implementation of
net.box
improving performance and solving problems when the Lua garbage collector handles dead connections (gh-799, gh-800, gh-1138 and gh-1750).- memtx snapshots and xlog files are now compressed on the fly using the fast ZStandard compression algorithm. Compression options are configured automatically to get an optimal trade-off between CPU utilization and disk throughput.
fiber.cond()
- a new synchronization mechanism for cooperative multitasking (gh-1731).- Tarantool can now be installed using universal Snappy packages (http://snapcraft.io/) with
snap install tarantool --channel=beta
.
New rocks and packages:
- curl - non-blocking bindings for libcurl
- prometheus - Prometheus metric collector for Tarantool
- gis - a full-featured geospatial extension for Tarantool
- mqtt - an MQTT protocol client for Tarantool
- luaossl - the most comprehensive OpenSSL module in the Lua universe
Deprecated, removed features and minor incompatibilities:
num
andstr
fields type names are deprecated, useunsigned
andstring
instead (gh-1534).
space:inc()
andspace:dec()
were removed (deprecated in 1.6.x) (gh-1289).
fiber:cancel()
is now asynchronous and doesn’t wait for the fiber to end (gh-1732).Implicit error-prone
tostring()
was removed fromdigest
API (gh-1591).Support for SHA-0 (
digest.sha()
) was removed due to OpenSSL upgrade.
net.box
now uses one-based indexes forspace.name.index[x].parts
(gh-1729).Tarantool binary now dynamically links with
libssl.so
during compile time instead of loading it at the run time.Debian and Ubuntu packages switched to use native
systemd
configuration alongside with old-fashionedsysvinit
scripts.
systemd
provides its own facilities for multi-instance management. To upgrade, perform the following steps:
- Install new 1.7.2 packages.
- Ensure that
INSTANCENAME.lua
file is present in/etc/tarantool/instances.enabled
.- Stop INSTANCENAME using
tarantoolctl stop INSTANCENAME
.- Start INSTANCENAME using
systemctl start tarantool@INSTANCENAME
.- Enable INSTANCENAME during system boot using
systemctl enable trantool@INTANCENAME
.- Say
systemctl disable tarantool; update-rc.d tarantool remove
to disable sysvinit-compatible wrappers.Refer to (gh-1291), comment and the administration chapter for additional information.
Debian and Ubuntu packages start a ready-to-use
example.lua
instance on a clean installation of the package. The default instance grants universe permissions forguest
user and listens on “localhost:3313”.Fedora 22 packages were deprecated (EOL).
Release 1.7.1
Release type: alpha. Release date: 2016-07-11.
Release: https://groups.google.com/forum/#!topic/tarantool/KGYj3VKJKb8 or v. 1.7.1
This is the first alpha in the 1.7 series. The main feature of this release is a new storage engine, called “vinyl”. Vinyl is a write optimized storage engine, allowing the amount of data stored exceed the amount of available RAM 10-100x times. Vinyl is a continuation of the Sophia engine from 1.6, and effectively a fork and a distant relative of Dmitry Simonenko’s Sophia. Sophia is superseded and replaced by Vinyl. Internally it is organized as a log structured merge tree. However, it takes a serious effort to improve on the traditional deficiencies of log structured storage, such as poor read performance and unpredictable write latency. A single index is range partitioned among many LSM data structures, each having its own in-memory buffers of adjustable size. Range partitioning allows merges of LSM levels to be more granular, as well as to prioritize hot ranges over cold ones in access to resources, such as RAM and I/O. The merge scheduler is designed to minimize write latency while ensuring read performance stays within acceptable limits. Vinyl today only supports a primary key index. The index can consist of up to 256 parts, like in MemTX, up from 8 in Sophia. Partial key reads are supported. Support of non-sequential multi part keys, as well as secondary keys is on the short term todo. Our intent is to remove all limitations currently present in Vinyl, making it a first class citizen in Tarantool.
Functionality added or changed:
- The disk-based storage engine, which was called
sophia
orphia
in earlier versions, is superseded by thevinyl
storage engine.- There are new types for indexed fields.
- The LuaJIT version is updated.
- Automatic replica set bootstrap (for easier configuration of a new replica set) is supported.
- The
space_object:inc()
function is removed.- The
space_object:dec()
function is removed.- The
space_object:bsize()
function is added.- The
box.coredump()
function is removed, for an alternative see Core dumps.- The
hot_standby
configuration option is added.- Configuration parameters revised or renamed:
slab_alloc_arena
(in gigabytes) tomemtx_memory
(in bytes),slab_alloc_minimal
tomemtx_min_tuple_size
,slab_alloc_maximal
tomemtx_max_tuple_size
,replication_source
toreplication
,snap_dir
tomemtx_dir
,logger
tolog
,logger_nonblock
tolog_nonblock
,snapshot_count
tocheckpoint_count
,snapshot_period
tocheckpoint_interval
,panic_on_wal_error
andpanic_on_snap_error
united underforce_recovery
.- Until Tarantool 1.8, you can use deprecated parameters for both initial and runtime configuration, but Tarantool will display a warning. Also, you can specify both deprecated and up-to-date parameters, provided that their values are harmonized. If not, Tarantool will display an error.
- Automatic replication cluster bootstrap; it’s now much easier to configure a new replication cluster.
- New indexable data types: INTEGER and SCALAR.
- Code refactoring and performance improvements.
- Updated LuaJIT to 2.1-beta116.