- Description:
- [Mirror] Middleware for data
- Last Change:
- Clone URL:
Commit Briefs
test: replace testcase by luatest's testcases (ligurio/gh-xxxx-ctest-prerequisites)
The tests `array.test.lua` and `map.test.lua` requires remote Tarantool instance for running testcases. When test are executed by test-run.py it runs this Tarantool instance. The testcases that require remote instance were ported to luatest to make tests able to run with ctest. Required by patches for CTest support, because allows to execute aforementioned tests without test-run.py. NO_CHANGELOG=codehealth NO_DOC=codehealth NO_TEST=codehealth
test: remove testcase for tarantoolctl
The testcase `test_tarantoolctl_connect` tests `tarantoolctl`, but this tools has been deprecated an removed for a long time. The patch removes testcases as useless. Follows up commit 216b6243bba1 ("tools: remove tarantoolctl utility"). NO_CHANGELOG=codehealth NO_DOC=codehealth
test: fix minimal.test.lua
The patch set a patch to tarantool binary explicitly in the aforementioned test. NO_CHANGELOG=codehealth NO_DOC=codehealth
test: use built tarantool instead a system one
The test gh_5747_crash_multiple_args_test.lua use a tarantool binary that is available in a current PATH environment variable. In some cases, PATH may point to a system tarantool binary and this could be unexpected for those who run the test. The patch set a path to tarantool binary derived from a command-line used to run the test. NO_CHANGELOG=codehealth NO_DOC=codehealth
test: fix test filename
According to CMake policy CMP0110 whitespaces and other special characters are forbidden before CMake 3.19. This policy is triggered with patch for CTest support and breaks test generation: NO_WRAP The following name given to add_test() is invalid if CMP0110 is not set or set to OLD: `test/box-luatest/gh_7217_repeatable_{in, up}sert_memtx_tx_conflict_test.lua´ NO_WRAP The patch renames file without using whitespaces and special characters. Required for CTest support. Follows up commit 654cf498662c ("memtx: fix story delete statement list"). 1. https://cmake.org/cmake/help/latest/policy/CMP0110.html NO_CHANGELOG=codehealth NO_DOC=codehealth NO_TEST=codehealth
test: remove feedback_daemon.skipcond
The aforementioned skipcond file is specific for Travis CI because depends on environment variable `TRAVIS_JOB_ID`. We have moved to GHA for a long time, it seems this skipcond is not useful anymore. NO_CHANGELOG=codehealth NO_DOC=codehealth NO_TEST=codehealth
test: remove test in suite.ini
The test has been renamed in commit 16d6e9d2e272 ("console: remove ERRINJ_STDIN_ISATTY injection") and it is not used error injection anymore, so it was removed in suite.ini. NO_CHANGELOG=codehealth NO_DOC=codehealth NO_TEST=codehealth
cmake: remove duplicate definition
`TARANTOOL_BIN` is already defined in a parent `perf/CMakeLists.txt`, the patch removes duplicate definition. NO_CHANGELOG=codehealth NO_DOC=codehealth NO_TEST=codehealth
limbo: speed up synchronous transaction queue processing
This patch optimizes the process of collecting ACKs from replicas for synchronous transactions. Before this patch, collecting confirmations was slow in some cases. There was a possible situation where it was necessary to go through the entire limbo again every time the next ACK was received from the replica. This was especially noticeable in the case of a large number of parallel synchronous requests. For example, in the 1mops_write bench with parameters --fibers=6000 --ops=1000000 --transaction=1, performance increases by 13-18 times on small clusters of 2-4 nodes and 2 times on large clusters of 31 nodes. Closes #9917 NO_DOC=performance improvement NO_TEST=performance improvement
vclock: introduce `vclock_nth_element` and `vclock_count_ge`
Two new vclock methods have been added: `vclock_nth_element` and `vclock_count_ge`. * `vclock_nth_element` takes n and returns whatever element would occur in nth position if vclock were sorted. This method is very useful for synchronous replication because it can be used to find out the lsn of the last confirmed transaction - it's simply the result of calling this method with argument {vclock_size - replication_synchro_quorum} (provided that vclock_size >= replication synchro quorum, otherwise it is obvious that no transaction has yet been confirmed). * `vclock_count_ge` takes lsn and returns the number of components whose value is greater than or equal to lsn. This can be useful to understand how many replicas have already received a transaction with a given lsn. Part of #9917 NO_CHANGELOG=Will be added in another commit NO_DOC=internal
Branches
Tree
README.md
# Tarantool [![Actions Status][actions-badge]][actions-url] [![Code Coverage][coverage-badge]][coverage-url] [![OSS Fuzz][oss-fuzz-badge]][oss-fuzz-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 [oss-fuzz-badge]: https://oss-fuzz-build-logs.storage.googleapis.com/badges/tarantool.svg [oss-fuzz-url]: https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_tarantool/latest [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/