Tuesday, February 12, 2019

Aurora mySQL differences

Working with Aurora MySQL I thought would be a breeze, but its subtle differences make me scratch my head. Thus I need to find out more about this and write a post :)

What is Aurora?

It's a mySQL wire protocol compatible storage management system that sits on top of mySQL and modifies some innodb internals. You can read about more of the architecture here: I think of it as a Proxy Storage Engine System


The differences start from just starting the server.  Aurora MySQL has Huge Page support turned on by default since AWS launches Aurora MySQL server with their custom flag for innodb large page support:

innodb_shared_buffer_pool_uses_huge_pages

This is not an open source setting documented by MySQL official build. In fact, there is not much information on this setting at all. I can only assume RDS instances are configured with Huge page support as detailed here and this custom setting for Aurora turns large page support on for mysqld.

So, what else is different between Aurora and Innodb? From Amazon's docs

The following MySQL parameters do not apply to Aurora MySQL:
  • innodb_adaptive_flushing
  • innodb_adaptive_flushing_lwm
  • innodb_checksum_algorithm
  • innodb_doublewrite
  • innodb_flush_method
  • innodb_flush_neighbors
  • innodb_io_capacity
  • innodb_io_capacity_max
  • innodb_log_buffer_size
  • innodb_log_file_size
  • innodb_log_files_in_group
  • innodb_max_dirty_pages_pct
  • innodb_use_native_aio
  • innodb_write_io_threads
  • thread_cache_size
The following MySQL status variables do not apply to Aurora MySQL:
  • innodb_buffer_pool_bytes_dirty
  • innodb_buffer_pool_pages_dirty
  • innodb_buffer_pool_pages_flushed
Note
These lists are not exhaustive.




In summary, Aurora uses mySQL but it's also a layer on top of mySQL. In all essence, it's just another storage engine which forks Innodb and provides management primitives built into the DBMS system.


In the next weeks, I'll describe how we launch Aurora instances and why as well as capturing more differences that have not made it into this list.




No comments: