Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Terracotta + Compass = Hibernate + HSQLDB + JMS?

I am currently in need of a high performance java storage mechanism.

This means:

1) I have 10,000+ objects with 1 - Many Relationship.

2) The objects are updated every 5 seconds, with the most recent updates persistent in the case of system failure.

3) The objects need to be queryable in a reasonable time (1-5 seconds). (IE: Give me all of the objects with this timestamp or give me all of the objects within these location boundaries).

4) The objects need to be available across various Glassfish installs.

Currently:

I have been using JMS to distribute the objects, Hibernate as an ORM, and HSQLDB to provide the needed recoverablity.

I am not exactly happy with the performance. Especially the JMS part of this.

After doing some Stack Overflow research, I am wondering if this would be a better solution. Keep in mind that I have no experience with what Terracotta gives me.

I would use Terracotta to distribute objects around the system, and something else need to give the ability to "query" for attributes of those objects.

Does this sound reasonable? Would it meet these performance constraints? What other solutions should I consider?

like image 1000
mainstringargs Avatar asked Jan 22 '26 13:01

mainstringargs


1 Answers

I know it's not what you asked, but, you may want to start by switching from HSQLDB to H2. H2 is a relatively new, pure Java DB. It is written by the same guy who wrote HSQLDB and he claims the performance is much better. I'm using it for some time now and I'm very happy with it. It should be a very quick transition (add a Jar, change the connection string, create the database) so it's worth a shot.

In general, I believe in trying to get the most of what I have before rewriting the application in a different architecture. Try profiling it to identify the bottleneck first.

like image 171
zvikico Avatar answered Jan 24 '26 07:01

zvikico