litespeedtech / litespeedtech/qmin

Only create NEW checkpoint when necessary

Open
#2 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
8
Forks
3
PR merge metrics
No merged PRs in 30d

Description

The model wherein a NEW checkpoint is always available is problematic: this means that the table size can never be zero. This is not good: we want the decoder to be able to specify table size zero.

Instead, a NEW checkpoint should be created implicitly whenever required, which is in two cases:
1. `INSERT_ENTRY` command is issued
1. `REUSE_ENTRY` command is issued

The cost of the newly created NEW checkpoint is added to the table size at that time. This means that the encoder may not be able to create a NEW checkpoint due to table size constraints. (Which is exactly what we want if the decoder advertizes zero table size.)

Contributor guide

No contributing guide indexed for this repository

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

Trace the encoder handling for the INSERT_ENTRY and REUSE_ENTRY commands and how NEW checkpoints contribute to the table size. Verify the decoder can advertise a zero table size, create NEW checkpoints implicitly only for those commands, and prevent checkpoint creation when the table-size constraint disallows it.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.