- Description:
- [Mirror] Middleware for data
- Last Change:
- Clone URL:
Commit Briefs
Revert "third_party: update libcurl from 8.3.0 to 8.4.0" (ligurio/revert-curl-bump-8.4.0)
This reverts commit 0ea1ba877b8e62e0acb558b55623d93bf58a0e1f. Bump is reverted due to regression in Curl 8.4.0. Needed for #9283 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump NO_CHANGELOG=libcurl submodule bump
replication: relax rules box.cfg.*_name
We decided to allow underscore in names to provide easier support for many existent installations. Closes #9148 NO_CHANGELOG=no updates to the feature description NO_DOC=update existent doc tickets 3466, 3467, 3468
iproto: clean accounting of processed messages in input buffers
Message body resides in one of rotating input buffers for the connection. When we don't need message body anymore we advance the reading end of the input buffer by the size of the message. But message processing order can differ from the order of messages in the wire. Thus this advancing a bit hacky. Let's instead mark the data in the input buffer as read when we process all the messages in the input buffer. We cannot reuse the buffer any earlier anyway. Follow-up #7327 NO_TEST=refactoring NO_CHANGELOG=refactoring NO_DOC=refactoring
misc: use ibuf API to discard/allocate/consume
The API functions additionally poison related data in ASAN build. Follow-up #7327 NO_TEST=refactoring NO_CHANGELOG=refactoring NO_DOC=refactoring
small: bump version
New commits: - ibuf: change ibuf_consume_before argument type to const void ptr - ibuf: introduce ibuf_consume/ibuf_consume_before API - matras: fix matras_view::block_count overflow - slab: fix uint32_t overflow in slab_capacity - debug: add assertions of ASAN version to non ASAN - ibuf: add ibuf_discard - slab: fix NULL ptr deref in assertion in slab_get NO_TEST=submodule bump NO_CHANGELOG=submodule bump NO_DOC=submodule bump
test: increase expected selectG execution time for debug ASAN build
The test is quite a flacky in debug ASAN CI workflow. The issue is test check upper boundary of it's execution time. I run many instances of this test on in parallel and got average time of 40s for memtex and 70s for vinyl. The time quota is already changed by the commit 84cb1e049272 ("sql: increase time quota for selectG test on vinyl") for laptops with HDD. I did not check execution time for HDD though. I guess the bottleneck for debug ASAN is CPU. Follow-up #7327 NO_CHANGELOG=internal NO_DOC=internal
replication: improve name conflict error message
The error message was not quite clear in case instance has any name defined and config provides a different one. Closes #8692 NO_CHANGELOG=no previous release with this error message NO_DOC=not needed since no changes to the public API
fiber: use alternative signal stack
We install a signal handler that prints the stack trace on SIGSEGV, SIGBUS, SIGILL, SIGFPE. The signal handler uses the current stack. This works fine for most issues, but not for stack overflow, because the latter makes the current stack unusable, leading to a crash in the signal handler. Let's install an alternative signal stack in each thread so that we can print the stack trace on stack overflow. Note that we skip this for ASAN because it installs its own signal stack. (Installing a custom stack would result in a crash.) Closes #9222 NO_DOC=bug fix
ci: dockerize linux workflows
Modify Linux workflows for running jobs inside Docker containers. It helps isolate the building and testing environment from the runner's system and other workflows. Closes tarantool/tarantool-qa#327 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
util: introduce the ALWAYS_INLINE macro
The macro expands to inline keyword and always_inline attribute if it's supported. This attribute forces the compiler to inline the function if it's possible and raise a diagnostic if it's not. Needed for tarantool/tarantool-ee#580 NO_DOC=internal NO_TEST=internal NO_CHANGELOG=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/