In Database{Property,Item}TermStore, remove the whole transaction code, effictively letting the users of these classes handle transactions.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | • alaa_wmde | T225084 Test write logic on test node | |||
Resolved | Lucas_Werkmeister_WMDE | T225348 Remove Database{Property,Item}TermStore transactions control code |
Event Timeline
I provided only the removal here as an option as it follows the a general principle of pushing transaction handling in db related code as father outside in the layers as it makes sense (usually that's better handled in Application layer in layered architecture.. considering here users of the new term store as being Application layer to it).
If you feel better about still handling transactions, when the user do not, that's also fine.. although YAGNI here also suggest that we postpone that case as we don't have it yet in Wikibase/Wikidata cases as far as I understand.
I think removing it is fine for now. Also, this means we can likely (partially) revert Ic25f4817ae: Inject ILBFactory, not ILoadBalancer, into stores, since we won’t need the transaction methods anymore. (Or should we still inject an ILBFactory? I really don’t understand the difference between the two classes, but in all the other classes we added, we inject an ILoadBalancer.)
Change 516471 had a related patch set uploaded (by Lucas Werkmeister (WMDE); owner: Lucas Werkmeister (WMDE)):
[mediawiki/extensions/Wikibase@master] Remove transaction logic from Database*TermStores
Change 516472 had a related patch set uploaded (by Lucas Werkmeister (WMDE); owner: Lucas Werkmeister (WMDE)):
[mediawiki/extensions/Wikibase@master] Inject ILoadBalancer, not ILBFactory, into stores
Change 516471 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Remove transaction logic from Database*TermStores
Change 516472 merged by jenkins-bot:
[mediawiki/extensions/Wikibase@master] Inject ILoadBalancer, not ILBFactory, into stores