Free and stable is the winner.
My plan is quite trivial - just put all the data in memory and use开发者_开发问答 the cluster without changing the application code. Then, for persistence, I could just dump the data from nodes in a regular disk-access database.
The only thing is, that since I demand in-memory storage, there is no possibility of full data replication. I would like to copy the DB schema only and that in-memory DB manages all the joins consistently for me.
thank you in advance!
UPDATE: I've found an open-source product likely to meet my requirements, it's VoltDB
H2 Database also supports some kind of clustering.
Out of interest, any particular reason why you 'demand' in-memory storage and can't just use a normal db server?
How about oracle's times ten http://www.oracle.com/technetwork/database/timesten/overview/index.html Or maybe berkeley DB
Your question is unclear to me. You can have a look to Timesten (now owned by ORACLE), it is based on SHMDB and provides a SQL interface.
MySQL cluster is also a kind of in-memory DB as when you commit, it means data are in memory of two nodes and not written on disk. But of course MySQL cluster will write all data on disk asynchronously to be able to backup and recover data after a crash.
This product would also do the job as an in-memory cluster: http://terracotta.org
It also comes whit an adapter to java Quartz Scheduler, if you wanna handle some jobs to.
MEMSQL, its wire compatible (or drop in replacement) with MySQL.
H2 is also good candidate for this competition. See here with
comparisons with other databases
精彩评论