Skip to content
Snippets Groups Projects
  1. Jun 27, 2017
    • Vladimir Davydov's avatar
      vinyl: add per-index txw statistics · 44305191
      Vladimir Davydov authored
      This patch adds the following counters to index.info:
      
        txw
          count               # number of statements in the TX write set
            rows
            bytes
          iterator
            lookup            # number of lookups in the TX write set
            get               # number of statements returned by the iterator
              rows
              bytes
      
      Needed for #1662
      44305191
    • Vladimir Davydov's avatar
      vinyl: add per-index cache statistics · 1bb7a8b2
      Vladimir Davydov authored
      This patch adds the cache section to index.info with the following
      counters in it:
      
        cache
          rows                # number of tuples in the cache
          bytes               # cache memory size
          lookup              # lookups in the cache
          get                 # reads from the cache
            rows
            bytes
          put                 # write to the cache
            rows
            bytes
          invalidate          # overwrites in the cache
            rows
            bytes
          evict               # evictions due to memory quota
            rows
            bytes
      
      Needed for #1662
      1bb7a8b2
    • Vladimir Davydov's avatar
      vinyl: do not (ab)use vy_quota for vy_cache · 8e5834b8
      Vladimir Davydov authored
      Using vy_quota, which was implemented to support watermarking,
      throttling, timeouts, for accounting cached tuples is an overkill.
      Replace it with mem_used and mem_quota counters.
      8e5834b8
    • Vladimir Davydov's avatar
      vinyl: add per-index disk write statistics · 542ce685
      Vladimir Davydov authored
      This patch adds the following counters to the disk section index.info:
      
        dump                  # dump statistics:
          count               #   number of invocations
          in                  #   number of input statements
            rows
            bytes
          out                 #   number of output statements
            rows
            bytes
      
        compact               # compaction statistics:
          count               #   number of invocations
          in                  #   number of input statements
            rows
            bytes
          out                 #   number of output statements
            rows
            bytes
      
      Needed for #1662
      542ce685
    • Vladimir Davydov's avatar
      vinyl: add per-index mem and run iterator stat · 8105cec7
      Vladimir Davydov authored
      Replace box.info.vinyl().performance.iterator.{run,mem} global counters
      with the following per index counters:
      
        memory
          iterator
            lookup            # number of lookups in the memory tree
            get               # number of statements returned by mem iterator
              rows
              bytes
      
        disk
          iterator
            lookup            # number of lookups in the page index
            get               # number of statements returned by run iterator
              rows
              bytes
      
            bloom             # number of times bloom filter
              hit             #   allowed to avoid a disk read
              miss            #   failed to prevent a disk read
      
            read              # number of statements actually read from disk
              rows
              bytes
              bytes_compressed
              pages
      
      Needed for #1662
      8105cec7
    • Vladimir Davydov's avatar
      Remove vinyl/info test · a1d7be12
      Vladimir Davydov authored
      It's useless - it only checks that certain counters are present, but
      doesn't give a damn about what they show. At the same time, I have to
      update its output every time I modify vinyl statistics, which I'm doing
      pretty often these days. So let's ditch it - I'll rewrite it from
      scratch after I'm done reworking vinyl statistics.
      a1d7be12
    • Konstantin Osipov's avatar
      test: add comments to vinyl/upsert.test, remove an extra box.snapshot() · 60c72e78
      Konstantin Osipov authored
      gh-2520: add comments explaining the test case for gh-2520 (upsert
      caching).
      60c72e78
    • Vladislav Shpilevoy's avatar
      vinyl: make UPSERT prepare use of a cache as a hint · d3a2e815
      Vladislav Shpilevoy authored
      Use a tuple cache to turn an UPSERT in the PREPARE, if the cache
      contains a tuple with the exact same key. The UPSERT can be applied
      to the cached tuples, because
      1. The cache always contains only REPLACE statements;
      2. The cache always contains only newest statements.
      
      Closes #2520
      d3a2e815
    • Vladislav Shpilevoy's avatar
      test: add test on upserts not used cache · da3d067b
      Vladislav Shpilevoy authored
      When an UPSERT is prepared, it can use a cached statement to be
      turned into REPLACE. But now it doesn't use the cache.
      
      Test for #2520
      da3d067b
    • Konstantin Osipov's avatar
      cbus: minor style fixes to improve code readability · 43bc7c4d
      Konstantin Osipov authored
      Minor style fixes to improve code readability. In scope of gh-2529.
      43bc7c4d
  2. Jun 26, 2017
  3. Jun 23, 2017
  4. Jun 22, 2017
  5. Jun 21, 2017
    • Roman Tsisyk's avatar
      lua: remove unsupported tonumber64() test cases · 84e8acdb
      Roman Tsisyk authored
      Follow up 15a9af26
      84e8acdb
    • Roman Tsisyk's avatar
      lua: fix lua_tofield() for 2**64 value · 3a13be1d
      Roman Tsisyk authored
      exp2(64) <= UINT64_MAX is true due to type conversion.
      Use exp2(64) instead of UINT64_MAX (optimized out even on -O0).
      
      Fixes buggy box/indices_any_type.test.lua on x86_64
      
      Closes #2472
      3a13be1d
    • Roman Tsisyk's avatar
      lua: remove unsupported tonumber64() test cases · 15a9af26
      Roman Tsisyk authored
      ffi.new('long', x) and ffi.new('unsigned long', x) uses arbitratry
      user-defined ctypeid instead of built-in CTID_INT32 and CTID_UINT32.
      Our tonumber64() implementation is not ready for that. Remove these
      two test cases and move forward. Nobody cares.
      
      Fixes box/misc.test.lua on i386 and armhf
      
      Follow up #2459
      15a9af26
    • Roman Tsisyk's avatar
      lua: fix lua_tointeger() usage on 32-bit platforms · 90ef664e
      Roman Tsisyk authored
      lua_tointeger() is equivalent to (ptrdiff_t)lua_tonumber(L),
      which causes precision loss on 32-bit systems when you expect
      to get a proper uint32_t value. LuaJIT stores numbers as doubles,
      so lua_tointeger() makes absolutely no sense.
      
      Replace lua_tointeger() with lua_tonumber() everywhere except
      cases when result is converted to int or lua_Integer.
      
      Fixes box/indices_any_type.test.lua on i386 and armhf
      
      Closes #2459
      90ef664e
    • Vladimir Davydov's avatar
      alter: disallow truncation of system spaces · 3e1b734b
      Vladimir Davydov authored
      It is unsafe, because system spaces use triggers to keep records in sync
      with internal objects while space truncation doesn't invoke triggers.
      
      Closes #2523
      3e1b734b
    • Vladimir Davydov's avatar
      alter: initialize truncate system space lazily · 1f0b74e4
      Vladimir Davydov authored
      Currently, space.create must insert an entry into 'truncate' system
      space - if it does not, space.truncate won't work. This is incontinent,
      as it makes it impossible to create spaces by simply inserting a tuple
      into the 'space' system space via iproto API. So let's insert entries
      into truncate space lazily, on the first space truncation.
      
      Closes #2524
      1f0b74e4
    • Vladimir Davydov's avatar
      alter: proscribe space truncate in transaction · 50a4a87a
      Vladimir Davydov authored
      Space truncation is implemented as recreation of a space and all its
      indexes. On success the original space is deleted by the commit trigger,
      while on failure the new space is deleted by the rollback trigger. The
      commit/rollback triggers are always called before commit/rollback engine
      methods, which makes space truncation incompatible with transactions:
      engine commit/rollback may access a space that have already been deleted
      by commit/rollback trigger installed by space truncation, resulting in a
      crash. So let's forbid to use space.truncate from a transaction until
      triggers are made transaction-friendly.
      
      Closes #2525
      50a4a87a
  6. Jun 20, 2017
Loading