Skip to content
  • Enrico Tröger's avatar
    Perform domain sync within a single transaction · eabbcedf
    Enrico Tröger authored
    This increases data inconsistency and also performance of the whole
    update process: SqlAlchemy can use its own caching better with a single
    transaction as it does not need to mark already fetched objects as dirty
    and so re-fetch them again on later use. So after deleting a domain,
    we can still use the previously fetched domain objects for the update
    operations afterwards. Otherwise SqlAlchemy had to fetch each domain
    object again with single SELECT statements which leads to bad
    performance with many domains (>> 1000).
    
    The introduced "do_commit" variable controls whether the database
    changes are to be committed by the caller or in the called method
    itself. So we can use a single transaction for the Domain.update()
    method while still preserving the previous behavior for other callers.
    
    Closes #428.
    eabbcedf