[infinispan-dev] transaction/query/mapreduce over hotrod

Mircea Markus mircea.markus at jboss.com
Fri Jul 15 07:53:09 EDT 2011


Hi,

As there is a high community demand for having these operations in place, and most of these are targeted for post 5.1 releases, I thought about a workaround for having this functionality in place. 
I hijacked Hotrod's put operation and added a custom interceptor, so that if a certain object is being "put" into remote cache, the server side interceptor jumps in and runs transactions.
This doesn't look too bad for the user, e.g. for supporting transactions:

RemoteCache rc = getRemoteCache();//from somewhere...

//this is what we'll use for running remote transactions over hotrod
BatchEnabledRemoteCache berc = new BatchEnabledRemoteCache(rc);

berc.startBatch(); //everything from here to endBatch call is a single transaction
berc.put("k", "v1");
berc.put("k2", "v2");
berc.put("k3", "v3");
berc.endBatch(true); // all or nothing!


Of course this won't work with other clients than the java client, but I think most of our users are using that one ATM. 
Currently there's only support for transactions but this approach (and the code) can be easily extended to mapreduce and querying. 
I added s short description on how this can be used [1], also the source code is available here[2].

What do you think about it? Is it worth suggesting to the users this approach(and possibly the code as well)?

Cheers,
Mircea

[1] https://github.com/mmarkus/ops_over_hotrod/wiki/Usage-guide
[2]https://github.com/mmarkus/ops_over_hotrod
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20110715/48e6b5fa/attachment.html 


More information about the infinispan-dev mailing list