Commit graph

1615 commits

Author SHA1 Message Date
Mikael Ronstrom
543125e7b0 Merged in WL#4949 2009-11-27 18:12:33 +01:00
Mikael Ronstrom
8b77e90380 Fixed kill_alarm test and got it working 2009-11-26 13:48:21 +01:00
Alexander Nozdrin
4b28a6ce84 Auto-merge from mysql-next-mr. 2009-11-25 16:46:45 +03:00
Marc Alff
6e01be7552 WL#2373 Use cycle counter for timing 2009-11-24 16:36:31 -07:00
Alexander Nozdrin
0a9d4e675a Auto-merge from mysql-next-mr. 2009-11-24 22:39:05 +03:00
Konstantin Osipov
7edfae4e86 Backport of:
-------------------------------------------------------------
revno: 2877
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: 35164-6.0
timestamp: Wed 2008-10-15 19:53:18 -0300
message:
Bug#35164: Large number of invalid pthread_attr_setschedparam calls
Bug#37536: Thread scheduling causes performance degradation at low thread count
Bug#12702: Long queries take 100% of CPU and freeze other applications under Windows

The problem is that although having threads with different priorities
yields marginal improvements [1] in some platforms [2], relying on some
statically defined priorities (QUERY_PRIOR and WAIT_PRIOR) to play well
(or to work at all) with different scheduling practices and disciplines
is, at best, a shot in the dark as the meaning of priority values may
change depending on the scheduling policy set for the process.

Another problem is that increasing priorities can hurt other concurrent
(running on the same hardware) applications (such as AMP) by causing
starvation problems as MySQL threads will successively preempt lower
priority processes. This can be evidenced by Bug#12702.

The solution is to not change the threads priorities and rely on the
system scheduler to perform its job. This also enables a system admin
to increase or decrease the scheduling priority of the MySQL process,
if intended.

Furthermore, the internal wrappers and code for changing the priority
of threads is being removed as they are now unused and ancient.

1. Due to unintentional side effects. On Solaris this could artificially
help benchmarks as calling the priority changing syscall millions of
times is more beneficial than the actual setting of the priority.

2. Where it actually works. It has never worked on Linux as the default
scheduling policy SCHED_OTHER only accepts the static priority 0.
2009-11-23 19:57:31 +03:00
Mikael Ronstrom
2361a596e3 Merge 2009-11-20 18:12:00 +01:00
Marc Alff
3ff74fb5fa WL#3230 concurrent hash
Backport from 6.0.14 to 5.6.0

Original code from Sergei Golubchik
2009-11-17 19:31:40 -07:00
Marc Alff
1e46d6a032 WL#2595 kernel-independent atomic operations
Backport from 6.0.14 to 5.6.0

Original code from Sergei Golubchik
2009-11-17 17:11:32 -07:00
Mikael Ronstrom
a31ed000ea WL#4949, Remove use of LOCK_alarm by instead using SO_SNDTIME0/SO_RCVTIME0 2009-11-12 12:17:31 +01:00
Alexander Nozdrin
aaf2e7a003 Update version tag (new: 5.6). 2009-11-12 06:11:55 +03:00
Alexander Nozdrin
411a6bfeb9 Auto-merge from mysql-next-mr. 2009-11-05 15:08:37 +03:00
Sergei Golubchik
d101d144df WL#4903 Plugin Service API part I
(mysql-next-mr backport)
2009-11-02 21:05:42 +01:00
Alexander Nozdrin
ac7ba1bcaa Merge from mysql-next-mr. 2009-10-28 10:55:44 +03:00
Alexander Nozdrin
069d78c067 Merge from mysql-next-mr. 2009-10-23 15:22:21 +04:00
Alexander Nozdrin
08ecfb9a8b Automerge from mysql-next-mr. 2009-10-23 00:20:44 +04:00
Alexander Barkov
99eae48a97 WL#1349 Use operating system localization to send it as a default client character set 2009-10-21 17:59:47 +05:00
Alexander Nozdrin
b930b18ec3 Merge from mysql-5.1. 2009-10-19 17:28:31 +04:00
Joerg Bruehe
d12bd3f794 Merge the bug fixes into the push tree. 2009-10-15 20:28:04 +02:00
Alexander Nozdrin
0f51423532 Merge from mysql-5.1. 2009-10-13 13:42:38 +04:00
Joerg Bruehe
0f1547a0ab Fix Bug #47957
A build "--without-server" fails if using "--with-ssl" (YaSSL)

The problem was the lack of directory "extra" in a build
which did not include the server.
2009-10-09 21:31:37 +02:00
Jon Olav Hauglid
0eccb93214 Bug #44651 "have_community_features" variable should be renamed
"have_profiling"

1) Renamed have_community_features server system variable to
have_profiling.
2) Removed eable-community-features configure option and
ENABLE_COMMUNITY_FEATURES macro.
3) Removed COMMUNITY_SERVER macro and replaced its usage by 
ENABLED_PROFILING.

Only --enable-profiling is now needed to enable profiling.
It was the only existing "community feature", so there was
no need for both configure options.

