[infinispan-dev] Major version cleaning

Pedro Ruivo pedro at infinispan.org
Mon Feb 20 11:48:30 EST 2017



On 20-02-2017 16:12, Bela Ban wrote:
>
>
> On 20/02/17 17:06, Tristan Tarrant wrote:
>> Hi guys, we discussed about this a little bit in the past and this
>> morning on IRC. Here are some proposed removals:
>>
>> - Remove the async transactional modes, as they are quite pointless
>> - Remove batching: users should use transactions
>
> How do you make a bunch of modifications and send them asynchronously if
> both batching *and* async TXs are getting removed?

We are not removing features, we are removing broken code.

Batching is using transactions and async transactions doesn't make sense 
since infinispan has to report to TransactionManager.

Our current asyn-tx is broken in a way that is starts to commit and 
reports OK to the transaction manager. if you have a topology change or 
a conflict, you will end with inconsistent data.

So, why do we keeping this code around?

you can still move a transaction commit to another thread if you don't 
wanna wait for its commit:

tm.begin()
doWork()
tx = tm.suspend()
new_thread {
   tm.resume(tx)
   tm.commit()
}

The best thing I can think of is to keep the batching API and 
re-implement it to provide an endBatchAsync() that will do the above.

>
> So if someone wants to apply a unit of work *atomically* (either all
> modifications within that unit of work are applied, or none), what
> alternatives exist?
>
>> - Remove the tree module: it doesn't work properly, and uses batching
>>
>> Please cast your votes
>>
>> Tristan
>>
>


More information about the infinispan-dev mailing list