Amar Prakash Pandey - ᕦ(ò_óˇ)ᕤ

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


Lastly, thank you for reading this post. For more awesome posts, you can also follow me on Twitter — iamarpandey, Github — amarlearning.

#RUM Conjecture #Database Design #Data Engineering #Tech Tradeoffs