• calvin's avatar
    branches/innodb+: Merge revisions 6238:6293 from branches/plugin-1.1 · cd9fddd8
    calvin authored
    which was cloned from branches/zip revision 6237 as branches/plugin-2.0,
    in order to work with MySQL 5.5.
    
    Skip revision 6240: update the version number to 2.0.0
    
      ------------------------------------------------------------------------
      r6290 | calvin | 2009-12-10 02:26:45 -0600 (Thu, 10 Dec 2009) | 26 lines
    
      branches/plugin-2.0: merge of r2877 from MySQL
    
      This is r2877 in mysql-next-mr tree, backported from 6.0.
      -------------------------------------------------------------
      Bug#24509 - 2048 file descriptor limit on windows needs increasing, also
      WL#3049 - improved Windows I/O
    
      The patch replaces the use of the POSIX I/O interfaces in mysys on Windows with
      the Win32 API calls (CreateFile, WriteFile, etc). The Windows HANDLE for the open
      file is stored in the my_file_info struct, along with a flag for append mode
      because the Windows API does not support opening files in append mode in all cases)
      The default max open files has been increased to 16384 and can be increased further
      by setting --max-open-files=<value> during the server start.
    
      Another major change in this patch that almost all Windows specific file IO code
      has been moved to a new file my_winfile.c, greatly reducing the amount of code
      in #ifdef blocks within mysys, thus improving readability.
    
      Minor enhancements:
      - my_(f)stat() is changed to use __stati64 structure with 64 file size
      and timestamps. It will return correct file size now (C runtime implementation
      used to report outdated information)
      - my_lock on Windows is prepared to handle additional timeout parameter
      - after review : changed __WIN__ to _WIN32 in the new and changed code.
      ------------------------------------------------------------------------
      r6291 | calvin | 2009-12-10 02:31:27 -0600 (Thu, 10 Dec 2009) | 14 lines
    
      branches/plugin-2.0: merge of r2887.3.31 from MySQL
    
      This is r2887.3.31 in mysql-next-mr tree, backported from 6.0.
    
      Backport of:
      ----------------------------------------------------------
      revno: 2630.22.8
      committer: Konstantin Osipov <konstantin@mysql.com>
      branch nick: mysql-6.0-runtime
      timestamp: Sun 2008-08-10 18:49:52 +0400
      message:
      Get rid of typedef struct for the most commonly used types:
      TABLE, TABLE_SHARE, LEX. This simplifies use of tags
      and forward declarations.
      ------------------------------------------------------------------------
      r6292 | calvin | 2009-12-10 02:40:55 -0600 (Thu, 10 Dec 2009) | 41 lines
    
      branches/plugin-2.0: merge of r2936 from MySQL
    
      This is r2936 in mysql-next-mr tree, backported from 6.0.
    
      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.
      ------------------------------------------------------------------------
      r6293 | calvin | 2009-12-10 02:45:27 -0600 (Thu, 10 Dec 2009) | 13 lines
    
      branches/plugin-2.0: merge of r2938 from MySQL
    
      This is r2938 in mysql-next-mr tree, backported from 6.0.
    
      Backport of:
      ----------------------------------------------------------------------
      ChangeSet@1.2571, 2008-04-08 12:30:06+02:00, vvaintroub@wva. +122 -0
      Bug#32082 : definition of VOID in my_global.h conflicts with Windows
      SDK headers
    
      VOID macro is now removed. Its usage is replaced with void cast.
      In some cases, where cast does not make much sense (pthread_*, printf,
      hash_delete, my_seek), cast is ommited.
      ------------------------------------------------------------------------
    cd9fddd8
os0thread.c 8.32 KB