OllieJones / sqlite-object-cache

A WordPress persistent object cache for the rest of us.
GNU General Public License v2.0
24 stars 4 forks source link

Still seeing occasional timeouts after eliminating VACUUM from ordinary production. #33

Closed OllieJones closed 1 year ago

OllieJones commented 1 year ago

There are still reports of timeouts on v1.3.2. One comes from a user who has set the timeout to 20sec (!!) and put the file on /tmp.

What can we do about it?

  1. Make the crash trace more useful for diagnosing these problems if possible. The SQLite3 version would be helpful, as would igbinary availability. Ideal would be something describing workloads from other clients, but that's hard.
  2. Re-attempt the operation. Isn't this just like increasing the timeout, but more complex to implement?
  3. Limit the number of items per transaction updated / deleted in _multiple operations: COMMIT and then re-BEGIN when there are more than the limit. This fix is based on the unproven hypothesis that php process B times out because php process A is taking too long to do a writing _multiple operation.
  4. Can there possibly be a deadlock somewhere? Hard to imagine with one table and two indexes.
OllieJones commented 1 year ago

Released in 1.3.4.