Storage
File system technology inherently suffers from a number of limitations making it a bottleneck for highly demanding applications such as a database. A traditional file system imposes an additional overhead for a system that manages all its data in the main memory. Further with the advent of storage class memory and multi-core ccNUMA architectures, the swapping engine of a general purpose operating system, invented for comparatively low capacity DRAM machines and optimized for rotating hard disks, is just not the right technology.Storage Engine
At staila technologies, for the aforementioned reasons, we came up with a new approach to handling storage and persistency of data and like other subsystems of Mercury we implemented a storage engine from scratch, while keeping in mind the limitations of a traditional file system. Instead of storing data as files, Mercury's storage engine stores data, logic as well as memory, eligible for swaping on disk in the form of raw data blocks. This unified approach of handling persistency and memory swapping takes away much of the complexity and overhead from the system. The storage engine is designed to be ACID compliant making it an exact fit for databases and it is capable of extracting best performance out of SSDs.
The storage engine is integrated into the Mercury platform in such a way that all types of data and user logic are persisted to disk automatically and transparently. It requires no extra support from the OS and works directly on raw disks. The storage engine can write large number of blocks atomically yet in parallel to a raw disk.Features and Highlights
|
ACID Compliant: The storage engine is highly parallel, it can write any number of data blocks simultaneously and atomically. |
