3

Hi I am trying to insert tables to mysql cluster but after some time I get the following error, can you please suggest how to fix this.

ERROR 1114 (HY000) at line 2137: The table 't_email_contacts' is full

Hi Andrew, this is the result of ALL REPORT MEMORY

Node 2: Data usage is 0%(45 32K pages of total 98048)
Node 2: Index usage is 0%(408 8K pages of total 392224)
Node 3: Data usage is 0%(45 32K pages of total 98048)
Node 3: Index usage is 0%(408 8K pages of total 392224)

it shows 0%, but still I am getting table full error, thanks in advance.

  1. df -H shows it is not full.
  2. I am not using innodb for my table creation, it is ndb

1 Answer 1

4

There are a few reasons for this.

  1. The partition that holds the MySQL file is full. df -H will show if a partition is full.
  2. If you are using innodb: see the innodb_data_file_path in your my.cnf. You might be exceeding the "max" amount. Example of this:

    innodb_data_file_path = ibdata1:10M:autoextend:max:512M

    You can up the 512 or remove the :max:512m totally for it to be "limitless".

  3. You are adding an INDEX to a MEMORY table (obviously not the case but worth mentioning).

Regarding NDB Cluster:

  1. An NDB engine holds all data in RAM. From the link:

    In MySQL 5.0, Cluster is in-memory only. This means that all table data (including indexes) is stored in RAM. Therefore, if your data takes up 1 GB of space and you want to replicate it once in the cluster, you need 2 GB of memory to do so (1 GB per replica). This is in addition to the memory required by the operating system and any applications running on the cluster computers

    If this is the cause you can do this but it will be a perfomance hit.

  2. Check the values of MaxNoOfConcurrentOperations and MaxNoOfConcurrentTransactions. Set them to a value higher than the largest table in the cluster.

  3. Check the log file for related messages (ndb_2_trace.log?). If it shows things like "Node 2: Data usage increased to 100%" you are running out of memory.

    • Index memory stores primary key indexes ONLY.
    • Data memory stores all the data + other indexes.
    • The memory you need per table is something like this: ((size of a table) + (size of index)) * ( the number of records)
    • IndexMemory and DataMemory are the corresponding settings. If you exceed these you get this error.
  4. The maximum number of attributes (columns and indexes) per table is limited to 128.

15
  • thanks for the response. 1. df -H shows it is not full. 2. I am not using innodb for my table creation, it is ndb Jun 3, 2015 at 12:58
  • added to the question. Jun 3, 2015 at 13:01
  • This is all I can come up with :D
    – Rinzwind
    Jun 3, 2015 at 13:17
  • I heard that we can use disk space insted of RAM, can you please tell me is there any such option Jun 3, 2015 at 15:41
  • 1
    @ManojReddy yes there is. "If this is the cause you can do this but it will be a perfomance hit." the "this" is a link.
    – Rinzwind
    Jun 3, 2015 at 19:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .