Hi Aleksey, I think that we should remove trx_t::start_time, and always use trx_t::start_time_micro. I shortly discussed this with Vladislav Vaintroub, and he mentioned that the microsecond timestamp in THD::start_utime is updated at the start of each statement. I also looked at his MDEV-12345 performance fix <https://github.com/MariaDB/server/commit/e5b67a46bcb75a751f5906f19694971bc803d67c>. It looks like trx_start_low() is already doing the right thing, except that the trx_t::start_time should be removed. I'd welcome a contributed patch that removes trx_t:.start_time. Or if that really is too tricky, convert start_time_micro to start_time. Marko On Thu, Nov 16, 2017 at 11:29 AM, Aleksey Midenkov <midenok@gmail.com> wrote:
Hello!
Different semantics of these 2 members doesn't look good:
time_t start_time; /*!< time the state last time became TRX_STATE_ACTIVE */ ib_uint64_t start_time_micro; /*!< start time of transaction in microseconds */
Either `start_time_micro` should be drawn to the base of `start_time` or it should be explicitly commented that it has nothing to do with `start_time`. I.e. there is nothing wrong on algorithmic level, but such data members may (and certainly would) lead developers to misuse of `start_time_micro`.
-- All the best,
Aleksey Midenkov @midenok
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
-- Marko Mäkelä, Lead Developer InnoDB MariaDB Corporation DON’T MISS M|18 MariaDB User Conference February 26 - 27, 2018 New York City https://m18.mariadb.com/