vmware / vmware/splinterdb

8kib page size is not working

Open
#193 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

I changed the page size from 4kin to 8kib by modifying this line here:
https://github.com/vmware/splinterdb/blob/fdac74b9a08da73d78e2e747f3431842f80d2297/src/config.c#L13

With this change only, ./test failed with the error message below:

+ bin/unit_test
Running 2 CTests, suite name 'all', test case 'all'.
TEST 1/13 kvstore_basic_stress:test_random_inserts_serial unit_test: src/rc_allocator.c:226: rc_allocator_init_meta_page: Assertion `(1 + (30)) * al->cfg->page_size <= al->cfg->extent_size' failed.
./test.sh: line 12: 25143 Aborted                 (core dumped) "$UNIT_TEST_DRIVER"

To resolve the above problem, I also doubled the size of extent size in config.c.

This time ./test ran longer than the previous try. But it still failed with the error message below:

+ bin/driver_test splinter_test --functionality 1000000 100 --seed 135
bin/driver_test: splinterdb_build_version 03441c2a-dirty
Dispatch test splinter_test
fingerprint_size: 27
Running splinter_test with 1 caches
Functional test started with 1 tables
Round i=       0, op= 0, nummsgs =   103605, minkey=11047433, maxkey=58702707, mindelta =    262144, maxdelta=   262148
./test.sh: line 25: 26351 Segmentation fault      (core dumped) "$DRIVER" splinter_test --functionality 1000000 100 --seed "$SEED"

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 with the page-size setting and extent-size configuration in src/config.c, then run ./test to reproduce the allocator assertion at src/rc_allocator.c:226. Next, reproduce the later failure with bin/driver_test using the splinter_test command shown in the issue. Done means the 8 KiB page-size configuration completes both test stages without an assertion or segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
databases
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.