1. 26 Jul, 2019 13 commits
  2. 25 Jul, 2019 20 commits
  3. 24 Jul, 2019 7 commits
    • Marko Mäkelä's avatar
      0c7c6101
    • Marko Mäkelä's avatar
      MDEV-14154: Failing assertion: slot->last_run <= current_time in fts0opt.cc · c663a941
      Marko Mäkelä authored
      The FTS optimizer thread made a false assumption that time(NULL)
      is monotonic. The system clock can be adjusted to the past,
      for example if the hardware clock was drifting to the future,
      and it was adjusted by NTP.
      
      fts_slot_t::interval_time: Replace with the constant
      FTS_OPTIMIZE_INTERVAL_IN_SECS.
      
      fts_slot_t::last_run, fts_slot_t::completed: Clarify the
      documentation.
      
      fts_optimize_get_time_limit(): Remove a type cast, and
      add a FIXME comment about domain mismatch.
      
      fts_optimize_compact(), fts_optimize_words(): Limit the time
      also when the current time has been moved to the past.
      
      fts_optimize_table_bk(): Check for wrap-around.
      
      fts_optimize_how_many(): Check for wrap-around, and remove the
      failing assertions.
      
      fts_is_sync_needed(): Remove a redundant call to time(NULL).
      c663a941
    • Marko Mäkelä's avatar
      Reduce the amount of time(NULL) calls for lock processing · 9e5df967
      Marko Mäkelä authored
      lock_t::requested_time: Document what the field is used for.
      
      lock_t::wait_time: Document that the field is only used for
      diagnostics and may be garbage if the system time is being adjusted.
      
      srv_slot_t::suspend_time: Document that this is duplicating
      trx_lock_t::wait_started.
      
      lock_table_print(), lock_rec_print(): Declare in static scope.
      Add a parameter for the current time.
      
      lock_deadlock_check_and_resolve(), lock_deadlock_lock_print(),
      lock_deadlock_joining_trx_print():
      Add a parameter for the current time.
      9e5df967
    • Marko Mäkelä's avatar
      MDEV-14154: Document some time_t fields better · 2b5bc761
      Marko Mäkelä authored
      srv_slot_t::suspend_time, os_aio_slot_t::reservation_time,
      sync_cell_t::reservation_time: Explain what could happen
      if the system time has is being adjusted.
      
      fts_sync_t::start_time: Document that the field is mostly unused.
      2b5bc761
    • Marko Mäkelä's avatar
      Always initialize trx_t::start_time_micro · 10727b69
      Marko Mäkelä authored
      This affects the function has_higher_priority() for internal or
      recovered transactions.
      10727b69
    • Marko Mäkelä's avatar
      Remove ut_usectime(), ut_gettimeofday() · 10ee1b95
      Marko Mäkelä authored
      Replace ut_usectime() with my_interval_timer(),
      which is equivalent, but monotonically counting nanoseconds
      instead of counting the microseconds of real time.
      
      os_event_wait_time_low(): Use my_hrtime() instead of ut_usectime().
      
      FIXME: Set a clock attribute on the condition variable that allows
      a monotonic clock to be chosen as the time base, so that the wait
      is immune to adjustments of the system clock.
      10ee1b95
    • Marko Mäkelä's avatar
      Correct the type of a parameter · e764d5bc
      Marko Mäkelä authored
      e764d5bc