[openstack-dev] [Neutron] backporting database migrations to stable/havana
Miguel Angel Ajo Pelayo
mangelajo at redhat.com
Tue Feb 4 19:39:45 UTC 2014
----- Original Message -----
> From: "Miguel Angel Ajo Pelayo" <mangelajo at redhat.com>
> To: "OpenStack Development Mailing List (not for usage questions)" <openstack-dev at lists.openstack.org>
> Sent: Tuesday, February 4, 2014 6:36:16 PM
> Subject: Re: [openstack-dev] [Neutron] backporting database migrations to stable/havana
>
>
>
> Hi Ralf, I see we're on the same boat for this.
>
> It seems that a database migration introduces complications
> for future upgrades. It's not an easy path.
>
> My aim when I started this backport was trying to scale out
> neutron-server, starting several ones together. But I'm afraid
> we would find more bugs like this requiring db migrations.
>
> Have you actually tested running multiple servers in icehouse?,
> I just didn't have the time, but it's in my roadmap.
>
> If that fixes the problem, may be some heavier approach (like
> table locking) could be used in the backport, without introducing
> a new/conflicting migration.
>
>
>
> About the DB migration backport problem, the actual problem is:
>
> you have migrations A,B,C,D,E,F and cross version boundaries |, them
> migrations
> are a linked list.
>
> havana | icehouse
> |
> A<-B<-C<-|-D<-E<-F
>
> the problem is that if you want to bring E back, you have to fix E, but the
> first
> migration on the next release keeps pointing to C
>
> havana | icehouse
> |
> A<-B<-C<-E |
> \--|--D<-E<-F
>
>
> at this moment in our backport, we didn't even fix E, so it's worse... E
> points
> to D that it doesn't even exist yet
>
> you can think of fixing this tree, by putting E in the middle of B and C, but
> then E is replicated, and F points to an E that exists twice.
>
>
> and an almost good fix would be:
>
> havana | icehouse
> |
> A<-B<-E2<-C|--D<-E<-F
>
> but then the code in E will fail because the unique constraint was already
> applied, so in
> 2 steps we could do (if I'm not wrong....)
>
>
>
> 1st step) fix E in icehouse to skip the real unique constraint insertion if
> it does already exist:
>
> havana | icehouse
> |
> A<-B<-C<-|--D<-*E*<-F
>
> 2nd step) insert E2 in the middle of B and C to keep the icehouse first
> reference happy:
>
> havana | icehouse
> |
> A<-B<-E<-C<-|--D<-*E*<-F
>
>
Sorry, I had a typo in this last ascii figure: (missing 2 in the E)
havana | icehouse
|
A<-B<-E2<-C<-|--D<-*E*<-F
>
> What do you think?
>
>
> ----- Original Message -----
> > From: "Ralf Haferkamp" <rhafer at suse.de>
> > To: openstack-dev at lists.openstack.org
> > Sent: Tuesday, February 4, 2014 4:02:36 PM
> > Subject: [openstack-dev] [Neutron] backporting database migrations to
> > stable/havana
> >
> > Hi,
> >
> > I am currently trying to backport the fix for
> > https://launchpad.net/bugs/1254246 to stable/havana. The current state of
> > that
> > is here: https://review.openstack.org/#/c/68929/
> >
> > However, the fix requires a database migration to be applied (to add a
> > unique
> > constraint to the agents table). And the current fix linked above will
> > AFAIK
> > break havana->icehouse migrations. So I wonder what would be the correct
> > way
> > to
> > do backport database migrations in neutron using alembic? Is there even a
> > correct way, or are backports of database migrations a no go?
> >
> > --
> > regards,
> > Ralf
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list