1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/computes/tests
catborise 37b87839c1 perf(computes): a VM list load writes nothing while the hosts match the database
Every VM list load reconciles each compute with libvirt. Even when nothing
had changed, that took the compute's claims and a transaction with
SELECT FOR UPDATE (and the ownership advisory lock on PostgreSQL): about
11 queries a compute, 4 of them writes. On SQLite each load queued behind
every other write of the app.

The reconcile now first compares libvirt's VM list with the database,
without a claim or a transaction, and stops when they match and no
removed record has expired. Otherwise it runs as before, reading libvirt
again under its claims, so two reconciles still cannot commit in reverse
order. With two matching hosts a list load goes from 38 queries (8
writes) to 18 (none).
2026-11-04 20:54:07 +03:00
..
__init__.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_api_security.py refactor(computes): the lock helpers take claims instead of file locks 2026-10-14 23:27:57 +03:00
test_audit_rows.py feat(logs): admin changes and logins are recorded on the Logs page 2026-10-23 10:30:48 +03:00
test_capacity.py feat(computes): the Computes list on Bootstrap's cards, badges, bars and menus 2026-10-27 21:52:08 +03:00
test_compute_password.py feat(computes): the host form names its connection and folds the advanced fields 2026-10-31 18:10:05 +03:00
test_cpu_graph.py refactor(templates): the host pages' scripts load from static files 2026-11-02 09:45:26 +03:00
test_gstfsd_key.py fix(gstfsd): only the panel, with the host's key, can change a VM's disk 2026-10-31 01:53:43 +03:00
test_host_nav.py style(computes): the host's sections on one line in every theme 2026-10-29 15:50:31 +03:00
test_migration_address.py fix(computes): a VM migrates to its host's panel address when it has no migration address 2026-11-01 18:41:07 +03:00
test_operation_locks.py refactor(computes): the lock helpers take claims instead of file locks 2026-10-14 23:27:57 +03:00
test_overview.py feat(storages): the storage pages on Bootstrap's tables, cards, badges and menus 2026-10-28 19:27:21 +03:00
test_overview_status.py feat(computes): the Computes list on Bootstrap's cards, badges, bars and menus 2026-10-27 21:52:08 +03:00
test_ownership.py perf(computes): a VM list load writes nothing while the hosts match the database 2026-11-04 20:54:07 +03:00
test_ownership_race.py fix(computes): a VM moved between computes keeps its owners on PostgreSQL 2026-10-23 15:31:04 +03:00
test_quota_down_host.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_reconciliation.py perf(computes): a VM list load writes nothing while the hosts match the database 2026-11-04 20:54:07 +03:00
test_validators.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_views.py perf(computes): a VM list load writes nothing while the hosts match the database 2026-11-04 20:54:07 +03:00