Subject Re: [Firebird-Architect] Cloud database
Author Roman Rokytskyy
> The paper discusses how - using multicasting with total ordering - a
> group of database servers can be kept synchronised. Using some
> antique (networking) hardware by today's standards, they show how the
> approach scales to 15 nodes or more. I think it might scale to 30..50
> with current hardware.

For info - at the times when I was involved in JavaGroups project (now
JGroups, the clustering middleware for JBoss application server), there
was an attempt to use exactly this approach was tried to create
clustered HSQLDB (Bela Ban) and I made some thoughts for Firebird... But
neither Bela's work was finished, nor mine. That was about 5-6 years
ago... Currently Bela Ban is working on JBoss Cache, a distributed
cache, probably somewhat similar to the Tangosol's Coherence (do not
know details, so this is pure guess).

There are also other implementations of Group Communication Toolkits,
and Spread is not the best one, only that is the only one that I know
that is written in C/C++. I would wonder if it were possible to compile
JGroups with gcj to a lib file, as Lucene people did to their engine.

> If anybody remembers seeing related research, I would certainly be
> interested to read it.

I have made some tries to wake up the interest to this paper in our
community, but no success... The research group in which Bettina Kemme
worked at Swiss Federal Institute of Technology in Zürich has another
nice overview paper about the replication in distributed systems and in
databases and the differences between them: "Database Replication
Techniques: A Three Parameter Classification" - check it, it has very
nice overview. (If you do not find it, send me email - I have a copy
somewhere).

Now, if we come to "cloud" databases - check the Sequoia clustered JDBC
driver (former C-JDBC) - same idea: parse the SQL on one node, send
commands to other nodes in cluster (in Sequoia's case - SQL, but that
can be cured), use strict transaction ordering, use group communication
for node load balancing and clustering. BTW, it works fine with Firebird
- I made a presentation about it on our conference... Only it seems that
when people hear "JDBC driver" they loose the interest at once :)

Looks like the idea is not new, only that developers have grown to the
fact where they can accept basic database functionality in return for
improved scalability.

Roman

P.S. Buy me a beer and I will make you a short summary of the research
papers in years 2000-2003/4 when I was investing a lot of time into this
topic :)