1

Getting error while service restart.

[ERROR] InnoDB: A parallel doublewrite file /test/mysql/xb_doublewrite found on startup.

2

You have to look in my.cnf for the variable innodb_parallel_doublewrite_path

You should also set this

[mysqld]
innodb_doublewrite=0

Then, restart mysql

After restarting mysql, you can then delete /test/mysql/xb_doublewrite

CAVEAT

What is the purpose of this feature ?

According to Percona Server 5.7 performance improvements

Parallel doublewrite buffer. For ages, MySQL has had only one doublewrite buffer for flushing data pages. So even if you had several threads for flushing you couldn’t efficiently use them – doublewrite quickly became a bottleneck. We’ve changed that by attaching two doublewrite buffers to each buffer pool instance: one for each type of page flushing (LRU and flush list). This completely avoids any doublewrite contention, regardless of the flusher thread count. We’ve also moved the doublewrite buffer out of the system tablespace so you can now configure its location.

So, if you do want it gone, remove innodb_parallel_doublewrite_path if it is there. Although not recommnded, you must add innodb_doublewrite=0 to disable the InnoDB Double Write Buffer altogether.

2
  • 1
    And run the risk of "torn pages" in the case of a power failure? – Rick James Apr 25 '16 at 20:57
  • If you have Percona Server, the best you can do is having the innodb_parallel_doublewrite_path set to a different partition/disk (preferably XFS) for the xb_doublewrite tablespace. That will split the fsync calls done by the doublewrite threads. – 3manuek Nov 24 '16 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.