Package: unixodbc Version: 2.3.1-3.2cuculus Severity: normal Dear Maintainer,
we are building long-running services that in some larger setups operate with dozens of parallel database connections and prepare several hundred statements on each of these connections. Hence we are often in situations were we have several thousand active statement handles in flight within the unixODBC driver manager. However, we did notice that peformance degrades significantly in these configurations as all of our threads are effectively serialized on a single lock within the unixODBC driver manager. This lock seems to be used to protect a singly-linked list of all valid statement handles within the driver manager which is used to return an error code to the calling application if it tries to use a statement handle that was not yet allocated is already freed. This O(N) look-up together with the cache misses from the singly-linked list seems to make this a performance bottleneck in our use case. The above validation scheme can be disabled at build time by passing the --enable-fastvalidate flag to the configure script. We do this using a rebuild of the Debian package and the performance characteristics are now as expected. Since passing an invalid handle to the driver manager can only happen if the calling application has a programming error, we would characterize the default behaviour as a debugging feature not really suitable for production use. We therefore kindly request to include the --enable-fastvalidation build time option in the official Debian package. Thank you for time and effort. -- System Information: Debian Release: 8.3 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages unixodbc depends on: ii libc6 2.19-18+deb8u3 ii libodbc1 2.3.1-3.2cuculus ii libreadline6 6.3-8+b3 ii odbcinst1debian2 2.3.1-3.2cuculus unixodbc recommends no packages. unixodbc suggests no packages. -- no debconf information

