MySQL Cluster - Got error 1601 'Out extents, tablespace full' from NDB I am trying to do some tests on MySQL Cluster.
I am creating my database using following commands:

CREATE DATABASE test1;
use test1;
CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'undofile.dat'
ENGINE = NDB;
CREATE TABLESPACE ts1
ADD DATAFILE 'datafile.dat'
USE LOGFILE GROUP lg1
ENGINE = NDB;
CREATE TABLE `dane` (
  `id` int(11) NOT NULL,
  `data` blob NOT NULL,
  PRIMARY KEY (`id`)
)
TABLESPACE ts1 STORAGE DISK
engine=ndb;


Then I populate table with some data and random blobs 50KB each. But I am getting following error:

mysql&gt; INSERT INTO dane(id, data) VALUES(3790, randomBlob(51200));
ERROR 1114 (HY000): The table 'dane' is full
mysql&gt; show warnings;
+---------+------+--------------------------------------------------------+
| Level   | Code | Message                                                |
+---------+------+--------------------------------------------------------+
| Warning | 1296 | Got error 1601 'Out extents, tablespace full' from NDB |
| Error   | 1114 | The table 'dane' is full                               |
+---------+------+--------------------------------------------------------+
2 rows in set (0,00 sec)

mysql&gt; select count(*) from dane;
+----------+
| count(*) |
+----------+
|     2507 |
+----------+
1 row in set (0,03 sec)


It is not cluster memory usage problem:

ndb_mgm&gt; ALL REPORT MEMORYUSAGE
Connected to Management Server at: localhost:1186
Node 3: Data usage is 6%(164 32K pages of total 2560)
Node 3: Index usage is 7%(178 8K pages of total 2432)


2500*50KB ~= 1GB
I have this error any time I am trying to insert more than 1GB of blobs.
How I can extend size of this tablespace?
First 2500*50kB ~= 128MB. Then if you will check CREATE TABLESPACE syntax default INITIAL_SIZE for the datafile is 128MB!

So if you want to store more data you can either specify INITIAL_SIZE you need while creating tablespace or you can ALTER TABLESPACE ADD DATAFILE.

By specifying STORAGE DISK in CREATE TABLE statement you stated that you want on disk table not in memory. With such tables ALL REPORT MEMORYUSAGE shows nothing meaningful for that table.

If you want "classic" NDB table which is stored in memory just skip TABLESPACE ts1 STORAGE DISK modifiers and then ALL REPORT MEMORYUSAGE will show you how much memory is used for the data and indexes.