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/forum/#!topic/sophia-database/GfcbEC7ksRg * 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()/ require('strict').off(). * '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 更多改进请看发行说明。 Tarantool 1.6.6 发布,嵌入式 NoSql 数据库下载地址