I am not sure about Ibatis or its support wrt. a distributed 2nd level cache, but we certainly do support this with Hibernate. Hibernate Search is also a good option for full-text object search. Hibernate currently supports JBoss Cache, and a Hibernate Infinispan plugin is in development. Switching between JBoss Cache and Infinispan for your second-level cache should be trivial.
Also for your front-end, have you considered SEAM instead of Spring MVC? If it is productivity and minimal code writing that you are after, SEAM can help.
thank you for your answer. The selection of spring mvc is because of the need of quercus (php) as the view renderer.
And I don't understand the difference between hibernate search and infinispan query (searchable) that is in development. When I use the infinispan as hibernate 2nd lc, which one gives a better performance and stability to me ?
If you are using Infinispan as a 2nd level cache, then you will not interface directly with it at all. And as such, you will use Hibernate Search for querying.
If you were using Infinispan directly though - e.g., as a distributed, in-memory data store - then you would use its own query API.
thank you, answer is clear. If so, which method is more performant for general use in an high traffic site applicatation such as amazon, ebay.. If you were the architect of amazon.com (with only a hundered servers in the cluster), which one was your selection as a backbone in data access/distributed-replicated caching/searching ?
If you want proper data-grid cloud-style storage then a database will be of limited use as it will be a single point of failure and a bottleneck. Stick with a distributed data store like Infinispan then. Although timescales need to be considered since at this moment Infinispan is still in alpha (and a beta due very soon). So good enough to test on (and the APIs are already stable), but you'd want to wait a couple of months for a final release before you put it in production.
We have no deadline and can begin to use alpha, no problem.
Key Value storages can be used insted of DB in some areas, because they're persistant. So, what will be the persistance level of Infinispan comparing to convensional DBs when it's released. Can I use Infinispan to store data for hours,weeks or for years ? If Infinispan can swap data to disc why I need a DB for a long time storage ?
If Infinispan can swap data to disc why I need a DB for a long time storage ?
That's the point - you don't. :-)
If you are running this large cluster in Amazon EC2, for instance, you could configure an S3CacheStore to swap to an S3 bucket.
perfect, thanks a lot Manik.