- Description:
- [Mirror] Middleware for data
- Last Change:
- Clone URL:
Commit Briefs
test/fuzz: enable sysprof (ligurio/gh-8594-enable-sysprof, origin/ligurio/gh-8594-enable-sysprof)
Follows up #8594 NO_CHANGELOG=testing NO_DOC=testing NO_TEST=testing
box: introduce space:stat()
See the doc bot request for the description. Benchmark results: NO_WRAP $ taskset 0x2 compare.py benchmarks ./memtx.perftest.old ./memtx.perftest.new \ --benchmark_min_warmup_time=10 \ --benchmark_repetitions=30 \ --benchmark_report_aggregates_only=true \ --benchmark_filter=TreeReplaceRandomExistingKeys [...] Comparing ./memtx.perftest.old to ./memtx.perftest.new Benchmark Time CPU Time Old Time New CPU Old CPU New ------------------------------------------------------------------------------------------------------------------------------------------------ MemtxFixture/TreeReplaceRandomExistingKeys_mean +0.0097 +0.0097 1073 1084 1073 1084 MemtxFixture/TreeReplaceRandomExistingKeys_median +0.0075 +0.0075 1062 1070 1062 1070 MemtxFixture/TreeReplaceRandomExistingKeys_stddev -0.1207 -0.1208 56 49 56 49 MemtxFixture/TreeReplaceRandomExistingKeys_cv -0.1291 -0.1292 0 0 0 0 NO_WRAP Closes #6762 @TarantoolBot document Title: Document `space:stat()` Product: Tarantool Since: 3.0 Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/ space_object:stat() - Get statistics on the memory usage Returns a table with the cumulative statistics on the memory usage by tuples in the space. The statistics is grouped by arena types: "memtx" or "malloc". For a detailed description of each field see `tuple_object:info()`. Note: The statistics is collected only for memtx storage engine. For other types of spaces, an empty table is returned. Example: ``` tarantool> box.space.test:stat() --- - tuple: memtx: data_size: 5100699 header_size: 96 field_map_size: 40 waste_size: 143093 malloc: data_size: 18850077 header_size: 70 field_map_size: 28 waste_size: 0 ... ```
box: introduce tuple:info()
See the doc bot request for the description. Part of #6762 NO_CHANGELOG=next commit @TarantoolBot document Title: Document `tuple:info()` Product: Tarantool Since: 3.0 Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_tuple/ tuple_object:info() - Get information about the tuple Returns a table with the following fields: * data_size - Size of the MessagePack data in the tuple. This number equals to number returned by `tuple_object:bsize()`. * header_size - Size of the internal tuple header. * field_map_size - Size of the field map. Field map is used to speed up access to indexed fields of the tuple. * waste_size - The amount of excess memory used to store the tuple in mempool. * arena - Type of the arena where the tuple is allocated. Possible values are: "memtx", "malloc", "runtime".
perf: add TreeReplaceRandomExistingKeys to memtx benchmark
It is similar to TreeGetRandomExistingKeys, but performs box_replace() instead of box_index_get(). Needed for #6762 NO_DOC=benchmark NO_TEST=benchmark NO_CHANGELOG=benchmark
sql: fix segmentation fault when JOIN uses USING
Before this patch, nameInUsingClause() expected old_col to be non-NULL, but this may not be the case. This patch fixes this feature accordingly. Follow-up #4467 NO_DOC=bugfix NO_CHANGELOG=feature was not released yet
sql: introduce function default values
This patch replaces the SQL mechanism for setting expression default values with the BOX mechanism. Closes #8793 @TarantoolBot document Title: field default value in SQL SQL now uses the default mechanism for BOX fields. The main difference visible to the user is that now all NULL values explicitly inserted into a field with a default value will be replaced with a default value, which is different from the original SQL behavior. Additionally, default values are now inserted instead of NULL after the SQL BEFORE INSERT trigger but before the BOX BEFORE INSERT trigger. Previously, SQL default values were inserted before the SQL BEFORE INSERT trigger.
sql: separate function creation code
This patch moves the VDBE function creation code from vdbe_emit_ck_constraint_create() to the new function vdbe_emit_create_function(). Because of this, the error message changes slightly. NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring
sql: rework literal as default value in SQL
This patch replaces the SQL mechanism for setting literal default values with the BOX mechanism. Part of #8793 NO_DOC=will be added later NO_CHANGELOG=will be added later
sql: do not accept not numbers with +/- as default
After this patch, non-numeric values will not be accepted by the parser as default values if they have '+' or '-' before them. NO_DOC=will be added later
box: allow SQL_EXPR functions in defaults
After this patch SQL_EXPR functions will be allowed to set as default values. Part of #8793 @TarantoolBot document Title: SQL_EXPR functions as default values SQL_EXPR functions can now be set as default values. Note that all arguments to the SQL_EXPR functions will be replaced by the space field 'default' value. This only matters for the SQL_EXPR used as default from Lua, since in SQL it is not allowed to have arguments in the default expression.
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/