mariadb/BUILD/compile-pentium64-valgrind-max
unknown e904d0e750 Porting of "buffered read" patch to 5.0 and post-review fixes.
The patch implements the idea suggested by Olaf van der Spek in 
thread "Client: many small reads?" (internals@lists.mysql.com).
Now small reads performed by the client library are buffered.
The buffering gives up to 2 times speedup when retrieving 
one-column tables.


BUILD/SETUP.sh:
  Remove --with-vio option which no longer exist.
BUILD/compile-pentium64-valgrind-max:
  Remove --with-vio option which no longer exist.
config/ac-macros/misc.m4:
  Removed --with-vio configure switch: we always use VIO. The switch,
   in fact, only saved us one pointer dereferencing per call in case we had
  only one transport type in VIO enabled.
config/ac-macros/openssl.m4:
  Removed HAVE_VIO.
include/config-win.h:
  Removed HAVE_VIO (not needed anymore)
  Added HAVE_VIO_READ_BUFF (define buffered client reads for Windows clients).
include/violite.h:
  Removed HAVE_VIO, as currently VIO is always in use.
  Added declaration for vio_read_buff and related members in struct VIO.
sql-common/client.c:
  Use flags to set up vio read buffering in mysql_real_connect.
sql/mysqld.cc:
  Use flags to disable vio read buffering when creating a server 
  connection.
vio/vio.c:
  Optionally set up vio read buffer when creating a new VIO structure.
vio/viosocket.c:
  Implementation of client-side buffered reads in VIO: the idea 
  is to buffer small reads in a client buffer to save amount of
  syscalls per retrieved result set. The implementation relies
  on the fact that read/recv will return as soon as there is
  some data in the kernel buffer, no matter how big the given
  user's buffer is. To be able to disable it in case recv/read don't
  have such semantics, the new calls are guarded
  with #define HAVE_VIO_READ_BUFF. Currently buffered reading is 
  switched on only for BSD sockets and named pipes, both on Windows
  and UNIXes.
2005-03-06 00:10:08 +03:00

29 lines
1.2 KiB
Bash

#! /bin/sh
path=`dirname $0`
. "$path/SETUP.sh"
extra_flags="$pentium64_cflags $debug_cflags -USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
c_warnings="$c_warnings $debug_extra_warnings"
cxx_warnings="$cxx_warnings $debug_extra_warnings"
extra_configs="$pentium_configs $debug_configs"
# We want to test isam when building with valgrind
extra_configs="$extra_configs --with-berkeley-db --with-innodb --with-isam --with-embedded-server --with-openssl --with-raid --with-ndbcluster"
. "$path/FINISH.sh"
if test -z "$just_print"
then
set +v +x
echo "\
******************************************************************************
Note that by default BUILD/compile-pentium-valgrind-max calls 'configure' with
--enable-assembler. When Valgrind detects an error involving an assembly
function (for example an uninitialized value used as an argument of an
assembly function), Valgrind will not print the stacktrace and 'valgrind
--gdb-attach=yes' will not work either. If you need a stacktrace in those
cases, you have to run BUILD/compile-pentium-valgrind-max with the
--disable-assembler argument.
******************************************************************************"
fi