Hi, Nikita, On Oct 31, Nikita Malyavin wrote:
Also, I've looked at your latest branch. What were you optimizing with the commit 3afa3288221 (the one with usable_keys_data)?
It's complex and I don't quite see what's the purpose of it. It looks like all you need to do is to decide on the best index to use, once, save it somewhere, e.g. in RPL_TABLE_LIST, and that's it.
This can be done, for example, in copy_data_between_tables().
For ONLINE ALTER TABLE yes, but what about usual replication? I'd prefer one generic algorithm for everything.
For replication it already works. The key is found once, before a batch of rows. It cannot be done less often than that, because the next row event can be for a different table and have a different row format. For online alter all events are for the same table and all events have full rows. There is no need to recalculate the key per event. Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org