U4-4748 - Clean up ContentService & MediaService so that any given method that executes performs all of it's CRUD in a single transaction - currently there are several methods that call other transactional methods such as Move (which is a fairly bad one)

Created by Shannon Deminick 23 Apr 2014, 08:05:08 Updated by Shannon Deminick 18 May 2016, 08:57:11

Relates to: U4-8442

Relates to: U4-4147

Subtask of: U4-5482


Shannon Deminick 23 Apr 2014, 08:06:05

This will both improve performance and data consistency

Stephan 09 Sep 2015, 07:53:42

Essentially done in the -contentcache branch.

Shannon Deminick 09 Sep 2015, 07:55:47

oh wow, will have a look one day :) Might be worth being in the same place so you can show me how everything is put together.

Stephan 07 May 2016, 13:03:30

Work-in-Progress, status = imported changes made (in the content cache branch) to content, media and member-type services + changes made to unit of work, etc to better support locking of everything. Now working on importing changes made to content, media and member services to have each operation run in its own transaction including moves & operations that deal with multiple items.

Stephan 12 May 2016, 09:11:27

PR https://github.com/umbraco/Umbraco-CMS/pull/1266

Review: code review.

There are a ''lot'' of changes in there. The ContentService should be ''much'' cleaner and operate ''entirely'' within proper transactions and distributed locks. TBH it is quite probable that I have messed an event or XML update, will fix when doing NuCache anyways.

Todo: Must do the same to MediaService = U4-8447 Must fix tags & trees = U4-8442 Must cleanup the "operation" stuff in services = U4-6888

Priority: Normal

Type: Bug

State: Fixed


Difficulty: Normal


Backwards Compatible: True

Fix Submitted:

Affected versions: 6.0.0, 6.1.0, 7.0.0, 7.1.0, 6.0.1, 6.0.2, 6.0.3, 6.0.4, 6.1.1, 6.0.6, 6.0.5, 6.0.7, 6.1.2, 6.1.3, 6.1.4, 6.1.5, 6.1.6, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.1.1

Due in version: 8.0.0

Sprint: Sprint 15

Story Points: