HomeStore icon indicating copy to clipboard operation
HomeStore copied to clipboard

Add index CR UT for basic merge

Open koujl opened this issue 5 months ago • 2 comments

https://docs.google.com/presentation/d/1NUvu1ZlDKqJWfBayg2lSWHSB6TEaZ4Y3VbnGc996drM/edit#slide=id.g2f8c68a8252_1_10


Add basic index CR logic & UT.

Major changes including:

  • Add freed nodes to the dependency graph for recovery
  • Reconstruct our handling strategy in wb_cache::recover() for recovered new/freed buffers
  • Add protection for several corner cases in index_table::repair_link()
  • Add flip point for freed nodes

As well as some bug fixes:

  • Fix several down_buffer counter leaks
  • Fix a bug in wb_cache async_flush that may cause one buffer get processed multiple times
  • Fix some bugs in racing conditions during homestore restart

There are still some known issues in some corner cases, such as incorrect next_node pointer. However, since solving these may introduce complicated modification to the current logic, let's leave them to future PRs and discuss later.

koujl avatar Sep 19 '24 14:09 koujl