Using --enable-community-features will give a warning message
since it no longer exists.
2009-10-09 15:59:25 +02:00
Alexander Nozdrin
5afc219d01 Merge from mysql-trunk. 2009-10-09 13:23:23 +04:00
Alexander Nozdrin
f1c6580b49 Change the version tag (to 5.5.0). 2009-10-09 13:22:26 +04:00
hery.ramilison@sun.com
0e8c86f426 Raise version number after cloning 5.1.40 2009-10-06 19:37:08 +02:00
Georgi Kodinov
db35fb7961 automerge 2009-10-04 12:15:05 +03:00
Ingo Struewing
21586dfb08 WL#4259 - Debug Sync Facility
Backport from 6.0 to 5.1.
Only those sync points are included, which are used in debug_sync.test.

  The Debug Sync Facility allows to place synchronization points
  in the code:
  
  open_tables(...)
  
  DEBUG_SYNC(thd, "after_open_tables");
  
  lock_tables(...)
  
  When activated, a sync point can
  
  - Send a signal and/or
  - Wait for a signal
  
  Nomenclature:
  
  - signal:            A value of a global variable that persists
                       until overwritten by a new signal. The global
                       variable can also be seen as a "signal post"
                       or "flag mast". Then the signal is what is
                       attached to the "signal post" or "flag mast".
  
  - send a signal:     Assign the value (the signal) to the global
                       variable ("set a flag") and broadcast a
                       global condition to wake those waiting for
                       a signal.
  
  - wait for a signal: Loop over waiting for the global condition until
                       the global value matches the wait-for signal.
  
  Please find more information in the top comment in debug_sync.cc
  or in the worklog entry.
2009-09-29 17:38:40 +02:00
Joerg Bruehe
650e68b7dc Merge 5.1-build up into 5.4-build ("trunk-build"). 2009-09-28 11:39:36 +02:00
Joerg Bruehe
1d9c5686c3 Upmerge 5.0-build -> 5.1-build. 2009-09-28 11:07:31 +02:00
Joerg Bruehe
793e369bfe Merge the fix for bug#47137 into 5.0-build
Solaris binary packages should be compiled with '-g0', not '-g'
2009-09-28 10:43:26 +02:00
Alexander Nozdrin
72feecb4f0 Update version in configure.in. 2009-09-23 13:50:31 +04:00
Alexander Nozdrin
140d81e96d Update version. 2009-09-22 18:21:44 +04:00
Joerg Bruehe
275cec8026 Fix bug#47137
Solaris binary packages should be compiled with '-g0', not '-g'

The main fix for this is done in the build tools,
but in the sources it affects "configure.in"
which sets "DEBUG_CXXFLAGS" to be used in all debug builds.
2009-09-17 21:50:54 +02:00
Joerg Bruehe
67bcf54df6 Fix bug#46980
Option "--without-server" still not working in 5.1

The general approach is to make sure that source files
which require thread support are only compiled if the build
really needs thread support,
which means when the server is built or a thread-safe client
library.

This required several changes:
- Make sure the subdirectories "storage/" and "plugin/" are
  only processed if the server is built, not ifclient-only.
- Make the compilation of some modules which inherently
  require threading depend on thread supportin the build.
- Separate the handling of threading in "configure.in" from
  that of server issues, threading is also needed in a
  non-server build of a thread-safe client library.

Also, "libdbug" must get built even in a client-only build,
so "dbug/" must be in the list of client directories.

In addition, calls to thread functions in source files which
can be built without thread support must use the wrapper
functions which handle the non-threaded build.
So the modules "client/mysqlimport.c" and "client/mysqlslap.c"
must call "my_thread_end()" only via "mysql_thread_end()".
2009-09-17 18:34:24 +02:00
hery.ramilison@sun.com
cdc2cfb5f1 Raise version number after cloning 5.0.86 2009-09-08 22:56:00 +02:00
Jonathan Perkin
28b0d8a218 Raise version number after cloning 5.1.39 2009-09-03 18:20:43 +02:00
joerg.bruehe@sun.com
a8037cbf9d Raise version number after cloning 5.4.2-beta 2009-08-26 11:59:49 +02:00
sunanda.menon@sun.com
fba963ea93 Raise version number after cloning 5.0.85 2009-08-11 07:16:52 +02:00
Guilhem Bichot
c5ab943afe Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:
bzr branch mysql-5.1-performance-version mysql-trunk # Summit
cd mysql-trunk
bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin 
bzr rm innobase # remove the builtin
Next step: build, test fixes.
2009-08-04 13:25:19 +02:00
karen.langford@sun.com
21cbee126a Raise version number after cloning 5.1.38 2009-08-12 16:41:07 +02:00
timothy.smith@sun.com
013e729e3d Raise version number after cloning 5.1.37 2009-07-13 22:43:31 +02:00
sunanda.menon@sun.com
e60ea9e8ac Raise version number after cloning 5.0.84 2009-07-07 11:47:23 +02:00
Mikael Ronstrom
9cfd7a006d Merged in 5.1.35 2009-07-01 14:36:40 +02:00
Christoffer Hall
eaf50ced6d Merge from main branch 2009-06-29 14:55:22 +02:00
MySQL Build Team
c91e9b4376 Un-drop version number after fiddling with mysql-5.4.1-release branch 2009-06-25 22:09:25 +02:00
Alexey Kopytov
824e0d99fc Automerge. 2009-06-26 17:59:52 +04:00
Alexey Kopytov
c22c91bdbd Automerge. 2009-06-26 17:52:44 +04:00
MySQL Build Team
286571d2a8 TEMPORARY drop of version number, only in 5.4.1-release branch 2009-06-24 01:24:20 +02:00
Christoffer Hall
77fb9608a9 BUG#42721 configure.in invokes 'nm' directly
A hardcoded use of nm and libc was put into configure.in. This broke
cross-compiling and is bad practice. Fitting variables now used.
2009-06-22 14:43:19 +02:00
Georgi Kodinov
cafcd7094f automerge 2009-06-22 14:53:22 +03:00