maria:bb-10.2-mdev11934

Last commit made on 2017-09-11
Get this branch:
git clone -b bb-10.2-mdev11934 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-mdev11934
Repository:
lp:maria

Recent commits

8b1f9f8... by Sergey Petrunia

MDEV-11934: MariaRocks: Group Commit with binlog

Implement MariaDB's Group Commit API. This is a first attempt which lacks
the expected performance.

c52ffbe... by Sergey Petrunia

Remove garbage code

575afea... by Sergey Petrunia

MyRocks: Remove todo-#ifdef in Rdb_trx_info_aggregator::process_tran

fba53e7... by Sergey Petrunia

Make MyRocks test stable: Data_length may vary slightly as well

7655196... by Sergey Petrunia

Enable basic XA between MyRocks and the binlog

This allows basic master crash-safety
- Un-comment and update relevant parts of the code
- Make rocksdb_rpl suite work like other MyRocks testsuites
  (load the MyRocks plugin, don't start if it is not compiled in, etc)
- For now, disable all tests in the rocksdb_rpl suite.
- MariaDB-fication of rpl_rocksdb_2p_crash_recover test.

a544225... by Kenny John Jacob <email address hidden>

Update README.md

Fix minor typo.

e7bf8bc... by Marko Mäkelä

MDEV-13534 InnoDB STATS_PERSISTENT fails to ignore garbage delete-mark flag on node pointer pages

This bug was a regression caused by MDEV-12698.

On non-leaf pages, the delete-mark flag in the node pointer records is
basically garbage. (Delete-marking only makes sense at the leaf level
anyway. The purpose of the delete-mark is to tell MVCC, locking and purge
that a leaf-level record does not exist in the READ UNCOMMITTED view,
but it used to exist.)
Node pointer records and non-leaf pages are glue that attaches multiple
leaf pages to an index. This glue is supposed to be transparent to the
transactional layer.

When a page is split, InnoDB creates a node pointer record out of the
child page record that the cursor is positioned on. The node pointer record
for the parent page will be a copy of the child page record, amended with
the child page number. If the child page record happened to carry the
delete-mark flag, then the node pointer record would also carry this flag
(even though the flag makes no sense outside child pages).

(On a related note, for the first node pointer record in the first
node pointer page of each tree level, if the MIN_REC_FLAG is set,
the rest of the record contents (except the child page number)
is basically garbage. From this garbage you could deduce at which point
the child was originally split.)

page_scan_method_t: Replace with bool, as there are only 2 values.

dict_stats_scan_page(): Replace the parameter scan_method with is_leaf.
Ignore the bogus (garbage) delete-mark flag if !is_leaf.

ae0759a... by Sergey Petrunia

MDEV-13602: rocksdb.index_merge_rocksdb2 failed in buildbot

- Add include/index_merge*. Upstream has different files than MariaDB,
  use copies theirs, not ours.
- There was a prblem with running "DDL-like" commands with binlog=ON:
  MariaDB sets binlog_format=STATEMENT for the duration of such command
  to prevent RBR replication from catching (and replicating) updates to
  system tables.
  However, MyRocks tries to prevent any writes to MyRocks tables with
  binlog_format!=ROW.
- Added exceptions for DDL-type commands (ANALYZE TABLE, OPTIMIZE TABLE)
- Added special handling for "LOCK TABLE(s) myrocks_table WRITE".

06b4b99... by Marko Mäkelä

The test failed once on Buildbot with the result difference:

 # ib_logfile0 expecting FOUND
-FOUND 3 /public|gossip/ in ib_logfile0
+FOUND 2 /public|gossip/ in ib_logfile0

The most plausible explanation for this difference
should be that the redo log payload grew was so big that
one of the strings (for writing the undo log record,
clustered index record, and secondary index record)
was written to ib_logfile1 instead of ib_logfile0.

Let us run the test with --innodb-log-files-in-group=1 so that
only a single log file will be used.

81bd81f... by Marko Mäkelä

Adjust InnoDB debug assertions for Oracle Bug#25551311 aka Bug#23517560

The MySQL 5.6.36 merge (commit 0af9818240a0745aca3fd94891664fe008de24fe
in MariaDB Server 10.0.31, 10.1.24, 10.2.7) introduced a change from
Oracle:
Bug#25551311 BACKPORT BUG #23517560 REMOVE SPACE_ID RESTRICTION
FOR UNDO TABLESPACES

Some debug assertions in MariaDB 10.2 were still assuming that the
InnoDB undo tablespace IDs start from 1. With the above mentioned
change, the undo tablespace IDs must be contiguous and nonzero.