Monday, 29 September 2008

First CR for 3.0.0

Late Friday I cut the first CR for Naga - 3.0.0.CR1 is now in our Maven2 repo and on for you to download.

There are a host of new features, fixed bugs and performance tweaks in CR1 - check out the release notes on JIRA for the details.

Finally, I would like to add that this is not strictly a CR in that I can't release this as a GA. The documentation - FAQs, user guide and tutorial - still needs to be brought up to date with all the new features in Naga, but apart from that, the code is ready for the prime time. Pending feedback, bug reports, and the like, of course.

So, please treat this release as something close to prodution quality and feed back as much as you can on the user forums - this is really important to us. What I am particularly interested to hear are, in addition to comments on new features:

  • Performance under load
  • Performance in large clusters
  • Backward compatibility against code written for JBC 2.x
I look forward to hearing from you!


Thursday, 25 September 2008

JBCS 1.0.0 CR1 powered up

Hello hello all, I come out of the darkness for the first time in a couple of weeks: -

As the title suggests, the first release candidate for JBoss Cache Searchable is up and running - download here. Some of you who are more inquisitive might be wondering what's actually changed from Beta 1.

Here's what's new. The 2 iterator methods on CacheQuery - iterator() and lazyIterator() - both can be called with integer parameters. Your fetchSize - your object buffer. This doesn't mean that the method calls with no parameters won't work, that just delegates to the method with parameters and gives a default parameter of 1. If you're more interested and want to dig deeper, have a look on fisheye.

As usual, have a play around and if there are any problems, you can find me on the forums.

On the horizon, I'm looking at releasing a version of the searchable-cache that depends on JBoss Cache 3.0.0. Personally, I'm quite excited to see how searchable-cache performance will change when it's depending on 3.0.0. I will keep you updated :).

Thanks for listening,

Thursday, 18 September 2008

Caching, parallelism and scalability

DZone have just published an article by yours truly on Caching, Parallelism and Scalability. Check it out!

- Manik

Wednesday, 3 September 2008

Naga Beta1 - ready to rock and roll!

I've got a number of treats for you guys today.

Firstly, I've just released 3.0.0 BETA1. The public API is finally stable and all major features are in. A few minor bugs and performance tweaks (and documentation) pending, this is pretty much what Naga will look like. Expect it to rock your world! ;)

Second, after much discussion with the community, I have decided to make Naga API compatible with 2.x releases (Poblano, Alegrias and Habanero). This means a somewhat more cluttered API and a pile of old, deprecated methods, but at least it means you can just drop in a Naga jar into an app compiled against 2.x and expect things to work. You could then update your code to use more "current" APIs at your leisure. Keep in mind though that Naga runs with MVCC by default. If you wish to use PESSIMISTIC locking (the previous default) please make sure you specify this explicitly in your config file.

Finally, at long last, I have pretty pictures for people. Benchmarks comparing 3.0.0.BETA1 against 2.2.0.GA (released just last weekend), and 2.1.1.GA. And, for kicks, against the latest EHCache release as well. So far I just have the standalone benchmarks. Expect replicated benchmarks coming your way very soon.

The release

So, lets get started. Download the release in the usual place, feedback on the forums please. The more feedback the better, it helps us make JBoss Cache a better product. The changelog is in JIRA.

Notable features include:

  • a new batching API (JBCACHE-991)
  • the ability to persist transient state upon startup when fetchPersistentState is false (JBCACHE-131)
  • redesigned eviction, where you can now provide not just policies on how to select nodes for eviction, but also how that eviction behaviour is manifested (JBCACHE-1398). In plain English, this means you can now set the cache up such that nodes are completely removed upon eviction.
Benchmarks, part 1 : Standalone (LOCAL mode) benchmarks

As for benchmarks, these were generated using the Cache Benchmark Framework that I wrote. I actually encourage people to download the framework and perform these benchmarks on their servers as well to help validate my numbers. The benchmarks were performed on the JBoss clustering lab, with the following configuration:
  • Server running RHEL 4 and Sun JDK 1.5.0_11 with default settings
  • Max heap size of 2GB
  • 4 Xeon CPUs with 4GB of RAM
These benchmarks were measured using simple puts and gets on random keys and values, with 20% write and 80% read, using 25 concurrent threads. The test was performed over a sample size of 10 million operations.

Read (GET) performance
(smaller is better)

Write (PUT) performance
(smaller is better)

As you can see, JBoss Cache is still a very viable standalone in-memory cache, which is highly concurrent. With Naga, this is even more so, given the huge performance gains realised thanks to our MVCC implementation.

Expect to see replicated benchmarks here very soon. In the meanwhile, enjoy Naga's first beta and let us know what you think!


Making Blogger easier to use

For those of you who are annoyed by Blogger's tiny edit window, check out this excellent script that provides a full sized edit pane. It needs Firefox and the Greasemonkey plugin, and works like a charm. Finally - a full-sized editor pane! :-)

Tuesday, 2 September 2008

New GUI demo

I've just released a new GUI demo for the core cache, based on the recently released Poblano (2.2.0.GA).

This is version 1.1.GA for the GUI demo, check it out here. Please report all feedback on the demo on the forums.