This project is mirrored from https://github.com/cockroachdb/cockroach. Pull mirroring updated .
  1. 25 Sep, 2021 3 commits
    • craig[bot]'s avatar
      Merge #70562 · ecaa4920
      craig[bot] authored
      70562: log,kvserver: hand redacted KV traces to tenants r=knz a=tbg
      
      Make traces generally redactable. Before returning to a tenant, redact them.
      See individual commits for details.
      
      - log,tracing: make traces redactable
      - kvserver: redact tenant-bound trace recordings
      - kvtenantccl: test that tenants can't see KV-level trace messages
      
      Touches https://github.com/cockroachdb/cockroach/issues/58610
      
      .
      
      Release note: None
      Co-authored-by: default avatarTobias Grieger <[email protected]>
      Co-authored-by: default avatarTobias Grieger <[email protected]>
      ecaa4920
    • craig[bot]'s avatar
      Merge #70723 · db27c61b
      craig[bot] authored
      
      
      70723: kv: deflake TestTenantRateLimiter r=RaduBerinde a=RaduBerinde
      
      A recent change (#70328) increased the rate limit and that exposed a
      fragility in this test. This change restores the test to use the
      original (small) rate limit.
      
      Fixes #70456.
      
      Release note: None
      
      Release justification: test-only fix.
      Co-authored-by: default avatarRadu Berinde <[email protected]>
      db27c61b
    • craig[bot]'s avatar
      Merge #70586 #70707 · 9ba8499e
      craig[bot] authored
      70586: sql,server: enable tenant status server to work with persisted SQL stats r=maryliag,dhartunian a=Azhng
      
      Previsouly, tenant status server was not able to work with the new
      persisted SQL Stats. This result in SQL Stats RPC not able to return
      or reset persisted SQL stats.
      This commit addresses this issue to update tenant status server's
      implementation to be able to work with persisted SQL Stats.
      
      Resolves #70585 #70529 #68177
      
      Release Justification: Bug fixes and low-risk updates to new functionality
      
      Release note (bug fix): Statement/Transaction Page now is able to
      display and reset persisted SQL Stats.
      
      70707: clusterversion,storage: cluster version that uses Pebble's SetWithDelete r=sumeerbhola a=sumeerbhola
      
      This is a backwards incompatible change in Pebble to provide
      SingleDelete semantics that are clean and robust to programming
      error.
      
      This is being done post v21.2-beta but before GA since this
      was deemed a GA blocker and not a release blocker. It allows
      for upgrading beta clusters to the GA version. For more on these
      discussions see the following threads
      https://github.com/cockroachdb/pebble/issues/1255#issuecomment-915483527,
      https://cockroachlabs.slack.com/archives/C4A9ALLRL/p1631213490022600
      (Cockroach Labs internal link).
      
      Informs https://github.com/cockroachdb/pebble/issues/1255
      
      
      Informs #69891
      
      Release note: None
      
      Release justification: high-severity bug fix
      Co-authored-by: default avatarAzhng <[email protected]>
      Co-authored-by: default avatarsumeerbhola <[email protected]>
      9ba8499e
  2. 24 Sep, 2021 33 commits
    • craig[bot]'s avatar
      Merge #70699 · 8452194a
      craig[bot] authored
      
      
      70699: sql: make builtin generators with GeneratorWithExprs safer r=mgartner a=mgartner
      
      The `Overload.GeneratorWithExprs` field was added in #70115. This commit
      makes usage of this field safer by introducing the `IsGenerator` method
      which can be used to determine if an overload is an SRF. This commit
      also adds guardrails to prevent future issues with
      `GeneratorWithExprs`in the `ConvertZipArraysToValues` normalization rule.
      
      Release note: None
      Co-authored-by: default avatarMarcus Gartner <[email protected]>
      8452194a
    • Radu Berinde's avatar
      kv: deflake TestTenantRateLimiter · c37f1795
      Radu Berinde authored
      A recent change (#70328) increased the rate limit and that exposed a
      fragility in this test. This change restores the test to use the
      original (small) rate limit.
      
      Fixes #70456.
      
      Release note: None
      
      Release justification: test-only fix.
      c37f1795
    • sumeerbhola's avatar
      clusterversion,storage: cluster version that uses Pebble's SetWithDelete · fe068e17
      sumeerbhola authored
      This is a backwards incompatible change in Pebble to provide
      SingleDelete semantics that are clean and robust to programming
      error.
      
      This is being done post v21.2-beta but before GA since this
      was deemed a GA blocker and not a release blocker. It allows
      for upgrading beta clusters to the GA version. For more on these
      discussions see the following threads
      https://github.com/cockroachdb/pebble/issues/1255#issuecomment-915483527,
      https://cockroachlabs.slack.com/archives/C4A9ALLRL/p1631213490022600
      (Cockroach Labs internal link).
      
      Informs https://github.com/cockroachdb/pebble/issues/1255
      Informs #69891
      
      Release note: None
      
      Release justification: high-severity bug fix
      fe068e17
    • craig[bot]'s avatar
      Merge #70593 #70608 · da88a01c
      craig[bot] authored
      70593: ui: add rows written to statement and transaction tables r=lindseyjin a=lindseyjin
      
      Resolves #67084
      
      Previously, the Statements and Transactions tables did not have a
      "Rows Written" column. This was inadequate as we received feedback
      to surface information on Rows Affected for statements on the db
      console.
      
      Since we've already added "Rows Written" as a metric on the Statement
      Details pages, this commit also adds this metric as a column on the
      Statements Overview table. This commit also adds this metric as a field
      on the Transaction Statistics proto, in order to add this as a column
      on the Transactions table and as a field on the Transaction Details page.
      The table columns will not show up by default, although they are
      selectable from the column selector.
      
      Column Selector:
      <img width="288" alt="Screen Shot 2021-09-22 at 5 01 04 PM" src="https://user-images.githubusercontent.com/29153209/134421574-0e7a54f4-d815-47e8-b71f-9352624058d0.png">
      
      Statements Overview table:
      <img width="1393" alt="Screen Shot 2021-09-22 at 5 01 20 PM" src="https://user-images.githubusercontent.com/29153209/134421567-b6000eca-59a1-4fcf-a4dd-5cb1798e9535.png">
      
      Stats By Node table:
      <img width="1351" alt="Screen Shot 2021-09-22 at 5 02 00 PM" src="https://user-images.githubusercontent.com/29153209/134421558-be4e003f-a5c9-48e7-a76c-f4e1e0b29603.png">
      
      Transactions table:
      ![image](https://user-images.githubusercontent.com/29153209/134591714-5cf583be-a244-44c8-820b-b117ac28315a.png)
      
      Transaction Details:
      ![image](https://user-images.githubusercontent.com/29153209/134704009-9fc92783-365a-4a58-9d00-63593f44e5fd.png
      
      )
      
      
      Release note (ui change): A new column, "Rows Written" has been added
      onto the Statements and Transactions tables. This column will not show
      up by default, but can be selected from the column selector. A new
      metric "Mean rows written" has also been added to the Transaction
      Details page.
      
      70608: row: improve the txnKVFetcher r=yuzefovich a=yuzefovich
      
      This commit improves the `txnKVFetcher` in the following manner:
      - the fetcher is refactored to use only a single spans slice.
      Previously, it was keeping track of the original request and the resume
      spans separately; this commit makes it so that we reuse the same spans
      slice by populating the resume spans while processing the responses one
      at a time;
      - the fetcher is now correctly reuses the spans slice it allocated in
      the constructor. Previously, it was the intention to do so too, but it
      wasn't working since we're slicing off for each response; now we're
      keeping the reference to the largest allocated slice correctly;
      - the commit adds the memory accounting for the now single spans slice
      because these slices can be of non-trivial (in MBs and larger) size.
      
      Release note: None
      Co-authored-by: default avatarLindsey Jin <[email protected]>
      Co-authored-by: default avatarYahor Yuzefovich <[email protected]>
      da88a01c
    • Azhng's avatar
      sql,server: enable tenant status server to work with persisted SQL stats · 92e1967d
      Azhng authored
      Previously, tenant status server was not able to work with the new
      persisted SQL Stats. This result in SQL Stats RPC not able to return
      or reset persisted SQL stats.
      This commit addresses this issue by:
      * updating tenant status server's Statements endpoint to be able to work
        with persisted SQL Stats.
      * introducing additional parameter in ResetSQLStatsRequest to specify
        whether persisted SQL Stats need to be reset.
      
      Resolves #70585 #70529 #68177
      
      Release note (bug fix): Statement/Transaction Page now is able to
      display and reset persisted SQL Stats.
      92e1967d
    • Tobias Grieger's avatar
      kvtenantccl: test that tenants can't see KV-level trace messages · e0acedad
      Tobias Grieger authored
      Release note: None
      e0acedad
    • Tobias Grieger's avatar
      kvserver: redact tenant-bound trace recordings · 92ca4b1c
      Tobias Grieger authored
      This commit changes the `(*Node).Batch` endpoint to redact
      trace recordings that were collected on behalf of a tenant.
      
      This notably does not affect the structured payloads. We
      need at least one of them - ContentionEvent - to remain intact
      as the keys within are used by SQL observability.
      
      Touches #58610. It does not close it because there may be other
      endpoints that support tracing, and even if there aren't, there
      is nothing that keeps us from accidentally re-introducing this
      problem again in the future.
      
      Release note: None
      92ca4b1c
    • Tobias Grieger's avatar
      log,tracing: make traces redactable · 0febe5bf
      Tobias Grieger authored
      This commit makes traces redactable, meaning that redaction markers are
      included in their verbose messages. The traces are not redacted
      anywhere, so the only change is the inclusion of redaction markers in
      the output.
      
      Release note: None
      0febe5bf
    • craig[bot]'s avatar
      Merge #68740 #70710 · e4e9a780
      craig[bot] authored
      
      
      68740: opt: support BYTES for histogram range calculations r=mgartner a=mgartner
      
      Fixes #68346
      
      Release note (performance improvement): The accuracy of histogram
      calculations for BYTES types has been improved. As a result, the
      optimizer should generate more efficient query plans in some cases.
      
      70710: kv/kvserver: skip TestTenantRateLimiter r=aayushshah15 a=tbg
      
      Refs: #70456
      
      Reason: flaky test
      
      Generated by bin/skip-test.
      
      Release justification: non-production code changes
      
      Release note: None
      Co-authored-by: default avatarMarcus Gartner <[email protected]>
      Co-authored-by: default avatarTobias Grieger <[email protected]>
      e4e9a780
    • Tobias Grieger's avatar
      kv/kvserver: skip TestTenantRateLimiter · 127038d0
      Tobias Grieger authored
      Refs: #70456
      
      Reason: flaky test
      
      Generated by bin/skip-test.
      
      Release justification: non-production code changes
      
      Release note: None
      127038d0
    • craig[bot]'s avatar
      Merge #70421 #70609 #70641 #70643 #70657 #70689 · 5258296d
      craig[bot] authored
      70421: backupccl, changefeedccl: updated error message for missing table r=wongio123 a=wongio123
      
      I am changing the error message for missing table when ResolveTargetsToDescriptors is used by changefeedPlanHook in changefeeds_stmt.go. The new error message will be "table <> does not exist" instead of "table ‹› does not exist, or invalid RESTORE timestamp: supplied backups do not cover requested time". The additional context of restores and backups do not apply when used by changefeeds_stmt .go so it is confusing.
      
      
      70609: cli: add \du USER metacommand r=knz a=rafiss
      
      fixes https://github.com/cockroachdb/cockroach/issues/70445
      
      
      
      Release note (cli change): The sql shell now supports the `\du USER`
      command to show information for the current user.
      
      70641: dev: log the actual calls to `bazel` that `dev` makes r=rail a=rickystewart
      
      I think this is a low-friction way to encourage education about how
      `dev` works "under the hood", and de-mystifies Bazel a bit.
      
      Release note: None
      
      70643: dev: simplify arguments passed to `bazel` some r=rail a=rickystewart
      
      * The `color==yes` argument can be inferred by Bazel when appropriate.
      * Any call to `bazel` without the `--experimental_convenience_symlinks`
        flag will create those symlinks, which means that realistically those
        symlinks are going to exist. Removing the flag makes the calls to
        `bazel` easier to read and copy-paste.
      
      Release note: None
      
      70657: sql,descs: return clear error when failing due to session expiration r=ajwerner a=ajwerner
      
      First commit refactors `TestTransactionDeadline` a bit to make the dependency
      injection a bit more direct and the logic a bit more compact. It changes the
      testing knob to now only override optionally as opposed to always.
      
      Before this commit, when a sql query failed because its session was expired,
      the connection would disconnect without any error. This commit fixes that
      error handling and provides a clearer error message indicating the source
      of the problem.
          
      Release note: None
      
      
      70689: sql: add missing error condition when loading scheduled job r=npe-fix a=adityamaru
      
      Fixes: #70687
      
      Release note: None
      Co-authored-by: default avatarAlex Wong <[email protected]>
      Co-authored-by: default avatarRafi Shamim <[email protected]>
      Co-authored-by: default avatarRicky Stewart <[email protected]>
      Co-authored-by: default avatarAndrew Werner <[email protected]>
      Co-authored-by: default avatarAditya Maru <[email protected]>
      5258296d
    • Marcus Gartner's avatar
      sql: make builtin generators with GeneratorWithExprs safer · d0f7f540
      Marcus Gartner authored
      The `Overload.GeneratorWithExprs` field was added in #70115. This commit
      makes usage of this field safer by introducing the `IsGenerator` method
      which can be used to determine if an overload is an SRF. This commit
      also adds guardrails to prevent future issues with
      `GeneratorWithExprs`in the `ConvertZipArraysToValues` normalization rule.
      
      Release note: None
      d0f7f540
    • Rafi Shamim's avatar
      cli: add \du USER metacommand · 1dbb2360
      Rafi Shamim authored
      Release note (cli change): The sql shell now supports the `\du USER`
      command to show information for the current user.
      1dbb2360
    • Alex Wong's avatar
      backupccl: updated error message for missing table · 18d4b8b7
      Alex Wong authored
      The previous error message contained incorrect context when checking for the existence of a table
      The error message was confusing because when changefeed uses DescriptorsMatchingTargets it does not attempt a RESTORE
      Introduced a `MissingTableError` error which provides error context to the caller
      
      Release note: None
      18d4b8b7
    • craig[bot]'s avatar
      Merge #70215 #70338 #70673 · ad275ab2
      craig[bot] authored
      70215: serverccl: Add unit test for unique row id in MT. r=abarganier a=rimadeodhar
      
      This PR adds a unit test to confirm unique row id generates
      unique identifiers based on the SQL instance ID in the
      multi-tenant environment.
      
      Release note: None
      
      70338: sql: add unordered unique row id as builtin and serial_normalization option r=jameswsj10 a=jameswsj10
      
      See [#54675](https://github.com/cockroachdb/cockroach/pull/54675
      
      ). Previously, there were only ordered unique
      row ids generated which incurs write hot-spots.
          
      The introduction of unordered unique row ids enable distributed
      row ids to avoid hotspots while maintaining the 64-bit integer
      data type. Basic testing proving distribution of row insertions provided.
          
      Release note (sql change): Added a new sql builtin 'unordered_unique_rowid' 
      and serial_normalization case 'unordered_rowid' which generates a globally 
      unique 64-bit integer that does not have ordering.
      
      70673: cli: fix the process exit status codes r=jbowens a=knz
      
      Found by @jbowens in #70637.
      We'll want to backport this. cc @joshimhoff 
      
      Release note (bug fix): The exit status of the `cockroach` command
      did not follow the previously-documented table of exit status codes
      when an error occurred during the command start-up. (Only errors
      occuring after startup were reported using the correct code.)
      This defect has been fixed. This bug had existed ever since reference
      exit status codes had been introduced.
      Co-authored-by: default avatarrimadeodhar <[email protected]>
      Co-authored-by: default avatarAndrew Werner <[email protected]>
      Co-authored-by: default avatarjameswsj10 <[email protected]>
      Co-authored-by: default avatarRaphael 'kena' Poss <[email protected]>
      ad275ab2
    • Raphael 'kena' Poss's avatar
      cli: fix the process exit status codes · 90096179
      Raphael 'kena' Poss authored
      Release note (bug fix): The exit status of the `cockroach` command
      did not follow the previously-documented table of exit status codes
      when an error occurred during the command start-up. (Only errors
      occuring after startup were reported using the correct code.)
      This defect has been fixed. This bug had existed ever since reference
      exit status codes had been introduced.
      90096179
    • Lindsey Jin's avatar
      ui: add rows written to statement and transaction tables · b76149da
      Lindsey Jin authored
      Resolves #67084
      
      Previously, the Statements and Transactions tables did not have a
      "Rows Written" column. This was inadequate as we received feedback
      to surface information on Rows Affected for statements on the db
      console.
      
      Since we've already added "Rows Written" as a metric on the Statement
      Details pages, this commit also adds this metric as a column on the
      Statements Overview table. This commit also adds this metric as a field
      on the Transaction Statistics proto, in order to add this as a column
      on the Transactions table and as a field on the Transaction Details page.
      The table columns will not show up by default, although they are
      selectable from the column selector.
      
      Release note (ui change): A new column, "Rows Written" has been added
      onto the Statements and Transactions tables. This column will not show
      up by default, but can be selected from the column selector. A new
      metric "Mean rows written" has also been added to the Transaction
      Details page.
      b76149da
    • Tobias Grieger's avatar
      tracing: lint against non-const string to Span.Record[f] · 5bf7d291
      Tobias Grieger authored
      This follows the pattern we have for `log.Info` et al, to avoid
      accidentally passing sensitive data as safe (the string argument to
      these methods by convention is interpreted as a const string).
      
      Release note: None
      5bf7d291
    • craig[bot]'s avatar
      Merge #70636 · 4485c87a
      craig[bot] authored
      
      
      70636: tabledesc: validate that old FK representation is not used r=postamar a=postamar
      
      Previously, pre-19.2, we used to use a different foreign key
      representation. We have since then migrated off of it. This commit adds
      validation checks to verify that we are no longer using it.
      
      This commit also makes superficial changes to the
      catalog.TableDescriptor interface.
      
      Fixes #66262
      
      Release note: None
      Co-authored-by: default avatarMarius Posta <[email protected]>
      4485c87a
    • Aditya Maru's avatar
      sql: add missing error condition when loading scheduled job · 0168c4b5
      Aditya Maru authored
      Release note: None
      0168c4b5
    • craig[bot]'s avatar
      Merge #70655 · a0d6d46d
      craig[bot] authored
      
      
      70655: sql: TestDropColumnAfterMutations fails intermittently r=fqazi a=fqazi
      
      Fixes: #70329
      
      Previously, the TestDropColumnAfterMutations did not correctly
      filter out unrelated applications when scanning sessions. This
      was inadequate because the count of number of commits could vary
      if internal applications also executed commits. To address this
      this patch explicitly sets the application name on the connections
      used for starting jobs so we can observe the COMMIT operation count
      only from relevant connections.
      
      Release note: None
      Co-authored-by: default avatarFaizan Qazi <[email protected]>
      a0d6d46d
    • Faizan Qazi's avatar
      sql: TestDropColumnAfterMutations failed · dabd1a33
      Faizan Qazi authored
      Fixes: #70329
      
      Previously, the TestDropColumnAfterMutations did not correctly
      filter out unrelated applications when scanning sessions. This
      was inadequate because the count of number of commits could vary
      if internal applications also executed commits. To address this
      this patch explicitly sets the application name on the connections
      used for starting jobs so we can observe the COMMIT operation count
      only from relevant connections.
      
      Release note: None
      dabd1a33
    • craig[bot]'s avatar
      Merge #70652 · 9167a605
      craig[bot] authored
      
      
      70652: vendor: bump Pebble to 031921b4 r=sumeerbhola a=sumeerbhola
      
      031921b4 metamorphic: add keyManager abstraction and SetWithDelete bug fix
      3584eb6d internal/cache: recalculate hot, cold and test stats in metaCheck
      20f0f9f7 internal/cache: include countCold and sizeCold in runHandCold stack traces
      7992aeaa internal/cache: add hot, cold, test entry counts
      
      Release note: None
      Co-authored-by: default avatarsumeerbhola <[email protected]>
      9167a605
    • Andrew Werner's avatar
      sql,descs: return clear error when failing due to session expiration · ec0a4dc9
      Andrew Werner authored
      Before this commit, when a sql query failed because its session was expired,
      the connection would disconnect without any error. This commit fixes that
      error handling and provides a clearer error message indicating the source
      of the problem.
      
      Release note: None
      ec0a4dc9
    • Andrew Werner's avatar
      sql,sqlliveness: rework TestTransactionDeadline dependency injection · 76b02ba6
      Andrew Werner authored
      This commit refactors TestTransactionDeadline a bit to make the dependency
      injection a bit more direct and the logic a bit more compact. It changes the
      testing knob to now only override optionally as opposed to always.
      
      Release note: None
      76b02ba6
    • Marius Posta's avatar
      tabledesc: validate that old FK representation is not used · de5c7b5d
      Marius Posta authored
      Previously, pre-19.2, we used to use a different foreign key
      representation. We have since then migrated off of it. This commit adds
      validation checks to verify that we are no longer using it.
      
      This commit also makes superficial changes to the
      catalog.TableDescriptor interface.
      
      Fixes #66262.
      
      Release note: None
      de5c7b5d
    • craig[bot]'s avatar
      Merge #70642 · 69945592
      craig[bot] authored
      
      
      70642: democluster: expose flag for workload rate limit on demo r=knz a=otan
      
      Release note (cli change): The 25 max QPS rate limit for workloads on
      `cockroach` demo can now be configured with a `workload-max-qps` flag.
      Co-authored-by: default avatarOliver Tan <[email protected]>
      69945592
    • Oliver Tan's avatar
      democluster: expose flag for workload rate limit on demo · 09557299
      Oliver Tan authored
      Release note (cli change): The 25 max QPS rate limit for workloads on
      `cockroach` demo can now be configured with a `workload-max-qps` flag.
      09557299
    • craig[bot]'s avatar
      Merge #70671 · 117de307
      craig[bot] authored
      
      
      70671: clisqlshell: fix the handling of `-e` r=otan a=knz
      
      Fixes #70665.
      
      Release note (bug fix): `cockroach sql -e` (and `demo -e`) can now
      process all client-side commands, not just `\echo`, `\set` and a few
      others.
      
      Release note (bug fix): `cockroach sql --set=auto_trace=on -e 'select
      ...'` (and the similar `demo` command) now produces an execution trace
      properly.
      Co-authored-by: default avatarRaphael 'kena' Poss <[email protected]>
      117de307
    • Raphael 'kena' Poss's avatar
      clisqlshell: fix the handling of `-e` · aed76c23
      Raphael 'kena' Poss authored
      Release note (bug fix): `cockroach sql -e` (and `demo -e`) can now
      process all client-side commands, not just `\echo`, `\set` and a few
      others.
      
      Release note (bug fix): `cockroach sql --set=auto_trace=on -e 'select
      ...'` (and the similar `demo` command) now produces an execution trace
      properly.
      aed76c23
    • craig[bot]'s avatar
      Merge #69513 · 85b1e924
      craig[bot] authored
      
      
      69513: kvserver: cleanup liveness retry code r=andreimatei a=andreimatei
      
      This patch improves the code around retries of liveness heartbeat.
      Before this patch, if a heartbeat was canceled, it might have resulted
      in an AmbiguousResultError, which was turned into an explicitly
      retriable error, which was causing a retry but the retry was explicitly
      short-circuited on canceled ctx. The convoluted logic was
      mis-interpreted by me a fellow on first read. The patch also has the
      
      This patch simplifies the logic by making an AmbiguousResultError caused
      by a canceled ctx not result in a retryable error in the first place.
      As a nice side-effect, this results in the original error propagating to
      the Heartbeat() caller, rather than a vanilla "context canceled"
      before.
      
      The patch also adds a test about the behavior on this kind of error,
      which was a bug in the past but not tested when it was fixed.
      
      Release note: None
      Co-authored-by: default avatarAndrei Matei <[email protected]>
      85b1e924
    • craig[bot]'s avatar
      Merge #70541 · e36b20bc
      craig[bot] authored
      
      
      70541: colfetcher: optimize and simplify the cFetcher a bit r=yuzefovich a=yuzefovich
      
      This commit improves a few things about the `cFetcher`:
      - it removes a conditional during the value part decoding (by
        pre-populating a slice of ASC directions)
      - it encapsulates the tracing of the fetched KVs a little better
      - it also removes a redundant `processValueTuple` method (which was
        simply calling another one).
      
      This commit additionally applies the last simplification mentioned above
      to the row fetcher too.
      
      Release note: None
      Co-authored-by: default avatarYahor Yuzefovich <[email protected]>
      e36b20bc
    • sumeerbhola's avatar
      vendor: bump Pebble to 031921b4 · 4de81942
      sumeerbhola authored
      031921b4 metamorphic: add keyManager abstraction and SetWithDelete bug fix
      3584eb6d internal/cache: recalculate hot, cold and test stats in metaCheck
      20f0f9f7 internal/cache: include countCold and sizeCold in runHandCold stack traces
      7992aeaa internal/cache: add hot, cold, test entry counts
      
      Release note: None
      4de81942
  3. 23 Sep, 2021 4 commits