Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I have question about MySQL Cluster:
Is it possible to have database larger than amount of RAM? (to not have all cluster data in-memory, but some data will reside on clusters nodes hard disks)
Especially, is it possible to point to MySQL Cluster which partitions doesn't have to be in-memory and can be stored on disks. (in case of lack of memory).

I am only asking, if solution like this is possible to achieve with MySQL Cluster.

share|improve this question
add comment

2 Answers 2

up vote 1 down vote accepted

MySQL Cluster FAQ states that it is possible to have a database bigger than available memory, but the documentation referenced from the FAQ entry states that only non-indexed columns of NDB tables can be stored on disk.

share|improve this answer
    
Thank you for links :) –  Michał Herman Jan 29 '13 at 12:50
add comment

You can have a bigger dataset than you have physical RAM by identifying table data to be stored on disk.

Non-indexed attributes can selectively be made to reside on disk but indexed attributes are always in memory. The larger the database and the more indexes you have on the tables, the more likely it is that you will need more memory or hosts.

Similar to most disk-based DBMSs, there is a LRU (Least Recently Used) buffer cache that caches hot pages. When reading a record containing disk-based data a lookup is made in the buffer cache to see if the page exists there. If it does not, then the record data has to be read from disk.

At some stage the buffer cache is check pointed and all the dirty pages in the buffer cache are written back to a table space. The table space together with the available RAM for the indexed attributes defines how much data you can store in a disk data table.

This means that the same performance limitations exist for disk data tables in MySQL Cluster as traditional disk-based DBMSs. The bigger the buffer cache the better, as there is a risk of becoming disk I/O bound. Tables which are subject to a lot of random access, and have strong requirements on performance and response times are better designed as in-memory tables in order to avoid being disk I/O bound.

The ndbinfo.diskpagebuffer table provides information on the effectiveness of this cache; users of MySQL Cluster CGE can also see this information presented over time through MySQL Enterprise Monitor graphs as described in http://www.clusterdb.com/mem+/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.