Fundamentals 18 min read

Why Fixed and Variable Partitions Link OS Memory Management to Oracle Storage

This article explains how classic operating‑system storage techniques such as fixed and variable partitioning, paging, and segmentation correspond to Oracle database memory structures like shared‑pool buckets, deferred segment creation, and extent management, highlighting their benefits and drawbacks.

dbaplus Community
dbaplus Community
dbaplus Community
Why Fixed and Variable Partitions Link OS Memory Management to Oracle Storage

Fixed Partition Management

In a fixed‑partition scheme the main memory is divided into a set of equal‑sized blocks that are permanently assigned to specific jobs. If a job finishes, its block is returned to the pool. This leads to internal fragmentation when partitions are larger than the jobs they host.

Oracle’s shared‑pool free‑list (bucket) management mirrors this idea: the pool is split into 255 buckets, each holding chunks of a limited size range. The bucket sizes can be inspected with a trace file, for example:

Bucket 0 size=32
Bucket 1 size=40
Bucket 2 size=48
... 
Bucket 254 size=65560

Most buckets hold chunks under 5 KB; only a few support much larger chunks, reflecting Oracle’s effort to choose an optimal size distribution.

Variable Partition Management

Variable partitions eliminate the need for pre‑created blocks. When a job arrives, a partition sized exactly for the job is allocated. Oracle implements similar flexibility with the deferred_segment_creation parameter (default true), which postpones segment allocation until the first row is inserted, and with interval partitioning , which creates new partitions on‑demand.

Oracle also maintains two internal tables for free‑space bookkeeping: the Used‑Block Table (UBT) and the Free‑Block Table (FBT). Early versions used dictionary tables FET$ and UET$ , whose updates generated recursive SQL and extra undo/redo work, later replaced by more efficient bitmap structures.

Paging Technique

Paging divides memory into equal‑sized pages (or frames) that become the basic allocation unit. In Oracle, the physical storage unit is the data block (default 8 KB), which maps to an OS page. Logical addresses are expressed as a pair (p, d), where p is the page number and d the offset within the page.

Example: with a 1 KB page, virtual address 4101 translates to page 4 and offset 5 because the lower 10 bits (2¹⁰) represent the offset.

4101 = 2^12 + 2^2 + 2^0 → binary 0001 0000 0000 0101
Page number = 000100 (4), offset = 0101 (5)

Oracle’s tablespace creation can specify a uniform extent size, which behaves like a page allocation:

create tablespace test add datafile '/u01/app/db/test01/data01/test01.dbf' size 100M extent management local uniform size 1M;

This creates 100 MB of space divided into 100 extents of 1 MB each, analogous to paging.

Segmented Storage

Segmentation assigns a contiguous region of memory to each logical segment (code, data, stack, etc.). Unlike paging, segment sizes are not fixed; they reflect the program’s structure. The OS keeps a segment table, while Oracle uses data‑dictionary views such as USER_SEGMENTS and USER_EXTENTS to track segment locations. Both paging and segmentation avoid internal fragmentation, but segmentation can still suffer from external fragmentation when segments are scattered across non‑adjacent blocks. Oracle’s synonym mechanism resembles segment sharing: a synonym provides a lightweight reference to a base table, consuming negligible storage.

Conclusion

Fixed partitions are simple but waste memory; variable partitions improve utilization at the cost of more complex bookkeeping. Paging eliminates internal fragmentation by using uniform pages, while segmentation offers logical organization at the expense of potential external gaps. Oracle’s storage architecture incorporates ideas from all three techniques, illustrating how operating‑system concepts evolve into modern database memory management.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Operating SystemPagingSegmentationstorage allocation
dbaplus Community
Written by

dbaplus Community

Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.