Subject Re: [firebird-support] Re: Poor performance retrieving/storing BLOBs columns on linux
Author Helen Borrie
At 02:17 AM 22/06/2008, you wrote:
>Here comes second round.
>
>I installed and tested against Classic Server. First, connected with
>isql AND hostname, like localhost:/path/to/database and
>some_ip:/path/to/database - performance terrible. some_ip is IP
>address of that Linux machine.

With this connection string. the client used is libfbclient.so, which is the same client that is *always* used for connecting to Superserver (that you installed before). For Classic, libfbclient.so makes its connection is made through the xinetd daemon, which creates an instance of the fb_inet_server executable for that one connection.


>Tried connect just to /path/to/database - it worked just fine.

This connection string uses libfbembed.so, which is client and server rolled into one. It does not connect to fb_inet_server but to an instance of the server code that is embedded in libfbembed.so itself. That instance connects directly to the database file. No network routing whatsoever.

>So appears there is some problems connecting via network interface or
>loopback and embeded mode works fine.

Yes. Your problems are related to the network conditions on your host server and/or the network routings. Love it or hate it, you can't count on an out-of-the-box installation of XYZ Linux distro to be "ideal" for some particular usage. I've found Mandriva to be relatively friendly; others less so; and the binary distros in recent years have gotten harder and harder in their network security defaults.

>I googled and saw some people hit similar issues, but no single answwer.

Many have walked those paths before and there are some HowTo's available. If you haven't browsed the Documentation Index and the Firebird FAQ, it would be worthwhile taking a look.

Google without "Firebird" in the search arguments. A string like "slow loopback on Linux", with and without the distro name and version, may lead to some article or forum response that can point straight to the config file and settings you need.

But there *is* no single answer. It's not down to Firebird, or even, generically, to Linux. It always gets down to the way TCP/IP and related utilities are configured on your particular host system. It's distro-specific but even that won't give you an immediate right answer. A particular Linux distribution package, selected at random from a range of packages and distribution outlets, for the same Linux kernel version and distribution-specific version, will have its own idiosyncratic defaults.

If you are lucky, those defaults will be documented somewhere; but usually they are not. You need to get into the man pages (or, better still, a good, recent Linux Administrator's handbook) and compare the settings with those in your own config files. From there, you should be able to figure out what you need to do to improve the routing performance.

./heLen