TiDB中文技术文档
快速入门指南 TiDB 用户文档 TiDB 数据库管理 TiDB 服务 TiDB 进程启动参数 TiDB 数据目录 TiDB 系统数据库 TiDB 系统变量 TiDB 专用系统变量和语法 TiDB 服务器日志文件 TiDB 访问权限管理 TiDB 用户账户管理 使用加密连接 SQL 优化 理解 TiDB 执行计划 统计信息 语言结构 字面值 数据库、表、索引、列和别名 关键字和保留字 用户变量 表达式语法 '123456'; 授权用户 tiuser 可检索数据库 samp_db 内的表: 1. GRANT SELECT ON samp_db.* TO 'tiuser'@'localhost'; 查询用户 tiuser 的权限: 1. SHOW GRANTS for tiuser@localhost; 删除用户 tiuser : 创建、授权和删除用户 TiDB 快速入门指南 - 20 - tidb-server 、 tikv-server 、 pd-server )默认会将日志输出到标准错误中,并且三个 组件都支持设置 --log-file 启动参数 (或者是配置文件中的配置项)将日志输出到文件中。 通过配置文件可以调整日志的行为,具体信息请参见各个组件的配置文件说明。例如: tidb-server 日志配置项。 TiDB 数据库管理 TiDB 服务 TiDB 集群启动配置 TiDB0 码力 | 444 页 | 4.89 MB | 5 月前324-云原生中间件之道-高磊
说说应用基本依赖的四大件:数据库、存储、中间件和大数据 下单服务 交易支付 支付网关 锁定库存 库存数据库 前台类目 商品查询 BFF 商品数据库 文件存储 logging MQ 交易数据库 大数据 营销分析 业务赋能 典型微服务应用 云原生应用 下单服务 交易支付 支付网关 锁定库存 库存数据库 前台类目 商品查询 BFF 商品数据库 文件存储 logging MQ 交易数据库 大数据 营销分析 云原生PaaS平台 数据一体机 存储架构 存算一体: 调整困难、只能满 足一定的吞吐量要 求 存算分离: 自动调整、拓展能 力强,满足更大吞 吐量 存储自动扩缩容 手工填加机器, 手工同步 完全自动化 高性能 存在性能瓶颈 类似日志方式的顺 序写,性能高 易用程度 封闭体系,集成各 类优秀能力较差 集成能力强,多模 态接口,兼容各类 协议 可用性、稳定性 需要强大的旁路运 维能力 简化运维、自动化 容量和故障转移 云原生数据库其特点,使得应用场 供了一个范本,并不是原封不动的迁移就变成云原生 高级能力-云原生数据库-应用的基石-3-场景 数据源 数据日志 消息数据 订单数据 云原生 DB 高并发写入 用户 MR 云DB 用户 日志消息类数据实时分析 支持企业低成本、大容量存储和查询各类日志、消息、交易、用户行为、画像等 结构化/半结构化数据,支持高吞吐量实时入库及数据实时查询,实现数据资源 智慧化运营。 优势 低成本存储: 支持PB级数据存储 高并发: 千亿数据实时分析0 码力 | 22 页 | 4.39 MB | 5 月前3Curve核心组件之mds – 网易数帆
client MDS leader Chunk server 1、发起请求 2、查询元数据 5、返回结果 5、返回结果 user 3、查询leader节点 4、向leader cs发起请求 1. 用户发起请求(fd, offset, length) ; 2. Client 向 mds 查询请求的元数据, 并缓存到本地,请求转换为对 chunk 的请求 (CopysetId (CopysetId ,chunkId, offset in chunk, length in chunk); 3. Client 向 chunkserver 查询 chunk 所在的 copyset的leader Chunkserver节点; 4. Client 向 leader 发送读写请求client (IP, port, CopysetId, chunkId, offset in chunk, length 间(默认 30min),chunkserver状态改为unstable状态,打 印一条warning日志。 • Offline :chunk server超过offline的时间没有收到心 跳(默认30min), chunkserver状态改为offline, 打印一条error日志。调度模块感知到offline状态, 触发chunk server的recover修复。 心跳正常 心跳正常0 码力 | 23 页 | 1.74 MB | 5 月前323-云原生观察性、自动化交付和 IaC 等之道-高磊
逻辑API:已有API的组 合,形成一个新API • 声明API:需要生成代 码框架(任何语言), 契约驱动研发 • BaaS API:数据库接口、 中间件接口外化成API • API门户:消费者可以 根据领域-能力查询到 想要的API。 • 自动生成SDK方便集成。 • 发行计划:向下兼容, 对比发布 • API文档:每一个API有 一个活档,指导集成。 形成市场,能力 互补 全生命周期API管理-2-Azure API作为产品,可 以给订阅、可以 被交易。 标准化能力-微服务PAAS-从监控到可观测-研发人员的第五感-1 知道 知道的 不知道 不知道的 主动性 被动性 监控 可观察 健康检查 告警 指标 日志 追踪 问题和根因 预警 监控&稳定性 分析&追踪&排错&探索 • 从稳定性目标出发,首先需要有提示应用出问题的手段 • 当提示出现问题后,就需要有定位问题位置的手段,进 一步要有能够指出问题根因、甚至提前就预警的手段。 拓扑流量图:是不是按预期运行 分布式跟踪:哪些调用 故障或者拖慢了系统 监控与告警: 主动告诉我 问题发生了! 微服务部署后就像个黑盒子,如何发现问题并在 远端运维是主要的课题,那么就需要从宏观告知 研发人员,并且提供日志、跟踪、问题根因分析 等工具进一步从微观帮助研发人员定位和解决问 题,这是这里在业务上的价值-稳定性赋能。 标准化能力-微服务PAAS-从监控到可观测-研发人员的第五感-2 可观察性是云原生0 码力 | 24 页 | 5.96 MB | 5 月前3严选 ServiceMesh 实践
timeout 机制 √ 监控/故障诊断 链路追踪:主要依靠中间件 APM APM 性能监控:主要依靠中间件 APM APM 遥感数据:主要依靠中间件 APM APM 访问日志:主要依靠日志平台 日志平台 日志平台6/24 Service Mesh 为严选带来了哪些架构收益 • 历史包袱:现有的服务在不改造的情况下引入了服务治理能力 • 大大降低了中间件的研发投入和演进成本,也降低了业务和中间件的耦合成本 超时控制、重试、重写、重定向等 √ 监控/故障诊断 链路追踪:主要依靠中间件 APM APM 性能监控:主要依靠中间件 APM APM 遥感数据:主要依靠中间件 APM APM 访问日志:主要依靠日志平台 日志平台 日志平台11/24 性能视角 – cNginx vs Envoy(优化前) • 1600RPS+40个并发(主机配置均为 8C16G) • cNginx 的 RT overhead Sidecar 模式采用方案1进行优化,gateway 模式采用方案2进行优化。23/24 服务治理平台 – 升级严选服务治理能力 • 常用服务管理功能:服务上下线、服务实例管理 • 服务生命周期管控与查询 • 服务扩缩容:服务副本数、配额、扩缩容策略; 调整后自动应用至 K8s 集群 02.服务管控 • 服务监控项设置并对接基础监控平台 • 服务质量指标(SLI)定制并监控:如 Latency、QPS0 码力 | 25 页 | 2.07 MB | 5 月前3CurveFS方案设计
inode-inodeInfo; dentry 中存储 filename-dentryInfo 信息 copyset 启动的时候根据 inode 和 dentry 分别建立对应的内存结构,再回放 wal 日志完成构建 卷的元数据管理 卷的元数据中需要包含建立在该卷之上的文件系统元数据分片的位置,以便进行元数据的索引 常见的元数据操作 Create 与 mds 交互获取 inode 和 dentry /(inodeid=1) 所在的 copyset 根据 parent-inode=1 和 name=A 获取对应的 dentry,从而获取到 /A 的 inode 根据 /A 的 inodeId 查询 /A/B 所在的 copyset 根据 parent-inode=* (/A的的inodeid) 和 name=B 获取对应的 dentry,从而获取到 /A/B 的 inode ReadDirAll0 码力 | 14 页 | 619.32 KB | 5 月前3Rust 程序设计语言 简体中文版 1.85.0
&args[2]; println!("Searching for {query}"); println!("In file {file_path}"); } 示例 12-2:创建变量来存放查询参数和文件路径参数 正如之前打印出 vector 时所看到的,程序的名称占据了 vector 的第一个值 args[0],所以我 们从索引为 1 的参数开始。minigrep 获取的第一个参数是需要搜索的字符串,所以将第一个 我们将测试驱动实现实际在文件内容中搜索查询字符串并返回匹配的行示例的功能。我们将在 一个叫做 search 的函数中增加这些功能。 编写失败测试 去掉 src/lib.rs 和 src/main.rs 中用于检查程序行为的 println! 语句,因为不再真正需要它们 了。接着我们会像第十一章那样增加一个 test 模块和一个测试函数。测试函数指定了 search 函数期望拥有的行为:它会获取一个需要查询的字符串和用来查询的文本,并只会返回包含请 查询的文本,并只会返回包含请 求的文本行。示例 12-15 展示了这个测试,它还不能编译: 文件名:src/lib.rs #[cfg(test)] mod tests { use super::*; #[test] fn one_result() { let query = "duct"; let contents = "\ Rust:0 码力 | 562 页 | 3.23 MB | 9 天前3Raft在Curve存储中的工程实践
raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 • Leader:负责从客户端接受日志,把日志复制到其 他服务器,当保证安全性的时候告诉其他服务器应用 日志条目到他们的状态机中。 • Candidate: 发起选举。获取大多数选票的候选人将 成为领导者。 • Follower: 响应来自其他服务器的请求,如果接受不 leader收到客户端的请求。 2. leader把请求指令记录下来,写入日志,然后并⾏发 给其他的服务器,让他们复制这条⽇志。 3. 当这条⽇志条⽬被安全的复制,leader会应⽤这条⽇ 志条⽬到它的状态机中。 4. 然后把执⾏的结果返回给客户端。 • 提供命令在多个节点之间有序复制和执行,当多个节 点初始状态一致的时候,保证节点之间状态一致。 raft日志复制RAFT协议简介 raft配置变更 • 配置:加入一致性算法的服务器集合。 集群先切换到一个过渡的配置(old + new),一旦共同一 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 日志压缩 • 日志会不断增长,占用空间 • 采用快照的方式压缩日志 • 在某个时间点,整个系统的状态都以快照的形式写入 到稳定的持久化存储中 • 完成一次快照之后,删除时间点之前的所有日志和快 照。BRAFT简介 • raft协议提出之后,涌现出了非常多的实现,比如etcd,braft,tikv等。0 码力 | 29 页 | 2.20 MB | 5 月前3探讨和实践基于Istio的微服务治理事件监控
基于容器化和微服务化的监 控场景 • 应用规模巨大 • 服务之间依赖呈现为网状 • 除了日志、性能指标,需要 基于请求的依赖追踪监控 基于虚拟化的监控场景 • 应用规模大 • 服务之间依赖呈现为线型 • 日志、性能指标需要集中化 存储 基于主机的监控场景 • 应用规模较小 • 服务之间没有互相依赖 • 日志、性能指标都在单个主 机问题一:什么是用户想要的监控 什么是用户想要的监控?分布式监控的三个维度 体现系统性能趋势 分布式追踪 • 和请求相关 • HTTP • SQL 日志系统 • 代码逻辑处理事件 • 异常、debug信息容器化和微服务下的监控需求 微观下的监控需求 快速错误追踪 可快速排查在性能测试场景下的 慢方法、异常调用以及异常报文 等信息 单次链路追踪 可细粒度排查应用单次链路调用 的包括日志、网络数据在内的所 有信息。 宏观下的监控需求 链路总体展示 展示整个服务调用过程中链路上 业务总体展示 展示当前业务相关数据的 从宏观上快速定位问题,在微观上找到问题根因的 监控方案问题二:现有的系统能否完全满足需求 现有系统如何满足运维需求Istio现有的监控体系 指标监控 分布式追踪 日志系统Zipkin的架构图 Google Dapper Zipkin的实现EFK和Prometheus的架构图 DC1 DMZ Intranet Elascticsearch cluster0 码力 | 29 页 | 8.37 MB | 5 月前3Curve核心组件之chunkserver
CliService。成员变更相关操作 • CopySetService。创建copyset等操 作 • RaftService。Braft内置的service, 完成raft成员之间的选举,日志复制, 安装快照等操作。 ChunkServer架构CopysetNode封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 在CS3的下一次心跳的 response中,下发第三步生成的三个operator ⑥ CS3收到change peer from CS1 to CS2的operator,给CS2同步 raft日志,当CS2成功赶上进度时,本次raft成员变更成功完成, CS2成为了复制组的一员,CS1不再属于这个复制组。 ⑦ CS3在下一次心跳中向MDS报告本次raft成员变更已完成 ⑧ MDS在得知 在CS3的下一次心跳的 response中,下发第四步生成的三个operator ⑦ CS3收到change peer from CS2 to CS1的operator,给CS1同步 raft日志,当CS1成功赶上进度时,本次raft成员变更成功完成, CS1成为了复制组的一员, CS2不再属于这个复制组。 ⑧ CS3在下一次心跳中向MDS报告本次raft成员变更已完成 ⑨ 等CS1上0 码力 | 29 页 | 1.61 MB | 5 月前3
共 50 条
- 1
- 2
- 3
- 4
- 5