On Tue, Sep 13, 2016 at 06:58:42PM +0000, Alin Serdean wrote:
> > -----Original Message-----
> > From: Ben Pfaff [mailto:b...@ovn.org]
> > Sent: Friday, August 26, 2016 6:54 PM
> > To: Alin Serdean <aserd...@cloudbasesolutions.com>
> > Cc: dev@openvswitch.org
> > Subject: Re: [ovs-dev] [PATCH] Windows: Allow online compacting
> > 
> > On Fri, Aug 12, 2016 at 07:39:32AM +0000, Alin Serdean wrote:
> > > This patch allows online compacting to be done under Windows.
> > >
> > > To achieve the above we need to close all file handles before trying
> > > to rename the file, switch from rename to MoveFileEx (because
> > > rename/MoveFile fails if the destination exists), reopen the right
> > > type of log after the rename.
> > >
> > > Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
> > 
> > I think that this introduces a new kind of failure.  On other OSes,
> > ovsdb_file_compact() always leaves 'file' open and usable regardless of
> > whether it succeeds or fails.  I think that on Windows it can fail and 
> > close 'file'.
> > The callers don't expect that, so there needs to be some way to it to report
> > the problem.  And then we have to figure out how the database server
> > should deal with it if its database got closed and cannot be reopened.
> [Alin Serdean] Thanks for the review! You are right Ben, it introduces a new 
> problem.
> I am unware if the requests can be pended until we can reopen the database.
> If the requests can be pended we could add a retry counter otherwise
> we could log the error and exit out for the time being if something 'happens' 
> between close and open (since it has a slim chance of producing) and let the 
> service manager deal with a database service restart.

It's a difficult choice.  I think that I lean toward making the service
fail and exit with an error (VLOG_FATAL, perhaps).  Otherwise, we would
have to introduce a new mode where ovsdb-server periodically tries to
reopen its database and either rejects transaction requests entirely or
goes read-only.  *Maybe* that is the right approach, but it would
require careful testing.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to