- Description:
- [Mirror] Middleware for data
- Last Change:
- Clone URL:
Commit Briefs
tutorial: use https links (ligurio/force-https-in-tutorial, origin/ligurio/force-https-in-tutorial)
NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
test: fix flaky viny/tx_gap_lock test
The `cmp_tuple` helper function is broken - it assumes that all tuple fields, including the payload, are numeric. It isn't true - the payload field is either nil or string. This results in a false-positive test failure: ``` error: '[string "function cmp_tuple(t1, t2) for i = 1, PAY..."]:1: attempt to compare nil with string' ``` Closes #6336 NO_DOC=test NO_CHANGELOG=test
test-run: bump to new version
Bump test-run to new version with the following improvements: - Fix issue with not detecting successful server start [1] [1] tarantool/test-run#343 NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
test: set shutdown timeout to infinity for default luatest instance
With the default shutdown timeout of 3 seconds, a test that leaves behind asynchronous requests would still pass, but it would take longer to finish, because the server instance started by Tarantool would have to wait for the dangling requests to complete. Setting the timeout to infinity will result in a hang, making us fix the test. Infinite timeout is also good for catching bugs like #7225 and #7256. We don't set the timeout for diff and TAP tests because those are deprecated and shouldn't be used for writing new tests. Nevertheless, I manually checked that none of them hangs if the timeout is set to infinity. Closes #6820 NO_DOC=test NO_CHANGELOG=test
iostream: shutdown socket fd before close
If a socket fd is shared by a child process, closing it in the parent will not shut down the underlying connection. As a result, the server may hang executing the graceful shutdown protocol. Fix this problem by explicitly shutting down the connection socket fd before closing it. This is a recommended way to terminate a Unix socket connection, see http://www.faqs.org/faqs/unix-faq/socket/#:~:text=2.6.%20%20When%20should%20I%20use%20shutdown()%3F Closes #7256 NO_DOC=bug fix
wal: allow spurious wakeups in wal_write
It's possible to wakeup a fiber, which is waiting for WAL write completion, using Tarantool C API. This results in an error like: ``` main/118/lua F> Journal result code -1 can't be converted to an error ``` This patch introduces a flag, which is set when WAL write is finished, that allows fibers to yield until the flag is set. Closes #6506 NO_DOC=bugfix
test-run: bump to new version
Bump test-run to new version with the following improvements: - Fail *.test.py tests in case of server start errors [1] [1] tarantool/test-run#333 NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
sql: fix wrong ephemeral space format
This patch fixes format building when an ephemeral space was used in ORDER BY and ORDER BY uses at least two variables from the list of selected columns. Closes #7042 NO_DOC=Bugfix
decimal: fix index comparison with Inf, NaN
There was an assertion failure when inserting a decimal into an index which contained double Inf or NaN. The reason for that was never checking decimal_from_*() return values, and decimal_from_double() not being able to handle NaN or Inf, because these values are not representable in decimal numbers. Start handling decimal_from_<type> return values and fix decimal comparison with Inf, NaN. Closes #6377 NO_DOC=bugfix
test: use unix socket in replication-py/swim tests
To reduce the chance to encounter the tarantool/test-run#141 issue in replication-py/swim tests, let's switch to using unix sockets instead of TCP ports for tarantool console. NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
Branches
Tree
README.md
# Tarantool [![Actions Status][actions-badge]][actions-url] [![Code Coverage][coverage-badge]][coverage-url] [![Telegram][telegram-badge]][telegram-url] [![GitHub Discussions][discussions-badge]][discussions-url] [![Stack Overflow][stackoverflow-badge]][stackoverflow-url] [Tarantool][tarantool-url] is an in-memory computing platform consisting of a database and an application server. It is distributed under [BSD 2-Clause][license] terms. Key features of the application server: * Heavily optimized Lua interpreter with incredibly fast tracing JIT compiler, based on LuaJIT 2.1. * Cooperative multitasking, non-blocking IO. * [Persistent queues][queue]. * [Sharding][vshard]. * [Cluster and application management framework][cartridge]. * Access to external databases such as [MySQL][mysql] and [PostgreSQL][pg]. * A rich set of built-in and standalone [modules][modules]. Key features of the database: * MessagePack data format and MessagePack based client-server protocol. * Two data engines: 100% in-memory with complete WAL-based persistence and an own implementation of LSM-tree, to use with large data sets. * Multiple index types: HASH, TREE, RTREE, BITSET. * Document oriented JSON path indexes. * Asynchronous master-master replication. * Synchronous quorum-based replication. * RAFT-based automatic leader election for the single-leader configuration. * Authentication and access control. * ANSI SQL, including views, joins, referential and check constraints. * [Connectors][connectors] for many programming languages. * The database is a C extension of the application server and can be turned off. Supported platforms are Linux (x86_64, aarch64), Mac OS X (x86_64, M1), FreeBSD (x86_64). Tarantool is ideal for data-enriched components of scalable Web architecture: queue servers, caches, stateful Web applications. To download and install Tarantool as a binary package for your OS or using Docker, please see the [download instructions][download]. To build Tarantool from source, see detailed [instructions][building] in the Tarantool documentation. To find modules, connectors and tools for Tarantool, check out our [Awesome Tarantool][awesome-list] list. Please report bugs to our [issue tracker][issue-tracker]. We also warmly welcome your feedback on the [discussions][discussions-url] page and questions on [Stack Overflow][stackoverflow-url]. We accept contributions via pull requests. Check out our [contributing guide][contributing]. Thank you for your interest in Tarantool! [actions-badge]: https://github.com/tarantool/tarantool/workflows/release/badge.svg [actions-url]: https://github.com/tarantool/tarantool/actions [coverage-badge]: https://coveralls.io/repos/github/tarantool/tarantool/badge.svg?branch=master [coverage-url]: https://coveralls.io/github/tarantool/tarantool?branch=master [telegram-badge]: https://img.shields.io/badge/Telegram-join%20chat-blue.svg [telegram-url]: http://telegram.me/tarantool [discussions-badge]: https://img.shields.io/github/discussions/tarantool/tarantool [discussions-url]: https://github.com/tarantool/tarantool/discussions [stackoverflow-badge]: https://img.shields.io/badge/stackoverflow-tarantool-orange.svg [stackoverflow-url]: https://stackoverflow.com/questions/tagged/tarantool [tarantool-url]: https://www.tarantool.io/en/ [license]: LICENSE [modules]: https://www.tarantool.io/en/download/rocks [queue]: https://github.com/tarantool/queue [vshard]: https://github.com/tarantool/vshard [cartridge]: https://github.com/tarantool/cartridge [mysql]: https://github.com/tarantool/mysql [pg]: https://github.com/tarantool/pg [connectors]: https://www.tarantool.io/en/download/connectors [download]: https://www.tarantool.io/en/download/ [building]: https://www.tarantool.io/en/doc/latest/dev_guide/building_from_source/ [issue-tracker]: https://github.com/tarantool/tarantool/issues [contributing]: CONTRIBUTING.md [awesome-list]: https://github.com/tarantool/awesome-tarantool/