- Aug 15, 2017
-
-
Georgy Kirichenko authored
This patch adds ability to reload C procedures on the fly without downtime. To achive that, Tarantool loads a new copy of shared library and starts routing all new request to the new version. The previous version remains active until all started calls are finished. All shared libraries are loaded with RTLD_LOCAL, therefore two or more copies can co-exist without any problems. From now box loads all external modules via an unique symlink to avoid caching inside dlopen(). If one of some module function is reloaded then all other functions from this module will be reloaded. Reviewed and heavily patched by Roman Tsisyk. Closes #910
-
Roman Tsisyk authored
rbtree_next() has log(N) complexity to advance to the right subtree. The new iterators saves the iteration path during descent. Closes #1668
-
Roman Tsisyk authored
panic() from non-main thread calls exit(), which fires at_exit triggers, which try to destroy TX data. Closes #2686
-
Alexandr Lyapunov authored
Memtx checkpointing subsystem uses createReadViewForIterator and destroyReadViewForIterator methods of Index. So these methods are used only for ALL iterators before actual iteration starts. * no other cases of these methods using are covered by tests, for example EQ iteration or using in the middle of iteration. * creation of general read view iterator is an overkill for such a simple case as ALL iterator. * memtx read view iterators are incompatible with lazy lookup and restoration patterns that are necessary for implementing stable iterators. Introduce new createSnapshotIterator method that would create a special iterator for checkpointing and remove misleading createReadViewForIterator and destroyReadViewForIterator methods.
-
Alexandr Lyapunov authored
Make memtx tree iterator lookup lazy - in the first 'next' call. It makes the iterator similar to vinyl in case when a new tuple is inserted between a moment of iterator creation and a moment of first tuple retrieval. Make the inserted tuple visible to the iterator. Store last returned tuple in the iterator and if the tree is changed between iterations - search for the stored tuple and continue iteration from the found position. This will make the iteration stable and every next iteration will return proper (next or previous) tuple. Fix #1796
-
Alexandr Lyapunov authored
Originally bps_tree had only lower/upper_bound methods for retreaving iterators by given key. Sometimes it is necessary to find an iterator position by a value that is (can be) stored in a tree. For example memtx tree index holds a bps_tree with (struct tuple *) values and (const char *) key. lower/upper_bound methods used (const char *) as an argument, but for stable iterators we need to find a position in the tree by (struct tuple *) value. Implement bps_tree methods that will allow to find an iterator by a value (element) in the tree. Needed for #1796
-
Alexandr Lyapunov authored
Move memtx_tree_compare_key definition to header file to allow compiler to inline it. Get rid of memtx_tree_comprare wrapper, use tuple_compare instead. Comment the code.
-
- Aug 14, 2017
-
-
Roman Tsisyk authored
xlog is used from Vinyl and Lua. Convert this library to C just for sanity. Closes #2335
-
Roman Tsisyk authored
* Move XlogError to error.cc * Move XlogGapError to recovery.cc * Replace tnt_error() with diag_set() * Remove scoped_guard from xdir_scan() A part of #2335
-
Konstantin Osipov authored
Update test results (changes not committed in scope of gh-2663).
-
Georgy Kirichenko authored
Add a configuration option to configure the number of EIO worker threads. Default value is 4. Fixes #2663
-
Roman Tsisyk authored
Follow up the previous commit See #2678
-
Georgy Kirichenko authored
Fix regression after 9b811605 Closes #2678
-
Victor Popov authored
Using %I is incorrect, because it is a result of unescaping, but escaping never occured. Even if we would use escaping inside tarantoolctl, it would be inconvenient to use systemctl to operate instances.
-
- Aug 11, 2017
-
-
Roman Tsisyk authored
Neeed for dynamic configuration. + Rename vy_update_options() to vy_set_timeout(). In context of #2667
-
Georgy Kirichenko authored
Fix unhandled error in applier.cc.
-
- Aug 10, 2017
-
-
Konstantin Osipov authored
-
Vladimir Davydov authored
The test spawns a number of test threads each of which randomly connect to, disconnect from, and send messages to its neighbors.
-
Vladimir Davydov authored
cbus_endpoint->n_pipes is incremented from a thread connecting to the endpoint (see cpipe_create()) while it is decremented from the thread hosting the endpoint (see cbus_endpoint_poison_f()). While it is protected with cbus->mutex in the former case, it is decremented locklessly, which can result in a race leading to n_pipes never reaching 0 and hence cbus_endpoint_destroy() never returning. Fix this by taking cbus->mutex for decrementing the variable.
-
alyapunov authored
Now memtx_tree sorts tuple by key_def and (if tuples are equal) by pointer to tuple. That makes the order of selection unpredictable and mutable. Order secondary non-unique tree index first by secondary index key_def and then by primary key_def. Remove is_unique check from memtx tree comparator since the internal order is always unique. Fix #2476
-
Konstantin Osipov authored
Key definitions are used in engines, do not pull it out from under engine feet when performing an alter.
-
Alexandr Lyapunov authored
Since the secondary indexes order will be able to depend on the order in the primary index, we need to rebuild them if the primary index was changed. Only non-unique tree indexes depend on the primary index, so rebuild only non-unique tree indexes. Add a test. Needed for #2476
-
Konstantin Osipov authored
In the following patch I will need to alter struct alter_space in AlterSpaceOp constructor. Pass alter_space in.
-
Konstantin Osipov authored
auth.test.lua was not converted to the new box.cfg{} options and was printing warnings to stdout, which would confuse the built-in tap detector in the harness. Clean up everything after the test.
-
Georgy Kirichenko authored
Fixes #2673
-
Georgy Kirichenko authored
VinylIndex may be freed before vinyl iterator has been closed. Vinyl iterator uses only an `env` item from corresponding VinylIndex, so store environment pointer for iterators for direct use. See #2673
-
Georgy Kirichenko authored
vy_index may be deleted when cursor still exists, so reference vy_index for cursor lifetime. See #2673
-
Vladislav Shpilevoy authored
Implement vy_cache_iterator_step, add comments.
-
Vladislav Shpilevoy authored
Cache_iterator_next_key returns the same tuple as on previous step if the cache version was changed. Closes #2661
-
- Aug 09, 2017
-
-
Roman Tsisyk authored
Mixing C-style error handling and C++ exceptions can lead to serious problems. In context of #910
-
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
-