Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-14460

Memory leak with only SELECT statements


    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.2.9
    • Fix Version/s: 10.2.15
    • Labels:
    • Environment:
      Debian 8. 16 GB RAM. 8 CPU (Xeon E5-1620 v2).


      The same IO-bound scenario was run on 2 identical machines, one with RocksDB and the other with TokuDB. In a Zope application (ERP5), using NEO/MariaDB as storage, we filled the disks with a few data streams. The memory leak happened when reading a single whole data stream.

      The result is that ERP5/NEO does 2 queries in loop. Here is an example from general log:

      SELECT tid, compression, data.hash, value, value_tid FROM obj FORCE INDEX(`partition`) LEFT JOIN data ON (obj.data_id = data.id) WHERE `partition` = 6 AND oid = 94294686 AND tid < 271213171275484455 ORDER BY tid DESC LIMIT 1
      SELECT tid FROM obj FORCE INDEX(`partition`) WHERE `partition`=6 AND oid=94294686 AND tid>271177614835290848 ORDER BY tid LIMIT 1

      More about NEO's architecture is described at https://www.nexedi.com/blog/NXD-Document.Blog.Optimising.MariaDB.Big.Data

      The data stream is 1.5TB uncompressed, taking about 650MB on-disk. RocksDB got OOM-killed when 1TB was read. TokuDB respected its memory constraints until the end.

      Each machine has 2 disks of 2TB, each one with a MariaDB DB that holds half of the Zope DB. IOW, we have 2 RocksDB databases of about 2TB. 8GB of RAM for the 2 mysqld (rocksdb_block_cache_size = 2G).


          Issue Links



              • Assignee:
                psergey Sergei Petrunia
                jmuchemb Julien Muchembled
              • Votes:
                0 Vote for this issue
                6 Start watching this issue


                • Created: