Article on JBoss Cache 1.4.0 on InfoQ
[ Manik Surtani ] [Permalink]
Manik Surtani
Lead, JBoss Cache
Posted on Mon, 17 Jul 2006 23:10 by Manik Surtani ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Mon, 17 Jul 2006 23:10 by Manik Surtani ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Fri, 14 Jul 2006 05:55 by Manik Surtani ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Sat, 13 May 2006 09:59 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Total time spent (ms): 127599 for 1000 loops Throughtput: 156 requests/secResults using the new, optimised marshalling mechanism
Total time spent (ms): 97196 for 1000 loops Throughtput: 205 requests/secOver 30% increase in throughput and almost 25% quicker in overall timings. So what about CPU usage? We then attached a profiler to these tests to analyse how much time is spent in the replication code. The key thing to look for is time spent in RpcDispatcher.handle().
Posted on Fri, 21 Apr 2006 07:21 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Mon, 3 Apr 2006 20:04 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Wed, 22 Mar 2006 05:51 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Lets assume each node serves HTTP requests and needs to maintain HTTP session data. Node A's session data is backed up on Node B, Node B's session data is backed up on Node C, etc. Now lets say Node A crashes.
Node B takes over Node A's data and treats it as its own. And now when requests come in for sessions originally on Node A, the load balancer picks a node to redirect the request to - lets say this is Node D. Node D, realising that it does not own the session requested, attempts to find the new data owner - in this case Node B - and transfers the session data from Node B to Node D. Node D now becomes the new owner of this session and Node B removes it from its in-memory state. Node D, now the new owner of this session, will be able to deal with future requests involving this state. Data is also always backed up - i.e., when Node B takes ownership of failed Node A's sessions, it will start to back it up (onto Node C) along with its own sessions. Once Node D takes ownership of this session, again it will be treated the same as the rest of Node D's sessions and get backed up (onto Node E).
It must be noted that this gravitation would only occur if and when needed (i.e., lazy gravitation), and even then, will only occur once per session since the requesting node would take ownership of this session and its data.
This peer based mechanism allows load balancers to work with no extra configuration or setting up, as data will always gravitate to the server that needs it. The other benefit is that when a server crashes, its data and load can get evenly distributed across the remaining servers as the load balancer directs requests based on its configured load balancing policy for new requests. In the other setups mentioned above, the buddy server would suddenly have its load doubled when a server failure occurs.
The only requirement placed on such a setup is that sticky sessions are used, to prevent data from changing owners repeatedly if requests attached to a single session are directed to different servers in the cluster each time. Given that sticky sessions are very commonly used as an architectural pattern anyway and most application servers tend to use sticky sessions by default, this is a relatively painless requirement.
The designs of Buddy Replication in JBoss Cache 1.4.0 "Jalapeno" are available on this wiki page, and can be discussed on this forum thread.
--Posted on Mon, 13 Mar 2006 18:26 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Fri, 3 Mar 2006 04:15 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Wed, 1 Mar 2006 16:25 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Tue, 24 Jan 2006 14:11 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Posted on Thu, 15 Dec 2005 11:00 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Naturally, this is just a roadmap, and not all features may make it into “Wasabi”. “Wasabi” is planned for release by the end of February, 2006, with betas available by mid-January and alphas/developer releases by December.
Please visit the JBossCache design forums to participate in design discussions regarding this release.
“Wasabi”. It’s hot. You like it. You know you want some.
Posted on Thu, 10 Nov 2005 10:03 by admin ( day(s) old) Trackbacks [0]
[ Manik Surtani ] [Permalink]
Imagine a world where you have near-serializable data integrity in an in-memory, replicated caching product. All while being able to scale, perform, manage a high degree of concurrency. Smells like optimistic locking in JBossCache? You smell well. Your nose knows. You sniff terrif-ically. Ok, forget the last one, that was bad.
Locking, whether for reading or writing, has been a necessary evil when dealing with concurrent access on datasets. Locks are currently implemented in a pessimistic fashion in JBossCache. Meaning, data is locked, whether for reading or writing, throughout the duration of a transaction involving access to the data. This can lead to scalability issues and deadlocks.
Optimistic locking assumes that locks aren't necessary for concurrent access, and deals with synchronisation and merging of concurrently accessed data at the time of committing a transaction. Some locking is still necessary, but this is only for a very short duration at the commit boundary of a transaction.
The long and the short of it, you can now have a high level of data integrity while still maintaining a high degree of concurrency, leading to a very scalable caching product.
Details on obtaining, configuration, design, etc. are on the JBoss Wiki - feedback is very much appreciated!
Cheers,
Manik
Posted on Fri, 2 Sep 2005 09:51 by admin ( day(s) old) Trackbacks [0]
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| < Jun | Jul | Aug > | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
E-mail: JBoss Employees