Subject Re: [Firebird-Architect] Some info about IB internals given by Charlie Caro at BorCon
Author Arno Brinkman
Hi Pavel,

> There are some interesting improvements in IB 7.x, and plans for future
> improvements. I wonder if we can use some. Borland harvested many ideas
> from us, so why we can't do the same ?
> - A number of fixes were implemented which reduce the amount of work the
> server must do to maintain indices on non-unique columns. [ no more
> details ]

I've already a commit pending which solves this problem.
That was 1 of the big reasons why GC was slow.

> - InterBase now uses more server memory when doing in-memory sorts.
> Versions of InterBase before 7.1 used to have a static sort memory buffer
> of approx. 128 KB. This is now configurable per server using a new
> ibconfig parameter called SORTMEM_BUFFER_SIZE.. The default value is just
> about 1 MB. This parameter specifies the size of a sort buffer in memory.
> Setting this to a higher value will enable better performance in large
> sort-merge queries.

Sounds familar :-)

> - InterBase's optimizer used to consider indices with most keys first,
> even if they weren't the best fit for conjuncts (Booleans) in the query.
> Fixed in service pack. [ I wonder where this fix come from ? :-)) ]

Sounds familar :-)

> - Workaround for afd.sys Memory Leak: DUMMY_PACKET_INTERVAL in ibconfig
> is changing from 60 seconds to 0, disabling dummy packets. SO_KEEPALIVE
> is still set on a socket but TCP/IP may not transmit this option for
> hour(s) depending upon its setting in the Windows registry. You can
> change this, if you like, but keep in mind that it affects all
> applications, not just InterBase. Since dummy packets are disabled by
> default in the service pack, the InterBase team introduced a new feature
> in the performance monitoring tables to allow a keep alive packet to be
> sent manually. Just execute UPDATE TMP$ATTACHMENTS SET TMP$SSTATE =
> 'KEEPALIVE' WHERE [some condition] and COMMIT. This sends one dummy
> packet to each remote connection specified by the where clause but does
> not continue sending any more dummy packets after that.

I remember Nickolay already did something on this.

Arno Brinkman

Firebird links :

Nederlandse firebird nieuwsgroep :