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.
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=65560Most 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.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
