mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
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). |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_api_security.py | ||
| test_audit_rows.py | ||
| test_capacity.py | ||
| test_compute_password.py | ||
| test_cpu_graph.py | ||
| test_gstfsd_key.py | ||
| test_host_nav.py | ||
| test_migration_address.py | ||
| test_operation_locks.py | ||
| test_overview.py | ||
| test_overview_status.py | ||
| test_ownership.py | ||
| test_ownership_race.py | ||
| test_quota_down_host.py | ||
| test_reconciliation.py | ||
| test_validators.py | ||
| test_views.py | ||