- Jan 27, 2017
-
-
Vladimir Davydov authored
Add helpers to decode numbers and use them throughout the code.
-
- Jan 26, 2017
-
-
Vladislav Shpilevoy authored
-
Vladislav Shpilevoy authored
tuple_update/upsert was inlined in memtx_space and box_tuple_update/upsert.
-
Vladislav Shpilevoy authored
-
- Jan 25, 2017
-
-
Georgy Kirichenko authored
Fixes #1778
-
Vladislav Shpilevoy authored
Needed to ensure that update_optimize will work after implementation of common memory level for txv and vy_mems. Needed for #1908
-
Vladimir Davydov authored
Exactly the same piece of code (including comment) used by both dump and compact. Factor it out into a separate function.
-
Vladimir Davydov authored
All the three functions that need a write iterator, dump, compact, and split, reuse the same code for initialization of the write iterator. Factor it out into a separate function.
-
Roman Tsisyk authored
* Use SNPRINT() macro from util.h * Prettify formatting with missing schema (e.g. "user@localhost") * Add Lua test case
-
Georgy Kirichenko authored
Fixes #1924
-
Konstantin Osipov authored
1024MB is a lot for small devices and virtual machines. 256 MB is more than sufficient to play with a database, and will make life easier when trying the database for the first time.
-
- Jan 24, 2017
-
-
Alexandr Lyapunov authored
Closes #1692
-
Alexandr Lyapunov authored
Change order of traversal in merge iterator to direct, getting ready for avoiding reading from disk in case of cache hit
-
Vladimir Davydov authored
Required to check if a range should be coalesced with its neighbors.
-
Vladimir Davydov authored
- Do not unaccount mem from the index and unlink it from the scheduler in vy_range_delete(), because it violates encapsulation. Let's just delete it there and leave accounting to specialized helpers, as we do in case of runs. - Delete vy_range_delete_mem() helper, because it has nothing to do with range - it unaccounts a mem from the *index* and removes it from the *scheduler*, and then frees it. - Make vy_index_{acct,unacct}_range() helpers handle mems as well, as those are a part of each range. - Drop vy_index_acct_range_dumped() helper. Use unacct/acct pair instead. Hopefully, ths patch makes the code easier to follow.
-
Vladimir Davydov authored
Besides vy_run_total(), which returns the size of run data file on disk, there's also vy_run_size() which returns the size of run and page info structs in memory. The latter doesn't make much sense, so let's drop it and rename vy_run_total() to vy_run_size().
-
Vladimir Davydov authored
- Generate random keys to prevent compression. - Expect 2 ranges, not 4, because we do not split a range unless it was compacted. We could make the test generate 4 ranges by issuing snapshot more often, but that would increase execution time, so leave it as is.
-
Roman Tsisyk authored
Follow up a49673c9
-
Konstantin Osipov authored
* update the default level_size_ratio * rename level_size_ratio to run_size_ratio * rename max_runs_per_level to run_count_per_level
-
Vladimir Davydov authored
To follow the LSM tree design, group runs of the same range into levels. The division is ephemeral, it is recomputed after each dump and not stored in vy_range struct. The size of the first level is set to the largest run dumped since the last compaction. The size of each subsequent level is level_size_ratio times larger than previous one. When the number of runs at a level exceeds max_runs_per_level, all runs of the maximal level that exceeds the limitation as well as all runs and mems of preceding levels are compacted. max_runs_per_level and level_size_ratio are set in index config. By default, they equal to 2 and 10, respectively. Closes #1821
-
Roman Tsisyk authored
Fix naming convention.
-
- Jan 23, 2017
-
-
Roman Tsisyk authored
Follow up the previous patch.
-
Georgy Kirichenko authored
-
Roman Tsisyk authored
Add a workaround for suboptimal JIT performance on this test. See #2039
-
Vladimir Davydov authored
Currently, we create a run file and add a new run to the list even if it's empty and therefore there's no point in keeping it. Besides being pointless, this feature also stands in the way of multilevel compaction, where dumped runs are supposed to define the size of the first level of the LSM tree. If a run is empty, the math behind the level size computation does not work and should be special-cased, which look ugly. That said, let's just drop empty runs right away.
-
Vladimir Davydov authored
Currently, range compaction task always compacts all runs and mems, and so shares the code base with the split task. However, this is going to change once multi-level compaction is introduced, so we need to separate them.
-
Vladimir Davydov authored
Rename compact_list to split_list and fix the associated comments. This is a preparation for separating range compaction from split, which is necessary for multi-level compaction.
-
- Jan 20, 2017
-
-
Vladislav Shpilevoy authored
-
Vladislav Shpilevoy authored
-
- Jan 19, 2017
-
-
bigbes authored
-
Roman Tsisyk authored
Fixes #1766
-
Vladimir Davydov authored
Also, let's start allocating IDs from 0, not from 1.
-
Vladimir Davydov authored
Note, for the latch object to be suitable for the vy_log use case, we make it remember the fiber that locked it. While we are at it, let's also fix some comments.
-
bigbes authored
See #1488
-
bigbes authored
Closes #1963
-
Konstantin Osipov authored
-
- Jan 18, 2017
-
-
Vladimir Davydov authored
-
Vladimir Davydov authored
Also, log ERRINJ_VY_GC induced error.
-
Vladimir Davydov authored
- Do not print range id and index lsn as they don't make much sense any more (don't point to a file), only print range boundaries and space and index id. - In case of split print the key by which it is done. - Remove debug messages for range creation/deletion, because with the split key being printed on compaction they are redundant. - Also, while we are at cleaning up log messages, let's use say_warn() instead of say_info() for notifying the user that the scheduler was throttled, because it is rather abnormal.
-
Vladimir Davydov authored
Refactor vy_task_dump_new() to make it more straightforward. No functional changes intended.
-