Commit Briefs

d3db2f9d5d Sergey Bronnikov

tutorial: use https links (ligurio/force-https-in-tutorial, origin/ligurio/force-https-in-tutorial)

NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal


b3f462bf44 Vladimir Davydov

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


e6e7342397 Yaroslav Lobankov

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


ede831d317 Vladimir Davydov

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


9cf0355556 Vladimir Davydov

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


4bf52367a7 Aleksandr Lyapunov

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


0dc60b5fd1 Yaroslav Lobankov

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


a6818accc4 Kirill Yukhin

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


22fc1f94b4 Kirill Yukhin

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


cb6fc4a302 Yaroslav Lobankov

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



























































































Tags

Tree

.editorconfigcommits | blame
.gdbinitcommits | blame
.github/
.gitignorecommits | blame
.gitlab.mkcommits | blame
.gitmodulescommits | blame
.luacheckrccommits | blame
.travis.mkcommits | blame
AUTHORScommits | blame
CMakeLists.txtcommits | blame
CONTRIBUTING.mdcommits | blame
Doxyfilecommits | blame
Doxyfile.API.incommits | blame
FreeBSD/
LICENSEcommits | blame
README.FreeBSDcommits | blame
README.MacOSXcommits | blame
README.OpenBSDcommits | blame
README.mdcommits | blame
TODOcommits | blame
apk/
asan/
changelogs/
cmake/
debian/
doc/
extra/
perf/
rpm/
rump/
src/
static-build/
test/
test-run$commits | blame
third_party/
tools/

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/