Subject | Re: [IB-Architect] Insert Speed |
---|---|
Author | Ann Harrison |
Post date | 2000-04-09T17:50:55Z |
I'm going to pick off the easy questions that Jan Mikkelsen
raised and leave the hard ones for the serious technical
types.
Ann
Jan Mikkelsen wrote:
Jan Mikkelsen wrote:
the page before the pointer to the page, so there's never a pointer
into the void.
and marks them as free.
is consistency checking throughout the code.
page numbers. Leaf nodes have key value and record number.
There is no special provision in the leaf nodes for isolation
or recovery. They are both handled by the row itself. The
index code is quite forgiving about index entries that don't
resolve to usable rows.
number, order, and type of keys, and the selectivity of the
index. You might ask, "What happens if the index descriptions
overflow a page?" I'll let Jim answer that one.
into the generators.
the RDB$PAGES table.
rest of the index is linked internally.
the application.
Ann
raised and leave the hard ones for the serious technical
types.
Ann
Jan Mikkelsen wrote:
> >>How are ACID properties maintained for page allocationShowing your age, Jim.
>
>Jim Starkey <jas@...> wrote:
>
> >Could you explain ACID?
Jan Mikkelsen wrote:
>Presumably the relevant pointer page forI believe it's PIP, data page, pointer page. The goal is to write
>the table would also need to be written before the page itself. I also
>would guess that the order of the writes must be PIP, pointer page, data
>page.
the page before the pointer to the page, so there's never a pointer
into the void.
>What happens if the PIP is written, but a system crash stops the pointerThe page becomes an "orphan". The gfix utility locates orphans
>page from being written? Is the page lost to future allocations, or does
>the database startup procedure check for lost pages?
and marks them as free.
>What are the recovery procedures to check database file integrity onAs long as the header page is plausible, we'll proceed. There
>startup?
is consistency checking throughout the code.
>On a slightly tangential issue: I assume that Interbase opens files withThat's about right. The upper level nodes have key values and
>O_SYNC on Unix, or FILE_FLAG_WRITE_THROUGH on Win32.
>
> >I did a test about a lifetime back of the performance gain
> >by ignoring careful write altogther. The difference was in
> >the order of a couple of percentage points -- not enough to
> >get excited about.
>
>
>I assume index pages are pretty much classic b-tree indexes. Interior nodes
>ultimately pointing to leaf pages containing an ordered list of key value
>and record identifier pairs. The leaf pages are probably more complex than
>the classic structure to handle isolation and recovery.
page numbers. Leaf nodes have key value and record number.
There is no special provision in the leaf nodes for isolation
or recovery. They are both handled by the row itself. The
index code is quite forgiving about index entries that don't
resolve to usable rows.
>The index root page presumably has pointers to the root pages of the variousThe description of an index on the root page includes the
>indexes on a table. How are indexes named on this page? Is it just an
>integer, or does it actually contain an index description?
number, order, and type of keys, and the selectivity of the
index. You might ask, "What happens if the index descriptions
overflow a page?" I'll let Jim answer that one.
>Generator pages seem pretty clear (and not that interesting). Presumably aNo, just generator values. The generator id is an index
>set of <generator_id, generator_value> pairs.
into the generators.
>How are pointer pages related? Are they in a linked list, or is a list ofPointer pages are linked and their location is stored in
>pointer pages for a table stored in a special pointer page?
the RDB$PAGES table.
>What about pages allocated to indexes? Is there a variant of a pointer pageNo. The index root page is in the RDB$PAGES table. The
>to see which pages are allocated to an index?
rest of the index is linked internally.
>What I would like (and will do myself when I get the source if necessary) isThe classic architecture allows (always has allowed) linking with
>a linkable Interbase so a single user application can run entirely in a
>single process. I'd be just as happy to link a superserver though.
the application.
Ann