Skip to content
Snippets Groups Projects
  1. Sep 29, 2016
  2. Sep 28, 2016
  3. Sep 27, 2016
    • Konstantin Osipov's avatar
      tuple: in attempt to be more merge-compatible with 1.8, move code around · e5f67b90
      Konstantin Osipov authored
      Move the ANY index type to tuple_compare.cc to simplify merges with 1.8.
      Remove dead code.
      
      Collateral: fix a release mode warning in vinyl.
      e5f67b90
    • Nick Zavaritsky's avatar
      Wrap net.box.transport GC finalizer in pcall · e1e5d4ae
      Nick Zavaritsky authored
      Raising errors from GC finalizers is apparently not supported.
      The error was due to the finalizer running in net.box.transport
      worker fiber by chance. Hence the fiber was attempting to cancel thyself.
      
      Normal Lua execution is interleaved with GC work, that's why they call
      it incremental GC.
      e1e5d4ae
    • 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
  4. Sep 26, 2016
Loading