We will be covering
- semi-synchronous replication
- performance schema
- more partitioning options
- InnoDB – LOTS of InnoDB (performance and scalability improvements)
In 5.5 InnoDB will be the default!!! WOOT.
Default replication is asynchronous. Meaning master writes to binary log and the slave connects and “pulls” contents of the binary log. Bad thing is if the master crashes, there’s no guarantee that a slave has all committed transanction.
Simi-Synchronous Replication is an alternative to asynchronous replication. Midway point between asynchronous and fully syncronous. Master only waits for a slave to receive an event. Don’t have to wait for slaves to actually commit.
Performance schema tracks at an extremely low level. Just like Information schema, tables are views or temporary tables. Activation doesn’t cause any change in server behavior. This is designed for advanced users.
Think of SIGNAL as an exception, a way to “return” an error. You get exception-handling logic for stored procedures, stored functions, triggers,events and db apps.
RESIGNAL lets you pass error information up. Think of it as a catch. Requres an active handler to execute. Lets you program on your PHP side to catch that very specific handling.
Column partitioning is variants on RANGE and LIST partitioning. Allows the use of multiple columns in partitioning keys. All columns are taken into account for placing rows in partitions and for partitioning pruning. Supports the use of non-integer columns (DATE/DATETIME/strings…).
Major differences from just RANGE is you don’t accept expressions, only names in columns. Looking at an example. You’re looking at full tuples, not the individual parts. Both parts of the tuple have to pass.
List column allows for multiple column values. Do not need to convert values to integers to work with. Much easier to read. Example slide is very hot.
Mutex: Mutually Exclusive lock. Apparently horrible for concurrency.
Read Ahead is when InnoDB tries to be smart for you. Prefetch multiple pages in the buffer cache asynchronously. You can now control when InnoDB performs a read-aahead operation by setting innodb_read_ahead_threshold. Default is 56.
Edit/Note: There was a lot more discussed by @lig but it was over my head a bit. I’ll try to look at her slides and see if I can understand them. Trying the slideshare embed below so that others can see. Feel free to explain the rest of the slides to me because, like i said, they’re beyond my current skill level.