[SCM] Samba Shared Repository - branch master updated

simo idra at samba.org
Mon Jul 5 07:50:38 MDT 2010

On Mon, 2010-07-05 at 15:35 +0200, Volker Lendecke wrote:
> On Mon, Jul 05, 2010 at 09:28:27AM -0400, simo wrote:
> > It is not a policy, I was just asking if it made sense to do so.
> > 
> > Allowing for seamless upgrades when possible is a good thing, and we
> > often added functions to upgrade internal DBs when the DB format
> > changed.
> > Is this something we decided is not worthy anymore ?
> Well, connections.tdb is a CLEAR_IF_FIRST database. The new
> policy requires that in a cluster, version x needs to run
> simultaneously with version y. This means that for the
> CLEAR_IF_FIRST databases we need to maintain strict
> compatibility. This also applies to all protocols with
> messaging style messages, for example it also applies to
> oplocks.
> This is what I mean with ROLLING code upgrade. In a cluster,
> you upgrade one node after the other while everything needs
> to keep running. When everything is on the new software
> version, then we can start using new structures after an
> internal freeze and upgrade of data structures has taken
> place while the cluster is humming along.
> BTW, I am NOT talking about persistent databases like
> secrets.tdb that must survive a restart of smbd, I am
> talking about databases like locking.tdb that will wiped
> once smbd shuts down.
> Possible to do, but severely restricts our design space. But
> if that is the new policy we need to do it.

As far as I know we haven't decided about such a policy, but now that
you better described the issue, I wonder if we should discuss if such a
policy makes sense and if we should try to adopt one.

But before even thinking of a database format compatibility rule we need
to understand if we can achieve this goal of allowing rolling upgrades
between one major version and the next. If we can't for other reasons
that go beyond the mere database format, then it doesn't make sense to
try to keep the db formats stable either.

However assuming we do not keep DB formats stable, what will happen if
someone tries to join a new samba version to a CTDB cluster ?
Will it warn something in the logs and shutdown itself ? Or will it try
to write database entries and compromise the functionality of all other
nodes ? Or is there some other mechanism that will prevent harm in any
way ?


Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>

More information about the samba-technical mailing list