Make LinksUpdate run without a db transaction.
authordaniel <daniel.kinzler@wikimedia.de>
Mon, 27 Aug 2012 12:32:06 +0000 (14:32 +0200)
committerdaniel <daniel.kinzler@wikimedia.de>
Mon, 27 Aug 2012 12:32:06 +0000 (14:32 +0200)
commit41f2132fe83ab31c77c8d02a7e944d4123720dd0
treea863f8b05e24173b099b4655c67ba13a395b4577
parent1c00630787b120102dd4e91507bfc91efa5f75f2
Make LinksUpdate run without a db transaction.

This causes LinksUpdate not to be wrapped by a transaction, fixing
a problem caused by the introduction of SqlDataUpdate. LinksUpdate
never used a transaction wrapping the entire update, but only small
transactions for some database operations. SqlDataUpdate however introduced
an implicite transaction bracket for the entire update, causing the old,
inner transactions to be nested transactions, which is unsupported and
may cause database corruption (because starting a "nested" transaction
will commit the previous transaction prematurely).

Once we have support for nested transactions, LinksUpdate may again use a
transaction bracket for the entire update, but this is also subject to
performance considerations.

Change-Id: I80faf2ed79b56a3990a1724516e65621ca5bbece
includes/LinksUpdate.php
includes/SqlDataUpdate.php