Enviar búsqueda
Cargar
Mysql multi threaded_server_introduction
•
Descargar como PPTX, PDF
•
1 recomendación
•
463 vistas
L
lazydba
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 20
Descargar ahora
Recomendados
Node cluster
Node cluster
aleafs
高性能并发网络服务器设计与实现
高性能并发网络服务器设计与实现
ideawu
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011
Yiwei Ma
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践
美团点评技术团队
高效能執行緒
高效能執行緒
Rick Wu
线程与并发
线程与并发
Tony Deng
Mysql集群
Mysql集群
colderboy17
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
OpenCity Community
Recomendados
Node cluster
Node cluster
aleafs
高性能并发网络服务器设计与实现
高性能并发网络服务器设计与实现
ideawu
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011
Yiwei Ma
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践
美团点评技术团队
高效能執行緒
高效能執行緒
Rick Wu
线程与并发
线程与并发
Tony Deng
Mysql集群
Mysql集群
colderboy17
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
OpenCity Community
主库自动切换 V2.0
主库自动切换 V2.0
jinqing zhu
Nginx共享内存
Nginx共享内存
Lucien Li
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
Louis liu
OpenResty 项目模块化最佳实践
OpenResty 项目模块化最佳实践
Orangle Liu
Mysql展示功能与源码对应
Mysql展示功能与源码对应
zhaolinjnu
Mysql handlersocket
Mysql handlersocket
pwesh
Split lock
Split lock
yang peng
Squid安装配置
Squid安装配置
Yiwei Ma
Apache Zookeeper 分布式服务框架
Apache Zookeeper 分布式服务框架
Cabin WJ
Metrics
Metrics
ChangQi Lin
Docker進階探討
Docker進階探討
國昭 張
introduce Okhttp
introduce Okhttp
朋 王
分布式系统缓存设计
分布式系统缓存设计
aleafs
分布式系统缓存设计
分布式系统缓存设计
zhujiadun
PostgreSQL 9 Standby
PostgreSQL 9 Standby
March Liu
Nginx使用和模块开发
Nginx使用和模块开发
qingpiao1983
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
Yiwei Ma
深入Docker的资源管理
深入Docker的资源管理
SpeedyCloud
探讨Web优化
探讨Web优化
dynamiclu
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
OpenRestyCon
Real world Python+django
Real world Python+django
Joel Corrêa
Concurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approaches
Joel Corrêa
Más contenido relacionado
La actualidad más candente
主库自动切换 V2.0
主库自动切换 V2.0
jinqing zhu
Nginx共享内存
Nginx共享内存
Lucien Li
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
Louis liu
OpenResty 项目模块化最佳实践
OpenResty 项目模块化最佳实践
Orangle Liu
Mysql展示功能与源码对应
Mysql展示功能与源码对应
zhaolinjnu
Mysql handlersocket
Mysql handlersocket
pwesh
Split lock
Split lock
yang peng
Squid安装配置
Squid安装配置
Yiwei Ma
Apache Zookeeper 分布式服务框架
Apache Zookeeper 分布式服务框架
Cabin WJ
Metrics
Metrics
ChangQi Lin
Docker進階探討
Docker進階探討
國昭 張
introduce Okhttp
introduce Okhttp
朋 王
分布式系统缓存设计
分布式系统缓存设计
aleafs
分布式系统缓存设计
分布式系统缓存设计
zhujiadun
PostgreSQL 9 Standby
PostgreSQL 9 Standby
March Liu
Nginx使用和模块开发
Nginx使用和模块开发
qingpiao1983
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
Yiwei Ma
深入Docker的资源管理
深入Docker的资源管理
SpeedyCloud
探讨Web优化
探讨Web优化
dynamiclu
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
OpenRestyCon
La actualidad más candente
(20)
主库自动切换 V2.0
主库自动切换 V2.0
Nginx共享内存
Nginx共享内存
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
OpenResty 项目模块化最佳实践
OpenResty 项目模块化最佳实践
Mysql展示功能与源码对应
Mysql展示功能与源码对应
Mysql handlersocket
Mysql handlersocket
Split lock
Split lock
Squid安装配置
Squid安装配置
Apache Zookeeper 分布式服务框架
Apache Zookeeper 分布式服务框架
Metrics
Metrics
Docker進階探討
Docker進階探討
introduce Okhttp
introduce Okhttp
分布式系统缓存设计
分布式系统缓存设计
分布式系统缓存设计
分布式系统缓存设计
PostgreSQL 9 Standby
PostgreSQL 9 Standby
Nginx使用和模块开发
Nginx使用和模块开发
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
淘宝前台系统优化实践“吞吐量优化”-Qcon2011
深入Docker的资源管理
深入Docker的资源管理
探讨Web优化
探讨Web优化
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
Destacado
Real world Python+django
Real world Python+django
Joel Corrêa
Concurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approaches
Joel Corrêa
Web Servers: Architecture and Security
Web Servers: Architecture and Security
george.james
Multi-threaded Programming in JAVA
Multi-threaded Programming in JAVA
Vikram Kalyani
Java Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and Trends
Carol McDonald
Multithreading In Java
Multithreading In Java
parag
Destacado
(6)
Real world Python+django
Real world Python+django
Concurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approaches
Web Servers: Architecture and Security
Web Servers: Architecture and Security
Multi-threaded Programming in JAVA
Multi-threaded Programming in JAVA
Java Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and Trends
Multithreading In Java
Multithreading In Java
Similar a Mysql multi threaded_server_introduction
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
线程编程方面
线程编程方面
yiditushe
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
jaydenhu
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
Cevin Cheung
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
thinkinlamp
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
pwesh
TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例
maclean liu
Rpc原理与实现
Rpc原理与实现
wavefly
Php Webservers
Php Webservers
samon127
Php Webservers
Php Webservers
thinkinlamp
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
YingSiang Geng
第一讲 My sql初步
第一讲 My sql初步
hjl888666
Static server介绍
Static server介绍
sun jamie
百度分布式数据实践与进展
百度分布式数据实践与进展
yp_fangdong
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
Jinrong Ye
IBM Cloud Private Introduction
IBM Cloud Private Introduction
Guangya Liu
J2ee经典学习笔记
J2ee经典学习笔记
yiditushe
备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试
zhaiwx1987
Openstack neutron 原理详解
Openstack neutron 原理详解
Yong Luo
Lamp优化实践
Lamp优化实践
zhliji2
Similar a Mysql multi threaded_server_introduction
(20)
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
线程编程方面
线程编程方面
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例
Rpc原理与实现
Rpc原理与实现
Php Webservers
Php Webservers
Php Webservers
Php Webservers
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
第一讲 My sql初步
第一讲 My sql初步
Static server介绍
Static server介绍
百度分布式数据实践与进展
百度分布式数据实践与进展
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
IBM Cloud Private Introduction
IBM Cloud Private Introduction
J2ee经典学习笔记
J2ee经典学习笔记
备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试
Openstack neutron 原理详解
Openstack neutron 原理详解
Lamp优化实践
Lamp优化实践
Mysql multi threaded_server_introduction
1.
MySQL multi-threaded server
implementation(mysql 5.1.49)
2.
Main topic 主线程loop监听连接请求,开启线程处理客户query请求
客户处理线程处理query请求,一个线程一次只能服务于一个client,一个线程可能服务多个client(thread pool 机制)
3.
Sample of pstack
pstack <pid_mysqld>
4.
主线程处理流程 主线程处理流程(mysqld.cc main函数)
参数初始化 init_common_variables 线程处理机制 get_options – 一个线程处理一个连接 one_thread_per_connection_scheduler(&thread_scheduler) 网络初始化network_init 开启网络监听(tcp/ip socket) 开启本地监听(unix domain socket或named pipe) handle_connections_sockets(0),进入主线程loop 接受客户端连接请求(tcp/ip socket connect request) 开启线程处理客户端query请求(dml,ddl,.etc)
5.
handle_connections_sockets handle_connections_sockets
loop 建立网络连接( socket accept) 建立THD, 将thd和新建立的socket连接关联起来 my_net_init(&thd->net,vio_tmp)) 开启线程服务客户 create_new_thread(thd) create_new_thread调用了thread_scheduler.add_connection(thd), thread_scheduler是一个全局变量,mysqld启动的时候被初始化 (one_thread_per_connection_scheduler(&thread_scheduler)
6.
Thread_schedule结构 thread_scheduler
7.
构造函数
8.
thread_scheduler初始化Schedule.cc Create_thread_to_handle_connection 从thread
pool取出一个线程, 或 新建一个线程 pthread_create One_thread_per_connection_end 当前客户退出后,将线程放入thread pool
9.
新建线程(pthread_create) create_thread_to_handle_connection 刚开始,thread
pool是空的,调用pthread_create创建新的线程 新线程处理函数:handle_one_connection 线程初始化 setup_connection_thread_globals 登录,用户信息验证 login_connection(thd) 进入loop, 处理客户端的query do_command(…) 客户端退出后,断开网络连接,将线程放入thread pool 断开网络连接 end_connection 线程进入thread pool睡眠 thread_scheduler.end_thread(thd,1)
10.
thread_scheduler.end_thread(thd,1) one_thread_per_connection_end cache_thread不返回,直到该线程被主线程唤醒(从thread
pool取出线程) 唤醒后立刻处理新客户的请求
11.
12.
handle_one_connection
13.
线程唤醒 create_thread_to_handle_connection 如果thread
pool里有sleep的线程,则唤醒一个线程处理客户请求,主线程继续监听
14.
Passing thd 主线程创建thd,
传递给其他线程 新建线程时,通过pthread_create传递thd 从线程池唤醒一个线程时 主线程将thd放到链表. 子线程从链表中取出thd, 存到thread local storage 子线程从tls中取出thd 传递的是指向THD的指针,thread共享地址空间
15.
thd->store_globals
16.
current_thread
17.
主线程loop handle_connections_sockets 新建线程或唤醒thread
pool的一个线程后,主线程继续监听,等待新的客户 while(!abort_loop) { accept(…) // 建立网络连接 create_new_thread(thd); //线程处理 }
18.
Do_command Dispatch_command
19.
Mysql multi-threaded server
building blocks Tcp/Ip socket, Unix domain socket, named pipes Posix thread(pthread_create) Condition variables, mutex locks pthread_cond_wait, pthread_cond_timedwait pthread_cond_signal pthread_cond_broadcast Thread local storage pthread_setspecific pthread_getspecific
20.
reference http://x.saw-unix.com/mysqld_thread_init.jpg http://forge.mysql.com/wiki/MySQL_Internals_Guided_Tour
Unix network programming(richardstevens) Advanced programming in the Unix environment (richardstevens)
Descargar ahora