분류없음 2013/12/12 18:24
MySQL 5.6 Enterprise 버젼에 있는 것이 Thread Pool 입니다.
기존의 단선적인 Thread 관리를 효율적으로 해주는 것으로 부하가 심한 DB에 유용하죠.
그런데... Enterprise 버젼의 1년 이용료가 무려 $5,000... ㄷㄷㄷ...
그래서 찾아보니 Maria DB는 Thread Pool 기능이 오래전에 들어가 있었네요.
Plugin이 아니마 built-in 입니다.
Commercial editions of MySQL since 5.5 include an Oracle MySQL Enterprise
threadpool implemented as a plugin, which delivers similar functionality.
Official documentation of the feature can be found in the MySQL Reference Manual and a detailed discussion about the
design of the feature is at Mikael Ronstrom's blog. Here is the summary of similarities
and differences, based on the above materials.
Similarities
- On Unix, both MariaDB and Oracle MySQL Enterprise Threadpool will partition client connections into groups. The thread_pool_size parameter thus has the same meaning for both MySQL and MariaDB.
- Both implementations use similar schema checking for thread stalls, and both have the same parameter name for thread_pool_stall_limit (though in MariaDB it is measured using millisecond units, not 10ms units like in Oracle MySQL).
Differences
- The Windows implementation is completely different ? MariaDB's uses native Windows threadpooling, while Oracle's implementation includes a convenience function WSAPoll() (provided for convenience to port Unix applications). As a consequence of relying on WSAPoll(), Oracle's implementation will not work with named pipes and shared memory connections.
- MariaDB uses the most efficient I/O multiplexing facilities for each operating system: Windows (the I/O completion port is used internally by the native threadpool), Linux (epoll), Solaris (event ports), FreeBSD and OSX (kevent). Oracle uses optimized I/O multiplexing only on Linux, with epoll, and uses poll() otherwise.
- Unlike Oracle MySQL Enterprise Threadpool, MariaDB's threadpool does not try to minimize the number of concurrent transactions.
- Unlike Oracle MySQL Enterprise Threadpool, MariaDB's one is builtin, not a plugin.
- opencode.co.kr -
http://zosel.net/trackback/87
7