1 |
Kashani wrote: |
2 |
> http://dev.mysql.com/doc/mysql/en/MySQL_Cluster_DB_Definition.html under |
3 |
> DataMemory |
4 |
|
5 |
I maybe wrong, but I didn't get that from reading that page. |
6 |
|
7 |
The way I understand it, it allocates that amount of memory to hold |
8 |
table records that are used in transactions and certain queries. Almost |
9 |
like a cache, except the cluster uses it for it's "partition" of the table. |
10 |
|
11 |
Says just two things about how big it needs to be: |
12 |
|
13 |
[1] Thus it is necessary also to allocate memory to be able to handle |
14 |
the largest transactions which are performed in the cluster. |
15 |
|
16 |
[2] The default DataMemory size is 80MB. The minimum size is 1MB. There |
17 |
is no maximum size, but in reality the maximum size has to be adapted so |
18 |
that the process doesn't start swapping when using the maximum size of |
19 |
the memory. |
20 |
|
21 |
Further reading produced this: |
22 |
|
23 |
http://mysql.mirror.nedlinux.nl/tech-resources/articles/storage-engine/part_2.html |
24 |
|
25 |
While nodes keep their data entirely in memory for maximum performance, |
26 |
the durability requirement of ACID transactions is maintained by the |
27 |
cluster making sure that at least two nodes in each group have the a |
28 |
copy of the data. On-disk "redo" logs are maintained for recovery |
29 |
purposes., and each node requires sufficient disk space to store its |
30 |
entire fragment for cold starts. |
31 |
|
32 |
[This tells me that each node doesn't need to store the entire database, |
33 |
just the portion of the database that's responsible for. The more nodes |
34 |
you have, the less memory each node requires.] |
35 |
|
36 |
Because MySQL Cluster is main-memory based it is extremely fast. MySQL |
37 |
Cluster has good scalability by adding more memory and/or more nodes to |
38 |
a configuration. |