分布式NewSQL数据库TiDB
实例 创建TiDB Serverless实例 查看TiDB实例列表 查看TiDB实例详情 删除TiDB实例 ⽤户 ⽤户 添加⽤⼾及权限 调整⽤⼾权限 重制⽤⼾密码 删除⾮root⽤⼾ Binlog 同步 同步 ⽬录 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 4/120 60 61 65 67 70 72 73 74 76 76 76 77 78 119 Q17: 如何查看慢查询 Q18: 监控图看有慢查询, 但是information_schema.cluster_slow_query表中⽆法查询到? Q19: 如何处理 TiCDC 创建同步任务或同步到 MySQL 时遇到 Error 1298: Unknown or incorrect time zone: 'UTC' 错误? Q20: TiDB数据库报错 ERROR 1105 (HY000): 什么是TiDB 产品优势 适⽤场景 整体架构 实例类型 计费说明 计费指南 回收 操作指南 TiDB 实例 ⽤⼾ 备份恢复 Dashboard/监控访问 TiDB Serverless 实例 ⽤⼾ Binlog同步 TiFlash管理 备份恢复 参数配置调整 告警通知 证书管理 数据库审计 安全组 数据迁移 性能数据 概览 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud0 码力 | 120 页 | 7.42 MB | 6 月前3TiDB中文技术文档
stall : RocksDB Stall 时间 大于 0,表明 RocksDB 忙不过来,需要注意 IO 和 CPU 了 channel full : channel 满了,表明线程太忙无法处理 如果大于 0,表明线程已经没法处理了 95% send_message_duration_seconds : 95% 发送消息的时间 小于 50ms leader/region : 每个 TiKV 的 leader/region 驱动表构建查询计划。 SELECT /*+ TIDB_HJ(t1, t2) */ * from t1,t2 where t1.id = t2.id 提示优化器使用 Hash Join 算法,这个算法多线程并发执行,执行速度较快,但会消耗较多内存。 这个是一个 TiDB 的隐藏列,代表隐式的 ROW ID 的列名,只存在于 PK 非整数或没有 PK 的表上,可以进行增 减改查的操作。 SELECT 语句示例: Column_name 这些列 不能包含 % 。加载进来时排序也是类似的。 TiDB 启动时,将一些权限检查的表加载到内存,之后使用缓存的数据来验证权限。系统会周期性的将授权表从数据 库同步到缓存,生效则是由同步的周期决定,目前这个值设定的是5分钟。 修改了授权表,如果需要立即生效,可以手动调用: 连接验证 请求验证 生效时机 TiDB 访问权限管理 - 52 - 本文档使用 书栈(BookStack0 码力 | 444 页 | 4.89 MB | 6 月前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . 354 16.1. 使用线程同时地运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 16.2. 使用消息传递在线程间通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 17.6. future、任务和线程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 21. 最后的项目:构建多线程 web server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 21.1. 建立单线程 web server . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 10 天前3Curve核心组件之chunkserver
OpRequest,将上下文保存在里面,然 后发起Propose提交给raft,等raft apply后再执行后面的操作。 ChunkServer架构CloneManager主要负责克隆相关的功 能,内部是一个线程池,主要负责异 步完成克隆chunk的数据补全。关于克 隆相关的内容将会在快照克隆相关介 绍文档中详细介绍。 ChunkServer架构Metric统计模块使用brpc中的bvar计数 器 假定三个copyset的leader都是CS3,在CS3的下一次心跳的 response中,下发第三步生成的三个operator ⑥ CS3收到change peer from CS1 to CS2的operator,给CS2同步 raft日志,当CS2成功赶上进度时,本次raft成员变更成功完成, CS2成为了复制组的一员,CS1不再属于这个复制组。 ⑦ CS3在下一次心跳中向MDS报告本次raft成员变更已完成 ⑧ 假定三个copyset的leader都是CS3,在CS3的下一次心跳的 response中,下发第四步生成的三个operator ⑦ CS3收到change peer from CS2 to CS1的operator,给CS1同步 raft日志,当CS1成功赶上进度时,本次raft成员变更成功完成, CS1成为了复制组的一员, CS2不再属于这个复制组。 ⑧ CS3在下一次心跳中向MDS报告本次raft成员变更已完成0 码力 | 29 页 | 1.61 MB | 5 月前3CurveFS S3数据整理(合并碎片、清理冗余)
offset len } s3 object命名: chunkid_version_index (index为obj在chunk内的index) 执行步骤 数据整理作为一个后台服务(线程池), 运行于metaserver, 遍历metaserver的inode进行数据整理的尝试, 入队inodekey, 如果是已有inode任务, enqueue直接返回, 不入队 任务开始执行, 如果标记删除到实际删除之间的时间间隔非常短, 并且在标记删除前已经开始了整理任务, 可能会出现边删除边整理的状态(出现概率较小) 可以在实际删除前检查当前整理的inode列表, 如果在列表里就暂时跳过(同步删除)/重新丢进删除队列(异步删除) 或者就不管, 处理一下报错, 让后续的应该会开发的数据清理工具来删除, 因为出现这个冲突的概率比较小 truncate: 只进行元数据里len的改变, 触发一下compact就行0 码力 | 3 页 | 101.58 KB | 5 月前3Service Mesh的实践分享
server只带一个 服务注册agent • 服务端的一些治理、trace、鉴权功能通过代码插 件的方式实现 • 治理效果考虑 • 服务端嵌入治理功能可以让治理效果更好,如提 供主动GC、线程池隔离等 • 因为是内部项目,优雅性和治理效果之间,选择 了后者 App Local Proxy OSP OSP client App Envoy App EnvoyClient端不基于IPTable劫持 proxy,应用无感知,能轻易实 现滚动升级 • 临时排查Local Proxy问题,可立马切走流量而不影响业务代码埋点 vs. Mixer • 性能考虑 • 调用链埋点的影响必须足够小 • 鉴权需要同步进行,调用Mixer代 价大 • Mixer的中央节点问题 • 传统基于日志收集的tracing方 案足够成熟 • 内部实现一套可插拔的鉴权框 架也能接受混合部署 vs. 绑定K8s •0 码力 | 30 页 | 4.80 MB | 5 月前3TGT服务器的优化
connection,在单线程里做event loop多路复用。 • 多个target时,如果挂的设备多,一旦客户端请求量大,就会忙不过来。 • 开源界有尝试修改 • 例如sheepdog的开发者提交过一个patch,但是测试效果不理想,分析 原因,event loop依然是瓶颈对TGT的性能优化 • IO是使用多个epoll 线程,充分发挥多CPU能力 • 当前策略是每个target一个epoll线程,负责Initiator发过来的I/O • 管理平面不变。主线程里的事件循环及问题: 管理面是主线程,登录,增、删、改target,lun,session,connection,params 都在主线程,而target epoll 线程也要使用这些数据,多线程冲突,数据一 致性问题就来了对TGT的性能优化(续) • 为每一个target增加一把锁 • Target event loop (TEL)线程和管理面线程使用这把锁互斥 • TEL在运行时锁住这把锁,管理面只能等待,等TEL线程进入epoll wait状 态,会释放这把锁,管理面可以增删改target信息。 • 不需要target list lock • 因为TEL线程只存取自己负责的target,不存取别的target,所以TEL线程 不需要target list lock。 • 管理面是单线程,只有它遍历target list,没有需要互斥的情况。FIO性能测试(配置)0 码力 | 15 页 | 637.11 KB | 5 月前3Curve核心组件之Client - 网易数帆
将请求发往leader节点CLIENT IO线程模型 用户线程 1. 用户调用接口,发起IO请求 2. AioWrite将请求封装成io task并放入任务队列 3. 放入任务队列后,异步请求发起成功,返回用户 IO拆分线程 4. 从任务队列取出任务后进行拆分 5. 拆分过程依赖元数据,可能会通过MDSClient向 MDS获取 6. 拆分成的子请求放入队列CLIENT IO线程模型 IO分发线程 7. 从队列中取出子请求准备发送 Chunkserver查询复制组leader 9. 发送写请求给Chunkserver BRPC线程 10.Chunkserver处理完成后返回RPC Response 11.用户请求的所有子请求完成后,调用 IOTracker::Done 12.调用异步请求回调,返回用户CLIENT IO请求重试 IO分发线程将拆分后的子请求通过RPC请求发往指定的Chunkserver上,RPC有可能会失败,一般情况下 Client接收到IO请求后,直接发送 异步RPC(在用户线程) 发送异步4K RPC的平均延迟在11.26us, 这种情况下单线程只有 89055 iops 发送RPC阻塞了用户线程,导致iops下降 优化点: 增加队列,用户请求放入队列,由后台线 程负责发送 86.4K -> 130KCLIENT性能优化 发送RPC耗时较长 增加发送线程个数 在bthread协程中使用std:0 码力 | 27 页 | 1.57 MB | 5 月前3Curve支持S3 数据缓存方案
of 9 版本 时间 修改者 修改内容 1.0 2021/8/18 胡遥 初稿 背景 整体设计 元数据采用2层索引 对象名设计 读写缓存分离 缓存层级 对外接口 后台刷数据线程 本地磁盘缓存 关键数据结构 详细设计 Write流程 Read流程 ReleaseCache流程 Flush流程 FsSync流程 后台流程 poc测试验证 背景 基于s3的daemon 要提供truncate接口,可以由client直接修改inode的len,由metaserver的碎片整 理(马杰负责)模块进行truncate的无效数据清理 后台刷数据线程© XXX Page 4 of 9 启动后台线程,将写Cache定时刷到S3上,同时通过inodeManager更新inode缓存中的s3InfoList。具体细节见 本地磁盘缓存 如果有配置writeBack dev fileCacheManager,如果没有则生成新的fileCacheManager,解锁,调用fileCacheManager的Write函数。 2.考虑到同一个client同一个文件同时只能一个线程进行文件写,所以在Write函数中加写锁。 3.根据请求offset,计算出对应的chunk index和chunkPos。将请求拆分成多个chunk的WriteChunk调用。 4.在WriteC0 码力 | 9 页 | 179.72 KB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
bytes stream stream bytes Network Network Protocol Stream Proxy Proxy Protocol Stream Network Network线程模型 0.1.0 9 Client Listener Read / Codec Read / Codec Read / Codec accept Stream Event Handler send write worker worker Read / Codec Read / Codec Read / Codec Write Write Write write send线程模型 0.2.0 9 Client Listene r Read / Codec Read / Codec Read accept Stream Event Handler Pool worker worker Read / Codec Read / Codec Read Write Write Write write data Codec Worker Pool线程模型规划: SEDA 10 Client Listener IO Pool Server Server Server IO Event Handler Pool data Codec0 码力 | 44 页 | 4.51 MB | 5 月前3
共 36 条
- 1
- 2
- 3
- 4