- Aug 09, 2017
-
-
Roman Tsisyk authored
Needed for #910
-
Roman Tsisyk authored
Get rid of unprotected usage of Lua API. Needed for #910
-
Roman Tsisyk authored
Needed for #910
-
Roman Tsisyk authored
Optimize error_log(diag_last_error(diag_get())) pattern.
-
- Aug 08, 2017
-
-
Konstantin Osipov authored
Create memtx format format in memtx engine, and vinyl format in vinyl engine. This is a pre-requisite patch for gh-2476 (predictable memtx tree iteration).
-
Konstantin Osipov authored
The space may have a state, we should commit alter of the new space object, not old one.
-
Konstantin Osipov authored
We can always use disk_format, in case of a single key space it is identical to mem_format.
-
Roman Tsisyk authored
-
- Aug 07, 2017
-
-
Georgy Kirichenko authored
Add xlog_cursor crc, meta parsnig and reading error injections. Add vy run data reading injection, forward injection from vy run data reading to xlog. See #1610
-
- Aug 04, 2017
-
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Fixes gh-2660. Perserve triggers during truncate and rollback. A test case to follow in a separate commit.
-
- Aug 03, 2017
-
-
Konstantin Osipov authored
-
Roman Tsisyk authored
Fix inaccurate patching by ed412cd9 commit in LuaJIT.
-
Roman Tsisyk authored
Add an option to enable LuaJIT's GC64 mode and enable this option by default on OS X. Closes #2643
-
Roman Tsisyk authored
LuaJIT has some configuration flags which can be switched via -DLUAJIT_USE_OPTION defines, e.g. USE_ASAN or USE_VALGRIND. Before this patch these definitions were added by CMake to XCFLAGS variable and passed to LuaJIT's Makefile. However, some of these flags also affect the content of lj_xxx.h internal header files, which were included by Tarantool (see utils.c) and compiled WITHOUT proper flags. This situation might lead to inconsistent ABI between compiled libluajit.a and Tarantool. This patch adds all LUAJIT_USE_XXX defines to CMake's COMPILE_FLAGS in order to enable these flags globally, then parses COMPILE_FLAGS and adds them to LuaJIT's XCFLAGS. Needed for #2643
-
Vladislav Shpilevoy authored
Make tuple_format referencing API similar to other refable objects.
-
- Aug 02, 2017
-
-
Konstantin Osipov authored
Rename vy_index membes, add comments.
-
Konstantin Osipov authored
Move a comment. Now that the index def list is ordered, we don't have to treat the primary key in a special way.
-
Konstantin Osipov authored
Preserve the primary key position (first) in the index def list when creating a list of index definitions during alter. This simplifies the code in space_new() and down the call stack and makes it easier to remove space->format.
-
Konstantin Osipov authored
We plan to remove space->format altogether and store it in the engine. This is a preparatory patch.
-
Roman Tsisyk authored
Get rid of struct space dependency in vy_index. Needed for unit tests. In context of #2090
-
Roman Tsisyk authored
Needed for unit tests. In context of #2090
-
Vladislav Shpilevoy authored
If the iterator type is ITER_LE and a run_iterator can not find a start page (all page min_keys are >= select key), it would iterate over all pages starting from the last. Fix it by setting search_ended flag at the page search phase, before calling next_key. Closes #2614
-
Vladislav Shpilevoy authored
And fix a bug in vy_cache_iterator_restore, which could ignore restore to a previous statement. Needed for #2614
-
- Aug 01, 2017
-
-
Konstantin Osipov authored
Implement box.session.type() which returns one of the: applier, background, repl, console, binary, depending on the source of box queries. Add tests.
-
Vladislav Shpilevoy authored
-
Roman Tsisyk authored
cfg_XXX() methods must not be used outside vy_conf. Follow up #2253
-
Georgy Kirichenko authored
Re-create .index files in case of vy_run_recover error(). Old file will be deleted and a new index file will be created. Closes #2253 Closes #2395
-
- Jul 31, 2017
-
-
Vladimir Davydov authored
recover_remaining_wals() doesn't proceed to the next xlog until the current one is finalized (EOF marker is written). As a result, if an xlog wasn't finalized for some reason (IO error occurred or tarantool was killed in cold blood with SIGKILL), replication will stall on the unfinished xlog forever. To preclude that, let's differentiate WAL write and rotation in WAL watcher and force recover_remaining_wals() rescan the WAL directory on any WAL rotation so that it will continue to the next WAL even if the current one wasn't properly finalized. In case of hot standby, we can't reliably detect WAL rotation (e.g. on Mac OS inotify may not work) so also rescan the WAL directory every wal_dir_rescan_delay seconds. Closes #2294
-
Vladimir Davydov authored
- Handle cord_costart() errors properly. - Don't use scoped_guard as we don't actually need it there. - Drop relay_destroy() and rename relay_create() to relay_init().
-
Vladimir Davydov authored
Instead of notifying relay about new WALs with ev_async, establish a cbus connection between WAL and each relay and send cbus messages after wal_write. This is more flexible, because unlike ev_async we can pass extra information along with cbus messages, e.g. LSN or event mask. Closes #2275
-
Vladimir Davydov authored
-
Vladimir Davydov authored
This patch introduces cbus_pair() and cbus_unpair() helpers to pair/unpair two existing cbus endpoints in one function call. cbus_pair() creates pipes from the caller's cord to the given destination and back. It blocks the caller until both pipes are created. The caller may specify a callback to be called at the destination right after the pipe to the source has been created, which may be useful for preparing the destination to receiving messages from the source. cbus_unpair() initiates destruction of pipes created with cbus_pair() and blocks the caller until destruction is complete. Since there may be messages queued at the destination endpoint when this function is called, before proceeding to pipe destruction this function flushes all messages at the destination by sending an empty message from the source to the destination and back. The caller may specify a callback to be invoked by this message at the destination endpoint. This can be used to notify the destination that the channel is about to be destroyed and it must stop generating new messages.
-
Georgy Kirichenko authored
Use local unw_context variable instead of passing a pointer to a backtrace function.
-
Konstantin Osipov authored
We're going to need a key def of secondary key augmented with key parts from the primary key in memtx engine as well. Initialize it when creating struct index_def. This patch reverts f42e1c15, i.e. the fix for gh-2386 (box_index_key_def() as part of module API). Exporting this function to C API was premature. Luckily it is not used anywhere except 1.8. For 1.8 this patch introduces a faster function, space_index_key_def(), which takes a pointer to space rather than space id.
-
Konstantin Osipov authored
In the next patch I plan to add one more parameters to index_def constructor, namely the primary key def. Refactor the constructor to expect a fully constructed key_def as an argument. The patch happens to simplify the code in schema.cc, cluttered by index_def vs. key_def split.
-
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.
-