vmware / vmware/splinterdb

Integrate `cache_mark_dirty` into `cache_lock`

Open
#122 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
732
Forks
67
PR merge metrics
No merged PRs in 30d

Description

Should there be a separate cache API function for marking pages dirty or should this happen automatically during a cache_lock?

Reasons to integrate:

  1. There is no obvious need to lock a page without dirtying it. All cases that I (Alex) can think of can be satisfied with a claim, such as doing a write if some condition is met.
  2. Several very hard to diagnose bugs have arisen from forgotten cache_mark_dirtys.

Reasons not to integrate:
???

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the implementations and call sites for cache_lock and cache_mark_dirty. Determine whether locking should always mark a page dirty, resolve the listed API-design question, and document or test the chosen behavior before changing it.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.