Subject Re: Test results: JayBird vs Interclient on blob select on Linux and Windows
Author Roman Rokytskyy <rrokytskyy@acm.org>
> > Ok, I will experiment with Firebird and driver to find out if the
> > reason is in driver, server or operating system. This might take
> > some time.
> ... or JVM. Eh - big job.

Ok, some results:

Debian sarge (kernel 2.4.19)/Sun JDK 1.3.1_02:
receive buffer size ~87Kb (but not OS default), send buffer ~50k (not
OS default). Setting socket buffer size to 16*1024 actually sets it
to 32 * 1024 (bug in JDK?). Performance with default buffers is very
slow. Setting them to 2^(n-1)*1024, n > 4 solves the problem.

Debian Woody (kernel 2.4.19)/Sun JDK 1.4.1
Receive and send buffer as two times smaller than in previous case.
Setting them to 16*1024 sets them to 16*1024. Performance with
default buffers is very slow. Setting them to 2^n*1024, n > 4 solves
the problem.

Debian woody (kernel 2.2.20)/Sun JDK 1.3.1_06
Receive buffer size is 32*1024, performance is very good (Celeron 750
MHz, 128 RAM, Firebird CS 1.0 provides ~1500 ms instead of ~18000ms).

Debian woody (kernel 2.2.20)/IBM JDK 1.3.1
Receive buffer size is 32*1024, performance is very good (Celeron 750
MHz, 128 RAM, Firebird CS 1.0 provides ~1500 ms instead of ~18000ms).

Windows 2000/Sun JDK 1.3.1/JDK 1.4.1 (JBuilder edition)
Receive buffer size is 8*1024, performance is good (approx. 1,5
slower than InterClient, you saw my numbers).


So, I think this is somehow related to kernel version and JDK. Can
you try using IBM JDK? I will create a connection parameter to allow
setting the socket buffer size. This will happen before release.

Also I would appreciate if you can provide default socket buffer
sizes on your system (inluding kernel version and JDK version).

Best regards,
Roman Rokytskyy