- Jul 31, 2017
-
-
Roman Tsisyk authored
Since 2ab97c01 "introduce vy_stmt_env and vinyl_max_tuple_size option" Vinyl's memory is limited both by `struct quota` and `struct vy_quota`. This causes sporadic allocation errors because `vy_quota` may exceed in some cases. Closes #2629
-
Roman Tsisyk authored
sysconf(_SC_IOV_MAX) can return -1 on glibc 2.25.90. Closes #2637
-
- Jul 30, 2017
-
-
Vladislav Shpilevoy authored
We do not store id = 0 in xlog, yet when parsing the log file expect space id to be present in a request (a mandatory key). So a space with id 0 is not possible to recovery from a snapshot. Simply reserve id 0 to avoid the problem.
-
- Jul 28, 2017
-
-
Vladimir Davydov authored
region_truncate() is not required there as box_index_get() cleans up fiber()->gc anyway - see txn_commit_ro_stmt(). Actually, it's even dangerous: if fiber_gc() called by box_index_get() happens to free memory, region_truncate() will crash on the assertion: region_truncate: Assertion `region_used(region) >= used' failed.
-
Konstantin Osipov authored
We will be adding one more key def (so called cmp_def) to index_def shortly, meanwhile convert index_def::key_def to a pointer, to ease maintenance of the two key defs..
-
Roman Tsisyk authored
Refactor dependencies of internal files to avoid linking libbox by unit tests. Needed for unit tests #1873.
-
Roman Tsisyk authored
Avoid dependency on memtx_tuple in SysviewEngine. Needed for unit tests #1873.
-
- Jul 27, 2017
-
-
Konstantin Osipov authored
In memtx, key_def is what a user has defined. Follow the same style in vinyl.
-
Konstantin Osipov authored
In vinyl, key_def variable name stands for a key definition extended with the primary key parts. We will begin using the same technique in memtx, so introduce a consistent naming: use the word "key_def" for the original key def as defined by the user, and cmp_def for the key def used to compare tuples, i.e. extended with primary key parts to produce a stable compare order. Begin with introducing the name change in vy_mem.[hc] Continue on to vy_index, vy_run, vy_range, vy_slice, vy_stmt, and vy_write/read iterators.
-
Roman Tsisyk authored
Add missing #include <trivia/config.h> Fixes #2635
-
Georgy Kirichenko authored
Do not allow ddl if fired from on_replace trigger. Fixes #1968
-
Georgy Kirichenko authored
Tarantool must not crash if space:format called twice during snapshot. Fixes #2336
-
Vladimir Davydov authored
Swallowing errors while reading a vylog file is extremely dangerous, because vylog files contain metadata layout. Any error in vylog might result in a data corruption beyond recovery in the future. So we must fail recovery/snapshot if we fail to read the current vylog file. If this happens, data can still be restored by reading the previous vylog file or by recovering vylog using write iterator (the latter is yet to be implemented).
-
Roman Tsisyk authored
Rename methods to match the common naming scheme. Follow up #2619 and #2507
-
Roman Tsisyk authored
No semantic changes. Follow up #2619 and #2507
-
Roman Tsisyk authored
* Add proper checks for premature end of request * Convert to C Follow up #2619
-
- Jul 26, 2017
-
-
Vladislav Shpilevoy authored
Remove function_name, expr, user_name from xrow.c, from sruct request body_map. Part of #2619
-
Vladislav Shpilevoy authored
In order of splitting struct request in more specific structures, the struct auth_request can be used for authentication.
-
Vladislav Shpilevoy authored
Create a special request type for call/eval requests. Struct call_request is much lighter than struct request, and its decoding is faster for call/eval request. The new struct call_request allows call/eval without parameters. In a future we are able to add into struct call_request more members and merge it with box_function_ctx and lua_function_ctx. Part of #2619
-
Roman Tsisyk authored
Inline request_normalize_ops() to vinyl.c. No semantic changes. Follow up #2507
-
Vladislav Shpilevoy authored
In order to create struct call_request it is neccessary to move call/eval logic into separate call.c/.h files to avoid adding call_request into more common box.h. Part of #2619
-
- Jul 25, 2017
-
-
Vladislav Shpilevoy authored
-
Vladislav Shpilevoy authored
-
Alexandr Lyapunov authored
Fix a bug in restoration LE/LT when last_stmt is not in the mem (it came from another mem or run). Fix a bug in restoration after EOF reached. Add a unit test of mem_iterator_restore. Fixes #2614
-
Georgy Kirichenko authored
Pass func address via asm immediate arg instead of literal constant. Follow up #2103
-
Roman Tsisyk authored
* Pass sync as xrow_header_encode() argument, as suggested by Kostja. * Add SYNC support to Lua xrow reader. * Add the test cases. Follow up #2334
-
- Jul 24, 2017
-
-
Roman Tsisyk authored
Patch "d130255e" disabled encoding of SYNC in xrow_encode_header() to avoid writing SYNC value into the disk. Unfortunally, this change has also broken all other users of xrow_encode_header(), such as replication (JOIN/SUBSCRIBE requests). Uncomment row->sync encoding in xrow_header_encode() and hack xlog_write_row() to avoid writing SYNC into WAL. Closes #2334
-
Vladislav Shpilevoy authored
See #2334
-
Vladimir Davydov authored
Space truncation modifies space cache, so we must serialize it with alter and other truncations, otherwise an attempt to truncate the same space concurrently from different fibers will lead to a crash.
-
Georgy Kirichenko authored
Remove libbfd from dependencies and use libunwind for stack traces. Closes #2103
-
Vladimir Davydov authored
Closes #2288
-
- Jul 21, 2017
-
-
Konstantin Osipov authored
-
Vladislav Shpilevoy authored
-
Vladislav Shpilevoy authored
-
Vladislav Shpilevoy authored
Now write iterator see only oldest vlsn. Because of it the write iterator can not skip or merge or squash newer statements, even if they are not used by any transactions. For example, consider one key and its lsns: LSNs: 10 20 30 40 50 Read Views: * * * Statements with lsn 40 can be merged with 50; 20 can be merged with 30. Old write iterator will merge nothing in that case, because there is oldest vlsn = 10. Lets allow the write iterator to see all read views, instead of only oldest. Such write iterator can merge multiple lsns subsequences of each key. For the example above it will merge in the following way: LSNs: 10 20 30 40 50 Read Views: * * * Merge and \__/\_________/\________/ return: merge, merge, merge and return each merged result. For the considered case the difference is 3 result statements instead of 5 by the old write iterator. Closes #1920 Closes #2502 Closes #1824 Closes #2578
-
Roman Tsisyk authored
Follow up #2507, needed fir unit tests
-
- Jul 20, 2017
-
-
Vladislav Shpilevoy authored
Closes #2507
-
Vladislav Shpilevoy authored
Part of #2507
-
Roman Tsisyk authored
Closes #2543
-
Roman Tsisyk authored
Disable background and usermode when NOTIFY_SOCKET is set. Closes #2538
-