[zanata-bugs] [Bug 1207980] New: Split up large Liquibase changesets to avoid partial updates

bugzilla at redhat.com bugzilla at redhat.com
Wed Apr 1 07:14:25 UTC 2015


https://bugzilla.redhat.com/show_bug.cgi?id=1207980

            Bug ID: 1207980
           Summary: Split up large Liquibase changesets to avoid partial
                    updates
           Product: Zanata
           Version: 3.7
         Component: DatabaseChange
          Assignee: djansen at redhat.com
          Reporter: sflaniga at redhat.com
        QA Contact: zanata-qa at redhat.com
                CC: zanata-bugs at redhat.com



Description of problem:

Several of the changesets in 3.7 can take a very long time to run.  (That is a
problem in itself, for another time.)  If the long operation is cancelled (eg
appserver times out), mysql finishes the current change and autocommits it, but
the DATABASECHANGELOGLOCK is never cleaned up.  Eventually, the admin will have
to clear the lock, but if the changeset includes multiple changes, Liquibase
will attempt the first change again, and fail.  Recovering from this is quite
slow and painful, especially for anyone who isn't familiar with Liquibase or
Zanata.

I suggest that we replace the affected changesets with multiple smaller
changesets:

- one change per changeset.
- using a precondition to skip the change if it has already been applied.

Also, we may be able to speed up the changes overall by making multiple
alterations to the same table in a single "change" (eg adding several indexes
or columns to the same table).

Finally, we should log a message before beginning each large changeset, so that
the admin will have some idea why Zanata is taking a long time to start.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=Yr9IIBdtis&a=cc_unsubscribe




More information about the zanata-bugs mailing list