Andrew Sullivan ajs
Tue Jun 7 13:26:46 PDT 2005
On Mon, Jun 06, 2005 at 11:14:12PM -0400, Jan Wieck wrote:
> So Slony-I is NOT an example of the community adopting formerly closed 
> source code. It is a good example for how a company can be a valuable 
> community member.

While what Jan says is right, Slony-I _is_ a possibly interesting
example of the dynamics between closed and open source projects more
generally.

The Canadian arm of Afilias was originally a subsidiary of Tucows,
and when we were launching the .info registry, we contracted with
PostgreSQL, Inc. to make some improvements to the rserv code that
was in the PostgreSQL contrib/ directory.  These improvements
included a prototype replication server written in Perl.  Most of the
coding was done by Vadim Mikheev.

In a battle that I lost (and that's all I'm going to say about it),
Tucows developers decided to re-implement the replication engine in
Java, in consultation with Vadim.  This re-implementation formed the
basis for the code that is the closed source version of erserver
(still available, AFAIK, from PostgreSQL, Inc).  It's also the code
that was released in 2003 (and is available from the gborg
repository, if you want to look at it).  

The erserver code worked pretty well under most circumstances, and it
sure saved my hide on a few occasions.  But it was awkward to use,
the developer who did the Java work had a nasty habit of
overdesigning things, and (most importantly) it focussed on getting
data from one machine to another.  It was our own experience with the
code, and the concurrence of other developers on the opened project,
that led us to the conclusion that we needed a redesign.  The crucial
insight (this is Jan's) was that the main thing you want your
replication engine to do is _communicate_, not replicate data.  The
replication is an effect of the correct communication channels being
there, and those communication channels also deliver the management
features that you need to make the tool more useful in
industrial-grade data centres.

What is interesting to me about the project is that we have managed
to get much farther much faster with the community-supported software
than we did with the closed code.  I also think that the opening of
the erserver code created enough interest that we had a nascent
community to nurture the Slony project when it was first announced:
there was a fair amount of activity on the erserver list at the
beginning, as people ran around stepping on bugs in the old code. 
Since there were already people with domain knowledge, there was a
community of people who could read Jan's proposal and understand why
he was planning a system that, at first glace, sounds sort of
complicated for a replication system.  The knowledge of the
shortcomings of other systems helped get people involved early on,
and that meant that we got a community started around the software
faster than I think we might otherwise have done.

A

-- 
Andrew Sullivan  | ajs at crankycanuck.ca
When my information changes, I alter my conclusions.  What do you do sir?
		--attr. John Maynard Keynes


More information about the Slony1-general mailing list