Hi,
we are using MySQL Cluster for storing financial data like stock quotes which results in massive INSERTs and UPDATEs. Lately, we encountered strange “table full” errors while inserting data, although data and index memory are ok (50 % free each).
The table full errors happen at around 350 million rows in 2 specific tables, but always exactly around that boundary. All other tables are fine and it is possible to INSERT without any issue. We used the table create option “max_rows=600000000”. Seems like we hit a limit of some kind (see detailed config below). Any idea?
Infrastructure:
- 4 data nodes, 128 GB RAM each
- 2 mysqld instances for writing data
- 4 mysqld instances which are configured master(1)-slave(3) and are connected to the cluster for reading
NDB MGM config:
[NDBD DEFAULT]
NoOfReplicas=2
Datadir=/mnt/data/cluster
FileSystemPathDD=/mnt/data/cluster
#FileSystemPathUndoFiles=/mnt/data/cluster
#FileSystemPathDataFiles=/mnt/data/cluster
DataMemory=85000M
IndexMemory=25000M
LockPagesInMainMemory=1
MaxNoOfConcurrentOperations=1500000
StringMemory=25
MaxNoOfTables=4096
MaxNoOfOrderedIndexes=2048
MaxNoOfUniqueHashIndexes=512
MaxNoOfAttributes=24576
MaxNoOfTriggers=14336
DiskCheckpointSpeedInRestart=100M
FragmentLogFileSize=128M
InitFragmentLogFiles=SPARSE
NoOfFragmentLogFiles=300
RedoBuffer=1G
TimeBetweenLocalCheckpoints=20
TimeBetweenGlobalCheckpoints=1000
TimeBetweenEpochs=100
MemReportFrequency=30
BackupReportFrequency=10
Params for setting logging
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
Params for increasing Disk throughput
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
#Reports indicates that odirect=1 can cause io errors (os err code 5) on some systems. You must test.
ODirect=1
Watchdog
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout - should be enabled in Production
TransactionInactiveTimeout=60000
CGE 6.3 - REALTIME EXTENSIONS
#RealTimeScheduler=1
#SchedulerExecutionTimer=80
#SchedulerSpinTimer=40
DISK DATA
SharedGlobalMemory=20M
DiskPageBufferMemory=64M
Multithreading
MaxNoOfExecutionThreads=4
Increasing the LongMessageBuffer b/c of a bug (20090903)
LongMessageBuffer=32M