Tarantool 是一个用 Lua 语言编写的嵌入式 NoSQL 数据库,可以直接在 Lua 程序中运行。合并了 Node.js 的强大网络编程和 Redis 数据持久。
Tarantool 1.6.6 发布,此版本是稳定版本,也就是可以在生产环境使用,没有崩溃,内存泄漏等问题。Tarantool 1.6.6 添加了对 Fedora 22,Ubuntu Vivid 平台支持;box.info.snapshot_pid 重命名为 box.info.snapshot_in_progress;Network I/O 转移到一个独立线程,每个实时性能提升 50%。
不兼容改进
——————–
A new schema of _index system space which accommodates
multi-dimensional RTREE indexes.
box.info.snapshot_pid is renamed to box.info.snapshot_in_progress
新特性和功能改进
——————————
* threaded architecture for network
* threaded architecture for checkpointing.
* stored procedures in C/C++
* multidimensional RTREE index
* sophia 2.1.1, with support of compression and multipart
primary keys
https://groups.google.com/
* new ‘upsert’ command available in the binary protocol
and in stored functions.
* better memory diagnostics information for fibers, tuple and
index arena Try a new command box.slab.stats(), for
detailed information about tuple/index slabs, fiber.info() now
displays information about memory used by the fiber.
* update and delete now work using a secondary index, if the
index is unique.
* authentication triggers
* manifold performance improvements of net.box built-in package
* performance optimizations of BITSET index
* panic_on_wal_error is a dynamic configuration option now
* iproto sync field is available in Lua as session.sync()
* box.once() – a new method to invoke code once in an
instance and replica set lifetime. Use once() to set
up spaces and uses, as well as do schema upgrade in
production.
* box.error.last() to return the last error in a session
New rocks
———
* jit.*, jit.dump, jit.util, jit.vmdef modules of LuaJIT 2.0 are now
available as built-ins.
http://luajit.org/ext_jit.html
* ‘strict’ built in package, banning use of undeclared variables in
Lua. Strict mode is on when Tarantool is compiled with debug.
Turn on/off with require(‘strict’).on()/
* ‘pg’ and ‘mysql’ rocks, available at http://rocks.tarantool.org
– working with MySQL and PostgreSQL from Tarantool
* ‘gperftools’ rock, availble at http://rocks.tarantool.org –
getting perfromance data using Google’s gperf from Tarantool.
* ‘csv’ built-in rock, to parse and load CSV (comma-separated
values) data
Bugs 修复
———
#983 tarantool 1.6.6 hang connection or segfault
#952 Memory failure in spite of available memory in slab.info()
#949 tarantool 1.6 debian package should conflict with tarantool-lts-client broken build
#914 app/snapshot.test.lua crashes again
#895 update memory corruption
#881 Net.box “Unexpected response 0″
#874 Assertion `iov->iov_len < buf->capacity[buf->pos]’ failed crash
#853 memory leak on start if replace in xlog regression
#850 incomprehensible error message when running out of cluster server ids
#841 net.box uses incorrect iterator type for select with no arguments
#837 Replica waits infinitely if the master has no xlogs
#836 Restore GE iterator for HASH
#833 fiber.info() doesn’t work master
#827 Statement-level rollback crashes server if out of memory crash
#826 console escape match is slow and gy
#825 console uses deprecated ‘dostring’
#824 tarantoolctl reload is doing nothing
#822 net.box.call should roll back local transaction on error master
#821 One-based indexing for UPDATE in binary protocol
#815 crash when invoking _G crash
#811 MsgPack fixint decoded as cdata customer
#713 replica enters into an infinite reconnect loop if the master has no xlogs customer
#681 Sophia: support or produce error on space::alter
#668 Roles: do not mix up roles and users
#663 Roles: incorrect handling of ‘read’
#622 sophia: multipart primary key feature
#616 1-based indexing and 0-based error message
#609 sophia get/put may block the event loop
#584 box_free() called even if box wasn’t initialized
#354 yaml incorrectly escapes special characters in a string
#314 box API to return last error (code, message, type, errno, etc) feature
#266 box.info() crash on uncofigured box crash customer
更多改进请看发行说明。