Skip to main content

New XA Cache subsystem

8 replies [Last post]
ivelin
Offline
Joined: 2003-07-13

After a refactoring sprint, there is a new transactional cache subsystem, which implements Multi Version Concurrency Control with Snapshot Isolation and 2 phase (XA) commit support. It allows high concurrency, while providing near-serializable isolation level.

The initial round of code is ready to be committed. The current test suite is not completely passing:
Test results: passed: 360; failed: 19; error: 93

The impact to existing code has been as minimal as possible. For the most part it appears as a new implementation of CacheableMap.

Unless there are objections, the plan is to commit the code by tomorrow and continue working through test suite failures.

Ivelin

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
fram
Offline
Joined: 2004-05-13

Hi Ivelin,
nice using optimistic concurrency control should really improve mobicents performance and solve some of the problems that we had in the previous version.
What do you mean with near serializable isolation level?
Thanks,
Francesco

ivelin
Offline
Joined: 2003-07-13

> What do you mean with near serializable isolation
> level?

There are some trade offs that come with concurrency.

One of the main cases is that when two competing transactions write to the same entry one of them must roll back, because they started with the same snapshot and separately ended up with different versions of the data.

In pure serialized isolation, one of the transactions will be blocked until the other one completes. This of course prohibits concurrency.

ivelin
Offline
Joined: 2003-07-13

update: current testsuite status:
Test results: passed: 464; failed: 5; error: 3

ivelin
Offline
Joined: 2003-07-13

the testsuite results are now repeatedly good. These are the results after second all-tests run without restarting mobicents:
Test results: passed: 463; failed: 5; error: 4

ivelin
Offline
Joined: 2003-07-13

another round of refactoring was committed to further migrate sbb entities towards use of xacache.
Test results: passed: 463; failed: 5; error: 5

ivelin
Offline
Joined: 2003-07-13

The core is in a good shape again:
Test results: passed: 466; failed: 3; error: 3

The 6 remaining issues are well known diffs between 1.1 vs 1.0 APIs and some configuration based diffs.

We should be ready for CR3 as soon as the examples are cleaned up. Comments?

ivelin
Offline
Joined: 2003-07-13

The failures are down to 78 and keep dropping.
The code is going in now...

ivelin
Offline
Joined: 2003-07-13

code committed. feedback is welcome.