MySQL 兼容性可以做到什么程度PolarDB-X 如 何 做 生 态兼 容 好的 MySQL 兼容性可以做到什么程度 胡中泉(舟济) 阿里云数据库解决方案架构师为什么要兼容 MySQL 01 The longer you look back, the farther you can look forward.也从阿里巴巴的“去IOE”运动说起 业务驱动下的分布式技术实践之路 5月17日,支付宝最后一台小型 机下线标志去IOE落下帷幕 MySQL Binlog 可行性 • 多节点产生多个增量事件队列 • 不同队列中事件之间的顺序 • 分布式事务完整性 • DDL 引起的多 Schema 版本问题 • 扩缩容引起的队列增减 ? Maxwell Debezium A: PolarDB-X 全局 Binlog:完全兼容 • 与 MySQL Binlog 体验完全一致 • 保障分布式事务完整性 • 透明:下游系统或工具改造成本为零 Binlog 完全一致体验 • 文件格式兼容:Binlog v4 row-based • SQL 指令兼容:show binary logs… • MySQL DUMP 协议 • 保证分布式事务完整性与顺序 • 同一连接串 已验证工具或系统 • MySQL Slave(change master) • DTS • Canal/CloudCanal • Maxwell • Debezium0 码力 | 18 页 | 3.02 MB | 6 月前3
Curve质量监控与运维 - 网易数帆查、单元测试、集成测 试、覆盖率80%卡点) 邮件通知 Curve所有代码均在github托管。新 代码需要通过CI测试和code review才 能合入master分支,确保新合入代码 的功能、正确性、规范性等都有基本 保障;而每日运行的dailybuild测试在 CI测试基础上增加了异常自动化测试 和混沌测试,确保master分支代码的 bug尽可能早地暴露出来。 通过这种流程,curve可以在一定 40+自动化用例 混沌测试 20轮自动化随机故障注入 12/33单元测试 单元测试是软件开发的过程中最基本的测试,它用来对一个模块、一个函数或者一个类来进行 正确性检验的测试工作。 curve通过lcov统计代码覆盖率,衡量单元测试的完备程度,如下图所示: 13/33集成测试 测试目的 测试内容 单元测试后,有必要进行集成测试,发现 并排除在模块连接中可能发生的上述问题, 最终构成要求的软件子系统或系统。集成 子功能的组合是否可以达到预期的要求; 子模块之间是否会相互影响; 单个模块的误差积累是否会放大,从而 达到不可接受的程度。 功能测试 站在使用者的角度,对模块提供的功能进行完备 的测试。 异常测试 制造或模拟系统异常(磁盘错误、网络错误、资源 冲突等)、依赖服务异常、应用本身异常等非正常 情况,测试软件的性能和稳定性是否符合预期。 规模测试 测试模块在一定规模下是否能够正常工作,是否0 码力 | 33 页 | 2.64 MB | 6 月前3
1.6 利用夜莺扩展能力打造全方位监控系统利用夜莺扩展能力打造全方位监控系统 喻波 滴滴 专家工程师 目 录 运维监控需求来源 01 监控痛点:全面完备、跨云 02 夜莺介绍: 国产开源监控系统 03 夜莺设计实现:Agentd 数据采集 04 夜莺设计实现:Server 数据处理 05 夜莺设计实现:技术难点及细节 06 运维监控需求来源 第一部分 如果贵司的业务强依赖IT技术,IT故障会直接影响营业收入, 如何减少服务停摆导致的经济损失?尽快发现故障并止损!故障处理过程中,监控是『发现』和『定位』两个环节 的关键工具。故障处理过程的首要原则是『止损』,因此,过程中的『发现』和『定位』都是面向尽快『止损』来 实现。 监控痛点:全面完备、跨云 第二部分 端上、链路、资源、组件、应用多维度跨云监控,不管哪个 环节出问题都能及时感知 产品要求 01.端上、链路、资源、组件、应用多维度跨云监控 端上 卡顿 崩溃 链路 集群版m3db 3. 集群版n9e-tsdb 3种存储方案,按需选择 Agentd 夜莺设计实现 Agentd 数据采集 第四部分 监控系统的核心功能,是数据采集、存储、分析、展示,完 备性看采集能力,是否能够兼容并包,纳入更多生态的能力, 至关重要 夜莺数据采集 01.监控数据采集,all in one的agentd Agentd 进程存 活 端口监 控 插件脚 本0 码力 | 40 页 | 3.85 MB | 1 年前3
告警OnCall事件中心建设方法白皮书
尤其是多云场景下)。 监控系统的重心,通常是采集、存储、可视化、生成告警事件,但通常都不具有完备的事件后续处理能 力。这里说的后续处理主要包括:多渠道分级通知、告警静默、抑制、收敛聚合、降噪、排班、认领升 级、协同闭环处理等等。监控系统或多或少都有一些这方面的能力,但是通常都不完备,而这,正是 PagerDuty FlashDuty 这种产品存在的价值。这些产品都是以 Duty 命名,核心就是支持告警 的告警。 第二个常见的原因是底层出问题导致所有的上层依赖都告警,越是底层影响越大,比如基础网络如果出问 题,发出几万条告警都是正常的。 第三个原因是渠道错配。一些不重要的告警也使用打扰性很高的渠道发出,用户可能会觉得单一渠道不可 靠,想用多个渠道同时发送的方式来保障告警触达率,这也属于告警规则配置不合理的范畴。 第四个原因是预期内的维护动作导致的。比如程序升级变更,如果进程重启时间过长,可能会导致关联的 监控系统会产生原始的告警事件(event),属于同一个告警的多个事件被合并成告警(alert),类似的告 警(比如某个标签相同,或者文本相似度很高)被合并成故障(incident),最终通知用户的是一个个故 障,大幅降低了打扰性。 不同的告警事件,通常有不同的分发逻辑,比如不同时段不同的分发逻辑:白天用短信通知,晚上用电话 通知,比如对象存储的告警要发给存储团队,物理机故障要发给运维团队。这都可以灵活定义。0 码力 | 23 页 | 1.75 MB | 1 年前3
Curve设计要点元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 数据一致性基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查基本架构 • 快照克隆服务器 独立于核心服务 储到支持S3接口的 储到支持S3接口的 对象存储,不限制数量 异步快照、增量快照 从快照/镜像克隆 ( lazy/非lazy ) 从快照回滚数据组织形式 • 底层 可用性 / 可靠性 扩展性 / 负载均衡 向上提供无差别文件流 • Application 块/对象/EC等 感知具体格式 提供不同文件类型支撑不同上层应用数据组织形式 • PageFile/AppendFile/AppendECFile • 逻辑概念,空间分配的基本单元 (减少元数据数量) • 多个连续地址空间chunk(物理文件)的聚合数据组织形式 • CopySet • 逻辑概念 • 减少元数据数量 • 数据放置的基本单元 • 提高数据可靠性 • 包含多个chunk • 减少复制组数量 类似Ceph中的PG 「Copysets: Reducing the Frequency of Data Loss in Cloud Storage」数据组织形式0 码力 | 35 页 | 2.03 MB | 6 月前3
Zadig 面向开发者的云原生 DevOps 平台高质量 / 高效率 / 低成 本: 人在系统之外 / 上,复杂性下沉到单一平台 希望 工程师不再花时间在开发写代码之外的脏活累活,比如服务部署、找环境,服务编排等 Infra 的事情。 1 0 0 % 开 源 基 本 能 力 开 源 1.5 个月核心重构 65% 功能实现开源 支撑开源社区开发者环境 易 用 性 增 强 接入:安装 10 分钟以内,成功率达 90% 企业解决方案和最佳实践内置 发布 AI 增强解决方案 企 业 开 放 性 、 A I 能 力 增 强 产品发展历程 高频极速迭代: Zadig 开源 29 个月共迭代 21 个版本 “ ” 开发者常处于 今天发版、明早升级 嗷嗷待哺状态 Zadig 优势、使用场景、解决问题域 Zadig 解决问题域 Zadig 云原生开放性:极简、 0 负担接入 Zadig 业务架构 Zadig 环境不稳定并行验证效率低 • 测试多苦劳,价值难以体现 测试效果提升:独立稳定环境用于测试验收、自动化建设 价值被团队感知:自动化测试从开发到发布被全团队感知 部署频率升高 1-5 倍 验证有效性提升 100% 解放测试,全面自动化 提升效率,建设质量体系 安全 安全建设被动: • 安全建设缺乏时机和抓手 • 出现问题,影响业务进度 前置安全服务:全流程嵌入安全检测,避免流入业务环节。0 码力 | 59 页 | 81.43 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台人淹没在系统的海洋里,无数平台手工切换 高人效/高质量/高效率/低成本: 人在系统之外/上,复杂性下沉到单一平台 希望 工程师不再花时间在开发写代码之外的脏活累活,比如服务部署、找环境,服务编排等Infra的事情。 1 0 0 % 开 源 基 本 能 力 开 源 1.5 个月核心重构 65% 功能实现开源 支撑开源社区开发者环境 易 用 性 增 强 接入:安装10分钟以内,成功率达 90% 集成环境:支持开发者 企业解决方案和最佳实践内置 发布 AI 增强解决方案 企 业 开 放 性 、 A I 能 力 增 强 产品发展历程 高频极速迭代:Zadig 开源 29 个月共迭代 21 个版本 开发者常处于“今天发版、明早升级”嗷嗷待哺状态 Zadig 优势、使用场景、解决问题域 Zadig 解决问题域 Zadig 云原生开放性:极简、0 负担接入 Zadig 业务架构 Zadig 系统架构 Zadig 环境不稳定并行验证效率低 • 测试多苦劳,价值难以体现 测试效果提升:独立稳定环境用于测试验收、自动化建设 价值被团队感知:自动化测试从开发到发布被全团队感知 部署频率升高 1-5 倍 验证有效性提升 100% 解放测试,全面自动化 提升效率,建设质量体系 安全 安全建设被动: • 安全建设缺乏时机和抓手 • 出现问题,影响业务进度 前置安全服务:全流程嵌入安全检测,避免流入业务环节。0 码力 | 59 页 | 23.57 MB | 1 年前3
curvefs client删除文件和目录功能设计背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX Page 3 of 15 CURVEFS_ERROR FuseCli 2. 1. 2. 1. 1. 2. 3. 4. 5. 缺点: moosefs是单mds,所以不存在接口原子性的问题,这块要重新考虑,我们实现上会比moosefs复杂,需要引入一些额外的复杂性。 由于是按目录管理trash,那么必须是两个trash(其中一个是reserve)以区分两种不同的情况。 chubaofs chubaofs的方案如下: node id 由于inode放在原地,那么由于dentry已经被删除,那么查询工具就较为复杂,不能复用原有的client逻辑,需要组织成moosefs那样的meta文件系统可能需要引入额外的复杂性,但是依然可以实现简单的 工具查询。 由于该方案,删除的inode是分散于每个partition中,那么查询工具可能需要遍历所有partion去查询所有的删除inode。 第二种方案: 将inod0 码力 | 15 页 | 325.42 KB | 6 月前3
Linux Lab v1.3 中文手册修复 riscv64-hello.s 的 #ifdef 错误 – patch: 完善二进制补丁的检测与 Apply 支持 – notice: 调整部分 errors 为 warnings,提高可用性 • v1.3 rc1 – ppc64: 新增 ppc64le/pseries 和 ppc64le/powernv 等虚拟开发板支持 – toolchain: 新增支持 https://mirrors • 产品详情 – https://tinylab.org/linux-lab-disk – 详细介绍了特性、功能与用法,配套了大量的演示视频 2.1 软硬件要求 Linux Lab 是一套完备的嵌入式 Linux 开发环境,需要预留足够的算力和存储空间,避免后 续扩展麻烦,基本硬件配置建议如下: 硬件类型 要求 说明 处理器 X86_64, > 1.5GHz 创建虚拟机时也务必选择 调出当前开发板的本地配置文件(boards//.labconfig): 30 欢迎加入 Linux Lab 用户组,联系微信:tinylab,公众号:泰晓科技 1 $ make edit 建议不要一次性做太大的调整,通常只建议修改内核版本,这样可直接用如下命令达到: 1 $ make list-linux 2 v4.12 v4.5.5 v5.0.10 [v5.1] 3 $ make config 0 码力 | 73 页 | 1.54 MB | 1 年前3
Linux Lab v1.2 中文手册用户组,联系微信:tinylab,公众号:泰晓科技 – https://tinylab.org/linux-lab-disk – 详细介绍了特性、功能与用法,配套了大量的演示视频 2.1 软硬件要求 Linux Lab 是一套完备的嵌入式 Linux 开发环境,需要预留足够的算力和存储空间,避免后 续扩展麻烦,基本硬件配置建议如下: 硬件类型 要求 说明 处理器 X86_64, > 1.5GHz 创建虚拟机时也务必选择/Makefile)修改即可,以下命令会通过 VIM 调出当前开发板的本地配置文件(boards/ /.labconfig): 1 $ make edit 建议不要一次性做太大的调整,通常只建议修改内核版本,这样可直接用如下命令达到: 30 欢迎加入 Linux Lab 用户组,联系微信:tinylab,公众号:泰晓科技 1 $ make list-linux build/ 到内存 • 自动缓存 src/ 到内存 • 自动启用 fast fetch,即 git shallow fetch 该模式适合的情况: • 如 ONESHOT 所示,该模式适合一次性的开发需求 – 用完需要主动执行 kernel-saveconfig, kernel-save 保存配置文件和编译结果 • 适合内存较大但是磁盘较小或者性能较弱的实验主机 – src/ 和 build/ 0 码力 | 73 页 | 1.53 MB | 1 年前3
共 127 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13













