MySQL Ndb Cluster is often described as an in-memory or main memory database but this is not the whole story.
Tables in Ndb always support :
- Transactions, parallel query, indexes, FKs etc
- Sync replication between nodes in a cluster
- HA with automatic failover and recovery
- Consistent backup
- Async replication via MySQLD
By default Tables in Ndb also have automatic transactional durability via parallel checkpoints and logs, supporting full system recovery from storage. However, this can be disabled for individual tables if desired for highest performance with lowest resource usage. In the event of a full system recovery from storage, these tables will be empty.
By default, all columns of a table are kept in memory at all times, limiting system capacity to full cluster system memory size. However unindexed columns can be marked for disk storage. Values for these columns are stored in pages of a tablespace, and only cached in memory like most other RDBMS. This allows far more data to be stored while retaining predictable fast access via purely in memory indexes.
#MySQL #ndbcluster #DistributedSQL