MySQL Forums
Forum List  »  General

The table is full on mysql-cluster when adding constraint
Posted by: NOT_FOUND NOT_FOUND
Date: April 19, 2018 08:16AM

I am working to get openstack's devstack environment running with mysql-cluster on a single host. During the deployment of the first service (keystone) I am hitting this error while the deployer is doing some database migration work:

mysql> ALTER TABLE nonlocal_user ADD CONSTRAINT nonlocal_user_user_id_fkey FOREIGN KEY(user_id, domain_id) REFERENCES user (id, domain_id) ON DELETE CASCADE ON UPDATE CASCADE;
ERROR 1114 (HY000): The table 'nonlocal_user' is full

$ mysql --version # on Ubuntu 16.04
mysql Ver 14.14 Distrib 5.7.21-ndb-7.5.9, for Linux (x86_64)

Since this is so early in the deployment, the db is just about empty, so it's puzzling why I am hitting a full error. Thinking it might be something to do with the total column width, I manually added some columns (varchar(1028)) but that seemed to work ok. Also, this runs fine when deploying with InnoDB.

Memory seems ok:

$ ndb_mgm -e "ALL REPORT MEMORYUSAGE"
Connected to Management Server at: localhost:1186
Node 2: Data usage is 1%(42 32K pages of total 2560)
Node 2: Index usage is 6%(144 8K pages of total 2336)

Lots of available disk space:

$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 91G 21G 66G 24% /

In config.ini:

MaxNoOfTriggers = 3000
MaxNoOfOrderedIndexes = 2000
MaxNoOfAttributes = 20000
MaxNoOfTables = 4096
IndexMemory = 1G
DataMemory = 2G
NoOfReplicas = 1
MaxBufferedEpochBytes = 26214400
MaxBufferedEpochs = 100
MaxNoOfExecutionThreads = 2
MaxNoOfConcurrentOperations = 32768
MinDiskWriteSpeed = 10M
FragmentLogFileSize = 16M
NoOfFragmentLogFiles = 16
NoOfFragmentLogParts = 4
LockPagesInMainMemory = 0

my.cnf:

[mysqld]
query_cache_size = 0
query_cache_type = OFF
sql_mode = TRADITIONAL
bind-address = 0.0.0.0
ndb-connectstring = 127.0.0.1
ndb-cluster-connection-pool = 1
character-set-server = utf8
collation-server = utf8_unicode_ci
ndb-wait-setup = 3600
max_connections = 1024
init-connect = 'SET NAMES utf8'
default-storage-engine = NDBCLUSTER
ndbcluster


mysql> describe nonlocal_user;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| domain_id | varchar(64) | NO | PRI | NULL | |
| name | varchar(255) | NO | PRI | NULL | |
| user_id | varchar(64) | NO | UNI | NULL | |
+-----------+--------------+------+-----+---------+-------+

mysql> show create table nonlocal_user;
| Table | Create Table |...
| nonlocal_user | CREATE TABLE `nonlocal_user` (
`domain_id` varchar(64) NOT NULL,
`name` varchar(255) NOT NULL,
`user_id` varchar(64) NOT NULL,
PRIMARY KEY (`domain_id`,`name`),
UNIQUE KEY `ixu_nonlocal_user_user_id` (`user_id`)
) ENGINE=ndbcluster DEFAULT CHARSET=utf8 |

mysql> select * from nonlocal_user;
Empty set (0.00 sec)

I am guessing that I am missing some param somewhere but I haven't been able to figure it out. Any ideas or pointers would be appreciated. Thanks...

Options: ReplyQuote


Subject
Written By
Posted
The table is full on mysql-cluster when adding constraint
April 19, 2018 08:16AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.