Commit Graph
2 Commits
Author SHA1 Message Date
Olivier Dony 94a0bbed0a [IMP] res.users: move login_date info to extra table
Writing frequently to master data, and particularly to res.users
records is dangerous because it can temporarily delay/abort
concurrent transactions due to FK locking/serializability
heuristics. (Even with PostgreSQL 9.3+)

The `login_date` field updated when a user is authentiocated
is still useful but better handled in a separate table that
exclusively receives independent INSERTs (no UPDATE/DELETE).
This minimizes the chances of transactional conflicts.

This commit moves the login_date info into a separate
`res.users.log` table for this purpose, replacing it
with a related field. The user and login date info are
automatically handled by the magical fields (create_uid,
create_date) in `res.users.log`.
The related field must not be stored because that would
create the same problems as the original field.

In order to cleanup redundant entries in res.users.log
the 'auto-vacuum' cron job used for TransientModels was
extended to be a generic "internal data vacuum cleaner",
and now takes care of this as well.

The code for updating last login and vacuuming was split
up into smaller methods to make extensions easier.

Fixes #8585
Fixes #8590
2015-09-30 03:02:45 +02:00
Parth Gajjar c6a0af45ef [ADD] web_settings_dashboard: Settings Dashboard 2015-09-04 13:03:21 +02:00