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/e5b67a46bcb75a751f5906f19694971bc80....
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
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/