Hi, Nikita, On Oct 20, Nikita Malyavin wrote:
okay, now I've seen how you used it and I'd say it's _such a rare use case_ that you can store your online_alter_cache in the XID_cache_element and look it up there. Or even in a separate data structure, that will be empty most of the time anyway.
I think extending XID was a better alternative. I didn't read the XA protocol: as far as I understand, only xid_t is its part, and XID is our alias -- or, well, not an alias anymore. Having it as an extension of xid_t looks quite natural to me. Besides, even the handlerton abi is left compatible.
I had a link to a different XA implementation in my previous email. Here it is again: https://github.com/berkeleydb/libdb/blob/master/src/dbinc/xa.h There you can see ============= struct xid_t { long formatID; /* format identifier */ long gtrid_length; /* value from 1 through 64 */ long bqual_length; /* value from 1 through 64 */ char data[XIDDATASIZE]; }; typedef struct xid_t XID; ============= This is a verbatim copy from the standard. You can also search github for "path:/xa.h" and you'll find many matches all having the above declaration exactly. Regards, Sergei Chief Architect, MariaDB Server and security@mariadb.org