网易CockroachDB云化实践_第1页
网易CockroachDB云化实践_第2页
网易CockroachDB云化实践_第3页
网易CockroachDB云化实践_第4页
网易CockroachDB云化实践_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网易CockroachDB 云化实践技术创新 变革未来网易游戏数据库的发展历程NO SQLNo-SQLNew-SQLSQL文本数据库MySQLMongoDB多种类型网易游戏私有云针对 New-SQL 的尝试CockroachDB TiDBTokuDB寸寸CockroachDB 简介开原的分布式 New-SQL 数据库,可任意横向拓展 支持多数据副本,任意节点宅机不影响可用性支持强一致性的ACID 事务,隔离级别为 SERIALIZABLE基于PostgreSQL 协议,兼容PostgreSQL 客户端 底层使用RocksDB 做K-V 存储有众多的实用特性,例如JSON、地理分区、同步分区、物

2、理备份等CockroachDB 的优点针对 OLTP 做深度优化,在不同连接数下的读性能和时延都较好 支持多机房 多区域部署和管理架构简单,安装 部署 维护 上云,都简单方便 只有一个二进制文件,只有一种类型的服务 官方提供了 docker 和 k8s 的部署支持官方工具对 EC2/S3 等各种服务都提供了支持 内置监控和管理平台除支持逻辑备份恢复外,也支持物理备份和恢复非常优秀和专业的代码质量和代码管理CockroachDB 的缺点PostgreSQL 在网易的使用不如MySQL 广泛 基本的 SQL 不会有兼容性问题如果使用了MySQL 特有的语句或者功能则需要调整 没有针对 OLAP 做

3、深度优化不支持proxy procotol 等 IP 传输协议,在有负载均衡的前提下,需要经过 特殊手段才能获取到客户端 IP 和端口授权问题,相当多的功能均为企业版功能,需要付费 代码使用混合协议,需要注意代码 LicenseCockroachDB 的架构CockroachDB 的核心特性使用 SSL 加密方式进行连接(可关闭),并且仍然需要用户名密码认证 默认的数据副本数为 3,可在线变更,不影响业务可以针对库 表 行 索引等不同维度,控制不同数据不同的副本数 会自动在节点均衡分布数据按范图做分区,不会做哈希,容易出现热点效应,建议手工做哈希 按数量而不是实际空间做分区,各个节点占用空间不

4、一定是均衡的支持节点和/或数据的地域信息 设置节点的数据信息根据负载的来源地域和延时清况自动转移 raft leader可以针对库 表 行 索引等不同维度,控制数据所处的地域 支持 JSONCockroachDB 的限制部分重要的限制:不支持自增列,但是可以用它的UUID 或者 SERIAL 功能 不支持UNSIGNED INT、SET 和UNUM不支持哈希索引和部分索引 不支持存储过程不支持游标 不支持触发器CockroachDB 的常见维护操作监控15:00:00使用官方的管理平台,有概览、监控、统计数据等大量功能 官方支持Prometheus历史数据查询SELECT * FROM tb

5、WHERE xxx AS OF SYTEM TIME 2019-05-03默认清理超过 24 小时的历史数据,可以调整该时间 备份和备份恢复可以使用dump 和IMPORT 命令做逻辑备份和恢复可以使用BACKUP 和RESTORE 命令做物理备份和恢复CockroachDB 的坑删除后新建的同名库,不会应用之前的用户权限默认开启了sql_safe_update,无法执行DROP 或者不带WHERE 条件的UPDATE 和DELETE,可关闭CockroachDB 的性能QPS 随着节点数量的增长基本呈现线性增长使用九个节点,简单奎询可以达到MySQL 单节点的四倍读性能和80% 的写性能非常

6、大的范围奎询无法通过增加节点数量来提升性能响应时间接近传统型关系数据库,简单奎询可以控制在 5ms 以内 较小的连接数(几百)的情况下仍然有很好的性能表现巨大的并发连接数(几万甚至更多),并且所有连接均有较高 QPS 的情况 下,性能下降比较明显RocksDB 的调整默认参数相对比较均衡,适用于通用场景针对业务特点做调整可以牺牲某项方面的性能,从而在另外一些方面获得 巨大的性能改善Level 间的Compact 是影响写入性能的主要因素,可从减少Compact 触发 次数、提高Compact 速度和效率入手进行调整根据业务特点酌清开启数据压缩,用CPU 换取更高的 IO 吞吐能力可能的云化方案

7、不使用虚拟化,宿主机启动多个进程,使用 cgroups 做资源隔离 资源调度和调整最灵活,但是需要自己开发管理工具不易构造一个直观的监控使用半虚拟化技术:LXC、systemd-spawn、jail 等资源调度和调整较灵活,但是需要自己开发管理工具使用容器技术:docker/k8s 等有大量的现成的容器管理工具,降低开发成本 使用全虚拟化技术:KVM/XEN 等资源隔离最优秀支持使用不同的操作系统 性能损耗最严重我们的选择:LXC我们已经有比较成熟的 LXC 集群和管理平台 半虚拟化的性能损耗极小资源调度灵活,可以充分利用 cgroup 的强大功能 使用lxcfs 可以构建直观的监控数据库服务无需用户登录服务器,不用担心隔离性弱导致的安全性隐患 不易做迁移,缺乏足够优秀的管理工具LXC 架构固定大小节点,提前预分配和初始化好,节省创建时间 每个节点独立固态磁盘,避免 IO 冲突确保同实例不同节点分布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论