Version: 10.4.8-MariaDB
engine: ROCKSDB
I have a table labor
with 40 Mio rows and a table map
with 200,000 rows and I wanted to update some columns of labor
with. Since I got performance problems as the table increased I decided to migrate from InnoDB to ROCKSDB engine:
ALTER TABLE some.labor ENGINE=RocksDB;
When I wanted to partition:
ALTER TABLE some.labor PARTITION BY KEY() PARTITIONS 10;
I got this error:
SQL Fehler (1296): Got error 10 'Operation aborted: Failed to acquire lock due to rocksdb_max_row_locks limit' from ROCKSDB
I found this solution in SO:
SET session rocksdb_bulk_load=1;
After I changed the status the table could be partioned.
After that I wanted to do an update:
UPDATE some.labor r
INNER JOIN some.map m
ON r.analysis_1 <=> m.analysis_1
AND r.analysis_2 <=> m.analysis_2
AND r.unit <=> m.unit
AND r.praxis_id <=> m.praxis_id
SET r.analysis = m.analysis_new
, r.unit = m.unit_new
;
<=> is needed since some fields contains NULL. All 4 join variables are indexed.
I got the same error as before
SQL Fehler (1296): Got error 10 'Operation aborted: Failed to acquire lock due to rocksdb_max_row_locks limit' from ROCKSDB
although the status remained
SET session rocksdb_bulk_load=1;
Any idea how I can cope with this?