[Maria-developers] how to use TC_LOG_MMAP in MySQL
hi , In http://bazaar.launchpad.net/~maria-captains/maria/10.0-mdev452/revision/3434 you make some change to the class TC_LOG_MMAP,and I want to debug those codes to see how it works.but i don't understand in what conditions will MySQL use the TC_LOG_MMAP.it only use TC_LOG_DUMMY or MYSQL_BIN_LOG depends on the value of opt_bin_log.so how will it use the TC_LOG_MMAP in MySQL. 2013-05-09 nanyi607rao
"nanyi607rao" <nanyi607rao@gmail.com> writes:
In http://bazaar.launchpad.net/~maria-captains/maria/10.0-mdev452/revision/3434 you make some change to the class TC_LOG_MMAP,and I want to debug those codes to see how it works.but i don't understand in what conditions will MySQL use the TC_LOG_MMAP.it only use TC_LOG_DUMMY or MYSQL_BIN_LOG depends on the value of opt_bin_log.so how will it use the TC_LOG_MMAP in MySQL.
TC_LOG_MMAP is only used when you have two transactional storage engines (that support XA) enabled in the server _and_ the binlog is disabled. So you need some other transactional engine beside InnoDB. The possibilities I know of are TokuDB and PBXT. If you compile the server with at least two of InnoDB, PBXT, and TokuDB and start it with binlog disabled, TC_LOG_MMAP will be used. You then also need to do a transaction involving at least two of the engines at the same time. As you can imagine, this is not the best tested part of the server ;-). Let us know if you discover any problems. - Kristian.
Hi, On 5/9/2013 1:06 PM, Kristian Nielsen wrote:
"nanyi607rao" <nanyi607rao@gmail.com> writes:
In http://bazaar.launchpad.net/~maria-captains/maria/10.0-mdev452/revision/3434 you make some change to the class TC_LOG_MMAP,and I want to debug those codes to see how it works.but i don't understand in what conditions will MySQL use the TC_LOG_MMAP.it only use TC_LOG_DUMMY or MYSQL_BIN_LOG depends on the value of opt_bin_log.so how will it use the TC_LOG_MMAP in MySQL.
TC_LOG_MMAP is only used when you have two transactional storage engines (that support XA) enabled in the server _and_ the binlog is disabled.
So you need some other transactional engine beside InnoDB. The possibilities I know of are TokuDB and PBXT.
If you compile the server with at least two of InnoDB, PBXT, and TokuDB and start it with binlog disabled, TC_LOG_MMAP will be used. You then also need to do a transaction involving at least two of the engines at the same time.
According to my records, if you choose PBXT as your second engine, you'll also need --pbxt-support-xa to hit the code (apparently it's OFF by default). Good luck, Elena
As you can imagine, this is not the best tested part of the server ;-). Let us know if you discover any problems.
- Kristian.
participants (3)
-
Elena Stepanova
-
Kristian Nielsen
-
nanyi607rao