There are only a few types of databases that can achieve mostly the same goals. In-memory databases can provide real-time response for selecting and inserting records. Document-oriented databases allow storing records in a document-oriented format. Columnar databases store data as key/value records on HDD or SSD. These solutions are designed to scale well enough to manage petabytes of data across thousands of commodity servers in a distributed system. They represent the SSTable architecture, designed for two use cases: fast access by key and fast writing.