Amar Prakash Pandey

Amar Prakash Pandey aka @amarlearning

Balancing the RUM Conjecture: Navigating Database Trade-Offs

banner

When designing databases, there’s a constant balancing act among three main factors:

  1. Read times
  2. Update cost
  3. Memory/storage overhead

The RUM Conjecture suggests that optimizing any two of these factors will negatively impact the third. Essentially, you can only choose two out of the three to prioritize in any design.

Example: Log-Structured Databases

Consider a log-structured database:

This trade-off forms a triangular relationship among read efficiency, update costs, and storage overhead.

Visualizing RUM

Databases are often optimized around specific workflows, focusing on either read, write, or storage efficiencies:

rum-visualized

  1. Read-Optimized
  1. Write-Optimized
  1. Storage-Optimized

Beyond the RUM Corners: Adaptive Access Methods

Some database structures are designed to adapt dynamically, balancing the RUM trade-offs based on access patterns:

rum-adaptive

Reference


Thanks for reading! If this one was useful, there's more where it came from in the archive, and you can see what I'm building next on GitHub.

#rum conjecture #database design #data engineering #tech tradeoffs

Comments