• unknown's avatar
    Bug #28751 Lots of memory locked in memory causes high kswapd · 35b2f212
    unknown authored
    - add odirect option for lcp+backup+redo log to lower CPU/kswapd usage
    - writing odirect removes need for kernel write buffers avoiding kswapd to kick in
    
    
    mysql-test/ndb/ndb_config_2_node.ini:
      run mysql-test-run using ODirect
    storage/ndb/include/mgmapi/mgmapi_config_parameters.h:
      add new config parameter to choose ODirect
    storage/ndb/include/ndb_global.h.in:
      specify alignment needed for odirect
    storage/ndb/src/kernel/blocks/backup/Backup.cpp:
      read odirect config param
      open LCP and Backup datafiles with odirect if specified
      insert empty padding record if odirect is used
      allocate buffers aligned to be able to use odirect
    storage/ndb/src/kernel/blocks/backup/Backup.hpp:
      odirect and padding options
    storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp:
      add empty_record in file format
    storage/ndb/src/kernel/blocks/backup/BackupInit.cpp:
      read odirect config and allocate aligned
    storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp:
      correct debug printouts
    storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
      read odirect config param and align buffers
    storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
      read odirect config param and align buffers
    storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
      read config params and open redo log files with odirect if set
    storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
      aligned writing for odirect
      correct odirect open options with test+fallback if odirect fails
    storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp:
      align + odirect check
    storage/ndb/src/kernel/blocks/restore.cpp:
      restor block to ignore new lcp padding empty_record
    storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
      alligend log buffer allocation for odirect
    storage/ndb/src/kernel/vm/SimulatedBlock.hpp:
      alligend log buffer allocation for odirect
    storage/ndb/src/mgmsrv/ConfigInfo.cpp:
      new config param for odirect, default false
    storage/ndb/tools/restore/Restore.cpp:
      ndb_restore to skip empty_record alignment padding in backup file
    35b2f212
AsyncFile.cpp 31.8 KB