Skip to content

feat(proxy): count block refetches after failed cache writes - #250

Draft
kasrakhosravi wants to merge 1 commit into
tigrisdata:mainfrom
kasrakhosravi:kasra/cache-miss-reasons
Draft

kasrakhosravi wants to merge 1 commit into
tigrisdata:mainfrom
kasrakhosravi:kasra/cache-miss-reasons

Conversation

@kasrakhosravi

Copy link
Copy Markdown

Counts upstream block refetches caused by an earlier lost cache write.

New: tag_cache_block_refetch_total{previous}

previous Earlier outcome for the same block
write_skipped populate declined at the concurrent-write limit
write_failed PutBlock failed, sync or detached branch
  • Motivation: block misses cannot separate cold from lost writes
  • Lock-free per-pod table, 1<<20 slots, 8 MiB
  • Successful PutBlock clears the block's slot
  • Counted after the BlockExists recheck, before slot acquisition
  • Collisions and restarts undercount; never overcount
  • Pairs with storage: count Get misses by reason ocache#282 (owner-side miss reasons)

Verify

  • make lint-ci: clean
  • make test: all 8 packages pass
  • Smoke: declined populate, then refetch: write_skipped +1
  • Smoke: failed sync and detached PutBlock, then refetch: write_failed +1 each
  • Smoke: warm reads after success: no increment
  • Not run: multi-node cluster

- A per-pod table remembers block keys whose populate was skipped at the
  write limit or whose PutBlock failed; a later upstream refetch of that
  block is counted by the earlier outcome.
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA. ✅
Posted by the CLA Assistant Lite bot.

@kasrakhosravi

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant