polardb/polardbx-engine

Why use a fixed length extent to manage disk space?

Opened this issue · 1 comments

Hi galaxyengine developers, I have some confusion about extent.
Why use a fixed length extent to manage disk space instead of directly using a single file like Rocksdb?
Using a 2MB fixed length extent can cause space waste.
If extent reuse is required, using a single file can also achieve this.

There two reasons to fixed extent size.

  1. it's better for space manage,since we can expand the table space file with 2MB extent granularity,and reuse the freed extent since they have them size.
  2. small extent size is better for compaction schedule,since we can divide the compaction task to more smaller job,and have with more threads to do the compaction job parallel.