In preparation for the 2017-2 MariaDB Developer Unconference in Shenzhen next week, I cloned the https://github.com/alibaba/AliSQL repository and reviewed the changes to storage/innobase.

The repository is based on commit c3a8ca1ed0063d4bca761ac9b57718796242ccc1 (tag: mysql-5.6.32) in the https://github.com/mysql/mysql-server/ repository.
I read the 13,587 lines of diff generated by the following command:
git diff c3a8ca1ed0063d4bca761ac9b57718796242ccc1 storage/innobase

Features that already exist in MariaDB in some form:
* Split the btr_search_latch (already present in MySQL 5.7/MariaDB 10.2.2)
* Buffer pool "hazard pointer" (5.7/10.2.2)
* Faster read view creation (done differently in WL#6578 MySQL 5.7/MariaDB 10.2.2)
* Persistent auto_increment (done differently in MDEV-6076 in MariaDB 10.2.4)
* Instant ADD COLUMN (done differently in MDEV-11369 in MariaDB 10.3.2)
* Sequence engine (done differently in MDEV-10139 in MariaDB 10.3.1)

New features:
* Counters for buffer pool LRU eviction: MONITOR_LRU_BATCH are split into MONITOR_LRU_BATCH_FLUSH and MONITOR_LRU_BATCH_EVICT
(Sounds like a good idea to me; maybe MariaDB should export these via status variables.)
* Issue#24 SPLIT LOG BUFFER TO ROTATE LOG WRITE
(I’d go further and change the LSN to count mtr_t::commit() instead of bytes, and to use a global buffer for mtr_t::log. This would require a new redo log format.)
* Issue#31 OPTIMIZE CHECK/GRANT OF INNODB TABLE LOCK
(I’d rather replace InnoDB table locks and dict_operation_lock with MDL.)
* Issue#29: ADD INFORMATION_SCHEMA.INNODB_RSEG TABLE
(I’d rather split the undo log into tablename.ibu files, also to ease import/export/backup.)
* Issue#9: PROVIDE ADAPTIVE ALGORITHM FOR INNODB CONCURRENCY TICKETS
(I think that the whole ticket business should be moved to the thread pool plugin.)
* Issue#34: Support force drop table
(I’d rather remove the InnoDB dictionary and have transactional .frm files, instead of writing work-arounds.)

Best regards,

Marko
--
Marko Mäkelä, Lead Developer InnoDB
MariaDB Corporation