Skip to content
Snippets Groups Projects
  1. Sep 27, 2016
    • Roman Tsisyk's avatar
      5e1606fe
    • Vladimir Davydov's avatar
      vinyl: fix warnings if compiled with NDEBUG · 69427ded
      Vladimir Davydov authored
      src/box/vinyl.c: In function ‘vy_range_write_run’:
      src/box/vinyl.c:2365:1: error: label ‘create_failed’ defined but not used [-Werror=unused-label]
       create_failed:
       ^
      src/box/vinyl.c: In function ‘vy_task_compact_execute’:
      src/box/vinyl.c:3190:31: error: suggest braces around empty body in an ‘if’ statement [-Werror=empty-body]
                 rc = -1; goto out;});
                                     ^
      src/box/vinyl.c:3208:1: error: label ‘unlink_error’ defined but not used [-Werror=unused-label]
       unlink_error:
       ^
      src/box/vinyl.c: In function ‘vy_mem_iterator_close’:
      src/box/vinyl.c:6829:26: error: unused variable ‘itr’ [-Werror=unused-variable]
        struct vy_mem_iterator *itr = (struct vy_mem_iterator *) vitr;
                                ^
      src/box/vinyl.c: In function ‘vy_txw_iterator_close’:
      src/box/vinyl.c:7087:26: error: unused variable ‘itr’ [-Werror=unused-variable]
        struct vy_txw_iterator *itr = (struct vy_txw_iterator *) vitr;
                                ^
      69427ded
    • Vladimir Davydov's avatar
      vinyl: patch holes in index on recovery · 9532f5be
      Vladimir Davydov authored
      Successful compaction may create a range w/o tuples, and currently we
      don't store empty range files on disk. As a result, such a range won't
      be loaded on recovery, which breaks the index tree invariant (prev->end
      equals next->begin). Hence we must silently create a new range for each
      gap found on recovery.
      9532f5be
    • Vladimir Davydov's avatar
      vinyl: do not remove empty range on split · 1ff57e79
      Vladimir Davydov authored
      Successful merge+split may result in ranges w/o tuples. Before commit
      559102a7 ("vinyl: store range lower and upper bounds on disk") it was OK
      to delete such ranges, because there was no range->end. To illustrate
      this, suppose compaction splits a range as follows:
      
        [A, C) => [A, B) + [B, C)
      
      If range [B, C) turns out to be empty, then we could simply drop it as
      all inserts would go to range [A, B) and as B was not stored anywhere,
      it would effectively become range [A, C).
      
      After the above-mentioned commit, however, removal of range [B, C)
      breaks the index invariant that for each two adjacent ranges prev->end
      always equals next->begin. This, in turn, can result in data loss in
      case [A, B) gets split again, as B will be used to break the run write
      loop (see vy_range_compact_execute()) which is premature since there may
      be tuples >= B.
      
      That being said, let's remove this small optimization altogether.
      1ff57e79
    • Vladimir Davydov's avatar
      vinyl: warn about stale and partial ranges on recovery · ca0445de
      Vladimir Davydov authored
      A "stale" range is an old range file left after compaction. A "partial"
      range is a range file left after failed split. Although we can handle
      such files, they should not normally exist in the index directory, so
      let's warn about their presence on recovery.
      ca0445de
    • Vladimir Davydov's avatar
      Fix vinyl/compact test · 524789c0
      Vladimir Davydov authored
      The vinyl/compact issues two snapshots and expects that there will be
      two runs after it, then it keeps waiting until compaction merges them.
      There is a race condition intrinsic to this test - compaction might have
      finished before the test checks that there are exactly two runs. To
      eliminate it, let's set the test index's compact_wm parameter to 3 and
      add one more snapshot to trigger compaction.
      
      Since currently, it's impossible to modify vinyl options dynamically,
      this patch moves compact_wm to index options where page_size and
      range_size reside.
      
      Closes #1758
      524789c0
    • Konstantin Osipov's avatar
      3b7e4b46
    • Roman Tsisyk's avatar
      77c1da0c
    • Nick Zavaritsky's avatar
      899bc6d8
    • Alexandr Lyapunov's avatar
    • Roman Tsisyk's avatar
      Fix clock_gettime() detection on Linux · cc9ddd75
      Roman Tsisyk authored
      Regression by d36ba279
      cc9ddd75
    • Roman Tsisyk's avatar
      Follow up 3a3f705b · 9ff0ec23
      Roman Tsisyk authored
      9ff0ec23
  2. Sep 26, 2016
Loading