First, we went the traditional database route. Companies have successfully used data warehouses to manage the cost and overhead of querying historical data, and the architecture aligned with our goals of data aggregation and drill down. For our data volumes (reaching billions of records), we found that the scan rates were not fast enough to support our interactive dashboard, and caching could not be used to reliably speed up queries due to the arbitrary drill-downs we need to support. In addition, because RDBMS data updates are inherently batch, updates made via inserts lead to locking of rows for queries.