All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.multiverse.stms.alpha.commute.html Maven / Gradle / Ivy

Go to download

Contains the main Multiverse STM Implementation: the Alpha Engine. The Alpha engine supports readonly and update transactions. It also supports the retry/or else mechanism. This not the jar you want to have in your final distribution because it isn't instrumented (hence the name unborn). The jar you eventually want to have in your distribution is the multiverse-alpha jar. What this package does, is test the instrumentation for the Javaagent. The compiletime instrumentation is tested in the multiverse-alpha package (where all tests are copied and reexecuted but now with compiletime instrumentation).

The newest version!



Commute

Operations can be executed in a different order, while still being valid.
For example an unconditional increase of the salary or an increase in the size.

Another example is a change in the size of a collection. If somehow an operation
could commute, so in case of a conflict reexecuted,

CommuteTask... or perhaps using annotation.

    public void add(E item){
        head = new Node(head, item);
        incSize();
    }

    @Commute
    void incSize(){
        size++;
    }

Needed

  1. Maintain a history with all commute operations
When a transaction fails, it should check if the fields in that conflict are fields changed in a commute operation; this is part of the transaction history. The prepare using commute works like this:
  1. It automatically should revert the fields that can be 'repared'. The other fields should not be changed. The problem is that somehow needs to be analyzed wich fields should be copied; could the orelse functionality save us somehow? So can this functionality somehow in it.
  2. >
  3. The commute operations should all re-execute.
There also needs to be a change/addition to the current conflict detection. Atm is is failfast because there is no possibility to repair, but if the repair is added we need to find all fields from all atomic objects that have conflicted. Based on this conflicting fields one can detect which commute methods need to be notified. Commute matchers; Can automatically all commuters be invoked?




© 2015 - 2025 Weber Informatics LLC | Privacy Policy