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 am trying to forward engineer a MySQL Workbench model with about 100 tables to a development single-node cluster and, while creating the 51th table, I end up getting a "1114 table is full" error, which is somewhat curious because there isn't any data inside those tables yet.

I suspected the problem had to be related to the memory allocation of hash indexes, so I have tried to create that table without any constraints or indexes and adding them later, not surprisingly finding that the error came out after trying to add any of the indexes, but getting this incoherent memory usage report:

~$ /usr/local/mysql/bin/ndb_mgm -e "ALL REPORT MEMORYUSAGE"
Connected to Management Server at: localhost:1186
Node 1: Data usage is 0%(13 32K pages of total 16000)
Node 1: Index usage is 0%(71 8K pages of total 32032)

I assume I must be missing something but I still can't figure out what it is. This is my config.ini file:

[NDB_MGMD DEFAULT]
Portnumber=1186

[NDB_MGMD]
NodeId=49
HostName=192.168.122.1
DataDir=/var/lib/MySQL_Cluster/49/
Portnumber=1186

[TCP DEFAULT]
SendBufferMemory=2M
ReceiveBufferMemory=2M

[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=500M
IndexMemory=250M
MaxNoOfTables=4096
MaxNoOfTriggers=3500
NoOfReplicas=1
StringMemory=25
DiskPageBufferMemory=64M
SharedGlobalMemory=20M
LongMessageBuffer=32M
MaxNoOfConcurrentTransactions=16384
BatchSizePerLocalScan=512
FragmentLogFileSize=64M
NoOfFragmentLogFiles=16
RedoBuffer=32M
MaxNoOfExecutionThreads=2
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=15000
HeartbeatIntervalDbApi=15000

[NDBD]
NodeId=1
HostName=192.168.122.1
DataDir=/var/lib/MySQL_Cluster/1/

[MYSQLD DEFAULT]

[MYSQLD]
NodeId=53
HostName=192.168.122.1

[API]
NodeId=50
HostName=192.168.122.1

Any ideas?

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

After reading deeper the manual, storing the model in an InnoDB engine and running ndb_size.pl I have been able to find that these parameters (which had their default values) were in fact too low:

    MaxNoOfOrderedIndexes
    MaxNoOfUniqueHashIndexes
    MaxNoOfAttributes
share|improve this answer
add comment

I can think of two possible problems besides no DataMemory which in your case seems not to be true:

  • too low MaxNoOfConcurrentOperations. Default is 32k which probably is too low when you try to build an index on the table with ~32k rows or more. And always too low for production
  • tmpdir runs out of disk space. SHOW VARIABLES like 'tmpdir'; will show you where it points to

Also I assume this is development machine because in production MySQL Cluster with NoOfReplicas=1 has little sense.

share|improve this answer
    
Yes, It is a development machine. I have set MaxNoOfConcurrentOperations to 320k and it still crashed at that very same table. tmpdir has 1.8TB of free space so I'm afraid this is not the cause either. –  Albert Jul 27 '13 at 12:53
    
Run: ndb_config --type ndbd --query "Nodeid,host,MaxNoOfConcurrentOperations" -f' ' -r '\n' to double check if your config change applied to data node. –  Mindaugas Riauba Jul 27 '13 at 13:24
    
Looks like it did: 1 192.168.122.1 327680 –  Albert Jul 27 '13 at 17:56
    
Then I am out of ideas. :) Try to look into Cluster nodes (ndb_mgmd and ndbd) logs. Maybe you will find something to google. –  Mindaugas Riauba Jul 28 '13 at 8:05
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.