46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
Larger MaxAllowedPacket as this limits the size of Blob MySQLD can handle
|
|
show variables like 'max_allowed_packet';
|
|
Variable_name Value
|
|
max_allowed_packet 104857600
|
|
use test;
|
|
create table t1 (a int primary key, b longtext) engine=ndb;
|
|
create procedure heavy_insert(times int, bytes int)
|
|
begin
|
|
set @x = 0;
|
|
repeat
|
|
insert into t1 values (1, repeat('B', bytes));
|
|
delete from t1 where a=1;
|
|
set @x = @x + 1;
|
|
until @x = times
|
|
end repeat;
|
|
insert into t1 values (1, repeat('B', bytes));
|
|
end %
|
|
create procedure heavy_read(times int)
|
|
begin
|
|
set @x = 0;
|
|
repeat
|
|
select a, length(b) from t1 where a=1;
|
|
set @x = @x + 1;
|
|
until @x = times
|
|
end repeat;
|
|
end %
|
|
Set unlimited batch size for reads+writes
|
|
set ndb_blob_read_batch_bytes = 0;
|
|
set ndb_blob_write_batch_bytes = 0;
|
|
Now try a heavy insert - idea is to show SendBufferMemory overload on insert
|
|
call heavy_insert(20, 5*1024*1024);
|
|
delete from t1;
|
|
set ndb_blob_write_batch_bytes=100 * 1024;
|
|
Now heavy insert should succeed
|
|
call heavy_insert(10, 5*1024*1024);
|
|
Now heavy read should fail
|
|
call heavy_read(100);
|
|
set ndb_blob_read_batch_bytes=100 * 1024;
|
|
Now heavy read should succeed
|
|
call heavy_read(100);
|
|
set ndb_blob_write_batch_bytes=0;
|
|
set ndb_blob_read_batch_bytes=0;
|
|
drop procedure heavy_insert;
|
|
drop procedure heavy_read;
|
|
drop table t1;
|