[os-infrastructure] Re: [os-engineering] Model discussion
boileddown
Alex Hanshaw
Alex.Hanshaw at ingres.com
Wed Jun 25 06:06:53 PDT 2008
svn codelines flow problems are avoided for piccolo integration if
svn-main is in lockstep with main and community branches are managed by
the community in the community (with out assistance of course).
Alex
-----Original Message-----
From: opensource-infrastructure-bounces at lists.ingres.com
[mailto:opensource-infrastructure-bounces at lists.ingres.com] On Behalf Of
Joe Abbate
Sent: 25 June 2008 14:03
Cc: Open Source Infrastructure
Subject: [os-infrastructure] Re: [os-engineering] Model discussion
boileddown
Stephen Ball wrote:
> Two comments:
>
> - Customers are almost certainly paying us for the support and
patching
> we provide on our certified binaries, even availability of GA code
will
> make very little difference to that. Whether a customer decides to pay
> us for Support is unlikely to be affected by what source code we give
> them, and is hardly even a consideration in this equation.
>
> - One other disadvantage of the "fresh" model is that it is
complicated
> to code and maintain. We either:
> 1) work a "two phase commit" model on Piccolo and SVN, which
> means a Subversion crash means piccolo is not available (or
vice-versa)
> 2) Work an "immediate" replication model, which leaves us open
> for collisions, although unlikely.
> 3) we do "two phase commit" when we can and fall back to
> deferred when one of the systems is down, in which case we have to
code
> a way to "catch up".
>
In my mind, the fresh model implies the following:
(piccolo)
main --------------------------------------------------
\ \ * \
---- 2006r2 --- \ \
--- 2006r3 --- \
--- 9.4 --
(svn)
main ---------------------------
\ \
--- c9.4 \
--- c9.5
The * is the point at which svn is branched from Piccolo main. From that
point forward, every change submitted to p-main would have to be
committed to svn and every svn-main change would have to replicated back
to p-main. Currently p-main is used to cross-integrate changes from many
different codelines not shown in the diagram, e.g., if SE has to apply
an oping20 fix to ingresr30, they usually have to integrate via p-main,
even if the relevant feature is no longer supported in current releases.
On the Subversion side, I think svn merge allows integrations without
passing through the trunk, but otherwise you have a reverse flow
problem.
An alternative scenario is to use a buffer branch/codeline:
(piccolo)
main --------------------------------------------------
\ \ \ \
-- 2006r2 -- \ \ \
-- 2006r3 --\ \
\ --- 9.4 --
---svncopy---
(svn)
main ---------------------------
\ \
--- c9.4 \
--- c9.5
Although it would require some additional manual intervention, I think
it lessens the impact of implementing the synchronization and more
importantly the almost inevitable problems that will arise in actual
use. Furthermore, if not all platforms or not all features are to be
included in the Community Edition, the "svncopy" branch need not include
all the main tree, e.g., if Spatial or VDBA or alpha!cl are not to be
included, it's easier to control in a Piccolo branch. If nothing else,
the buffer codeline can be used as an initial sandbox for
experimentation, until we're comfortable with the idea of continually
synchronizing the two main branches.
Joe
_______________________________________________
opensource-infrastructure mailing list
opensource-infrastructure at lists.ingres.com
http://lists.ingres.com/mailman/listinfo/opensource-infrastructure
More information about the opensource-infrastructure
mailing list