Quoth Alan Maguire on Thu, Jun 26, 2008 at 04:48:35PM +0100:
> David Bustos wrote:
> > Quoth Alan Maguire on Mon, Jun 23, 2008 at 05:05:13PM +0100:
> >> http://cr.opensolaris.org/~amaguire/smf_ordered_values/
> >
> > cmd/svc/configd/backend.c
...
> >   1697: I don't understand why we would need to check whether the
> >     database has been upgraded without upgrading it.  Please explain it
> >     to me.
>
> The logic here is that during boot, we want to determine
> as soon as possible if the repository is already upgraded,
> as if it is, we can use the value-ordered SELECT statement
> when retrieving values. By doing the upgrade check here,
> we catch the fact that the repository has been upgraded,
> set be_normal_upgraded to TRUE, and thus property
> retrieval will determine that we can use the value_order
> column in the SELECT statement used in fill_property_callback()
> (in file_object.c). I've elaborated a bit in the comment here and
> above backend_check_upgrade(), hopefully it's a bit
> clearer now.

Ah, yes, we assume that the repository is not upgraded, so since we want
reads to be ordered if possible before the repository becomes writable,
we need to check on each start up.  Do you know whether clients can get
any requests in between there and the zone-boot check?  If not,
I suspect you could consolidate the two calls into one.  But I don't
think there's enough benefit to that to change your code now.

By the way, did you notice the "Eventually, we'll support schema upgrade
here." comment at 1576?  It seems like you're making this a bit stale.
I suppose it's not a big enough deal to change now, though.


David

Reply via email to