Skip to content

SDSTOR-20656: clear wbc chunk selector - #179

Open
nnastonen wants to merge 1 commit into
eBay:dev/v6.xfrom
nnastonen:SDSTOR-20656_clear_wbc_chunk_selector
Open

SDSTOR-20656: clear wbc chunk selector#179
nnastonen wants to merge 1 commit into
eBay:dev/v6.xfrom
nnastonen:SDSTOR-20656_clear_wbc_chunk_selector

Conversation

@nnastonen

Copy link
Copy Markdown
  1. Create homestore with chunk selector
  2. Create btree1 and populate it
  3. Nodes get into wbc cache
  4. Destroy btree1 (wbc purge is not done, also volume's chunk bitmap is not cleared)
  5. Create btree2 and populate it
  6. Nodes get into wbc cache and we get cache corruption, duplicate inserts

This change makes chunk release asynchronous and defers returning the chunk to the free pool until cleanup is complete.

New flow:

  • detach the volume's chunk list from m_volume_chunks
  • run asynchronous cleanup for all the chunks
  • in cleanup, evict all allocated blkids for the chunks from WBC
  • [reset the chunks' block allocator state (bitmap)]
  • reinsert the chunks into m_per_dev_chunks

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