大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
线程池介绍
前言
在 TiKV 中,线程池主要由 gRPC、Scheduler、UnifyReadPool、Raftstore、StoreWriter、Apply、RocksDB 以及其它一些占用 CPU 不多的定时任务与检测组件组成,这里主要介绍几个占用 CPU 比较多且会对用户读写请求的性能产生影响的线程池。
- gRPC 线程池:负责处理所有网络请求,它会把不同任务类型的请求转发给不同的线程池。
- Scheduler 线程池:负责检测写事务冲突,把事务的两阶段提交、悲观锁上锁、事务回滚等请求转化为 key-value 对数组,然后交给 Raftstore 线程进行 Raft 日志复制。
- Raftstore 线程池:
- 处理所有的 Raft 消息以及添加新日志的提议 (Propose)。
- 处理 Raft 日志。如果 store-io-pool-size 配置项的值为 0, Raftstore 线程将日志写入到磁盘;如果该值不为 0,Raftstore 线程将日志发送给 StoreWriter 线程处理。
- 当日志在多数副本中达成一致后,Raftstore 线程把该日志发送给 Apply 线程处理。
- StoreWriter 线程池:负责将所有 Raft 日志写入到磁盘,再把结果返回到 Raftstore 线程。
- Apply 线程池:当收到从 Raftstore 线程池发来的已提交日志后,负责将其解析为 key-value 请求,然后写入 RocksDB 并且调用回调函数通知 gRPC 线程池中的写请求完成,返回结果给客户端。
- RocksDB 线程池:RocksDB 进行 Compact 和 Flush 任务的线程池,关于 RocksDB 的架构与 Compact 操作请参考 RocksDB: A Persistent Key-Value Store for Flash and RAM Storage。
- UnifyReadPool 线程池:由 Coprocessor 线程池与 Storage Read Pool 合并而来,所有的读取请求包括 kv get、kv batch get、raw kv get、coprocessor 等都会在这个线程池中执行。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190306.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...