[BlueOnyx:03691] Re: Unable to create new sites
Steve Howes
steve-lists at geekinter.net
Thu Feb 25 17:42:06 -05 2010
On 25 Feb 2010, at 20:26, David Booth wrote:
> I used a script (with a few false starts) for a while but found
> codb.oids got overwritten anyway after a few days - often incorrectly.
> I haven't had any ill effects from just using X. After I do it and
> carry on with creating my new site/user/whatever I see it increment to
> X+1.
> I even did a few tests - delete an object and it decrements to X-1.
> Come back in a few hours and I see it all rebuilt with 1-A,B-C, etc -
> sometimes right, sometimes wrong.
> I have had paid help on this and it has escalated somewhere for a 'big
> fix of the underlying code one day'
It is normal to see gaps. Gaps are not 'broken'. If an underlying fix
is needed it'll be done. Thats why we exist! The BlueOnyx team is
there to fix and improve stuff.
> Seems to me there's a universal unknown about missing ID numbers.
> Nobody knows if it causes problems. Who would create a file based
> object indexing engine that depends on an index being absent for
> consistency? Are we going to run out of numbers one day?
It does cause problems. It does not depend on an index being absent,
it depends on the index being *accurate*. If you have a book index
referring to a page you've torn out it isn't much use. Much as if you
added a page and didn't put it in the index. If an ID is not in the
index it is 'free for use'. If there is an object with that ID that is
not in the index you then end up with the object being overwritten/the
new object cant be made.
It is like having a car park full of invisible cars. If you have an
inaccurate record of who is parked where all hell is going to break
loose when you park inside another car. Rest assured, we are not going
to run out of numbers though. You can get big numbers in maths. I hear
some even have *five* figures! ;)
> There are gaps in the numbers anyway - and no-one knows why.
I think you mis-understand. See above, its because you create objects,
then delete one from 'the middle'. You can't re-number the entire
database you you use the indexes to keep track of what ID numbers are
free for future use. It's the equivalent of filesystem fragmentation.
You get 'gaps'. It is not a problem in the case of this DB because
objects don't have to 'fit' a gap.
> Right now my codb.oids says
>
> 1-2014,2012-2013
>
> which is ridiculous. The second interval is contained in the first.
Agreed. Probably where these ranges have been changed to inaccurately
reflect the ID numbers in use (i.e. no gap listed where there is one).
This format may well not be parsable by the codb engine, or will parse
in an unexpected manner meaning the problem comes back.
> and the last integer (maximum) of
>
> ls objects | sort -n
>
> is 9084
>
> So if I need to add a site/user/dns today I'll have to fix it first.
> Whether I run a script or just make it 1-9084 doesn't make a
> difference.
Then there is something broken that needs debugging collecting to work
out what is wrong. The 'big underlying fix' clearly needs doing if
there is a problem, but if we're re-writing large chunks of stuff then
we need to know why the current implementation is not up to the job.
If we don't we're going to end up with the same thing again. The
problem needs understanding before it can be fixed.
In summary:
1. We need examples to track down the problem
2. Gaps are normal! They are *NOT* the problem
3. A 'missing' number *IS* a problem if the ID is actually in use
4. A 'non gap' *IS* a problem if the object ID is not in use (what if
something uses that index to iterate through objects?)
S
More information about the Blueonyx
mailing list