TiDB中文技术文档
基本数据类型 函数和操作符 函数和操作符概述 表达式求值的类型转换 操作符 控制流程函数 - 2 - 本文档使用 书栈(BookStack.CN) 构建 字符串函数 数值函数与操作符 日期和时间函数 位函数和操作符 Cast 函数和操作符 加密和压缩函数 信息函数 JSON 函数 GROUP BY 聚合函数 其他函数 精度数学 SQL 语句语法 数据定义语句 (DDL) 数据操作语句 (DML) 事务语句 Date 和 Time 字面值 十六进制的字面值 NULL Values 数值字面值 字符串字面值 TiDB 用户文档 高级功能 历史数据回溯 垃圾回收 (GC) TiDB Ansible 常见运维操作 TiDB 运维文档 Try TiDB - 3 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible 验证 生成自签名证书 监控集群 整体监控框架概述 重要监控指标详解 组件状态 API & 监控 扩容缩容 集群扩容缩容方案 使用 Ansible 扩容缩容 升级 升级组件版本 TiDB 2.0 升级操作指南 性能调优 备份与迁移 备份与恢复 数据迁移 数据迁移概述 数据迁移 故障诊断 TiDB 周边工具 Syncer Loader TiDB-Binlog PD Control TiKV Control0 码力 | 444 页 | 4.89 MB | 6 月前3CurveFS rename 接口实现方案
KV 自带的分布式事务 Q&A 1. 是否需要实现跨文件系统的 rename 操作? 2. 在多客户端情况下,是否需要加锁来保证其原子性? 3. rename 流程举例说明? 例 1:rename A→B (A 存在,而 B 不存在) 例 2:rename A→C (A 存在,而 C 存在) 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? 背景 当前 curvefs curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1) 删除 file1 的 dentry,(2) 增加 file2 的 dentry(该 dentry 的 inodeid 等同 file1 的 inode id)。 返回失败后,有可能希望再次执行 rename 以获得成功) 步骤 4 出错,会导致 inode 有可能没办法被正常回收 (nlink 始终大于 0),恢复机制如下: 对于这一步出错,没有恢复机制,与 unlink 操作失败一样的处理(因为 dentry 删除了,而 inode 却没被回收,会被当成孤儿节点去处理) 如果采用 chubaofs 的方案,需要考虑以下问题: 以上的恢复进制如果没执行成功怎么办?0 码力 | 15 页 | 555.93 KB | 5 月前3分布式NewSQL数据库TiDB
分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 8/120 概览 概览 产品简介 什么是TiDB 产品优势 适⽤场景 整体架构 实例类型 计费说明 计费指南 回收 操作指南 TiDB 实例 ⽤⼾ 备份恢复 Dashboard/监控访问 TiDB Serverless 实例 ⽤⼾ Binlog同步 TiFlash管理 备份恢复 参数配置调整 告警通知 证书管理 数据库审计 UCloud 优刻得 21/120 旗舰版 旗舰版 推荐使⽤版本, 也是默认创建版本。 集群配置随业务情况⾃动调整, 保障性能与资源利⽤率。 ⽤⼾⽆需关⼼集群内部复杂的配置及故障迁移、扩容、缩容等操作,可将⽤⼾从数据库中解放出 来,将精⼒集中到业务上。 实例类型 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 22/120 轻量版 轻量版 适⽤于⽤⼾线上轻量业务。 实例详情 进⼊产品主⻚,选择TiDB,会默认列出当前地域的实例列表。 找到实例,点击操作栏中的“详情”按钮进⼊详情⻚⾯。 实例 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 33/120 详情⻚⾯左侧会显⽰实例的基础信息等内容,可以在⻚⾯左侧进⾏续费操作, 右上侧会展⽰集群当前节点配置及状态信息,右下侧会展⽰监控信息,监控项有数据量,QPS,TPS,内存使⽤量0 码力 | 120 页 | 7.42 MB | 6 月前3Rust 程序设计语言 简体中文版 1.85.0
语言设计本身会自然而然地引导你编写出 可靠的代码,并且运行速度和内存使用上都十分高效。 已经在从事编写底层代码的程序员可以使用 Rust 来提升信心。例如,在 Rust 中引入并行是相 对低风险的操作,因为编译器会替你找到经典的错误。同时你可以自信地采取更加激进的优 化,而不会意外引入崩溃或漏洞。 但 Rust 并不局限于底层系统编程。它表达力强、写起来舒适,让人能够轻松地编写出命令行 应用、 和内联错误信息功能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过 Rust 学习了操作系统开发 等主题。社区对学生问题非常欢迎并乐于回答。通过类似这本书以及其他内容的努力,Rust 团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 既然安装好了 Rust,是时候来编写第一个 Rust 程序了。当学习一门新语言的时候,使用该语 言在屏幕上打印 Hello, world! 是一项传统,我们将沿用这一传统! 注意:本书假设你熟悉基本的命令行操作。Rust 对于你的编辑器、工具,以及代码位 于何处并没有特定的要求,如果你更倾向于使用集成开发环境(IDE),而不是命令 行,请尽管使用你喜欢的 IDE。目前很多 IDE 都在一定程度上支持 Rust;查看0 码力 | 562 页 | 3.23 MB | 10 天前3Open Flags 调研
V的早期版本引入的,后改进为O_NONBLOCK) flags中必须access mode:O_RDONLY, O_WRONLY, O_RDWR其中之一;© XXX Page 4 of 23 文件创建标志只影响打开操作, 文件状态标志影响后面的读写操作 file creation flags: O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_TMPFILE offset 指向文件尾(file offset的修改和write操作在一个原子操作中完成)。 O_APPEND O_NONBLOCK O_NDELAY: O_NONBLOCK和O_NDELAY所产生的结果都是使I/O变成非阻塞模式(non-blocking),在读取不到数据或是写入缓冲区已满会马上return,而不会阻塞等待。差别在于:在读操作时,如果读不到数据,O_NDELAY会使I/O 函数马上 ,并且设置errno为EAGAIN。 : 每次write都等到物理I/O完成,包括write引起的文件属性的更新。 O_SYNC O_DSYNC: 每次write都等待物理I/O完成,但是如果写操作不影响读取刚写入的数据,则不等待文件属性更新(在linux 2.6.33之前只有O_SYNC flag, 但是在绝大多数文件系统中对O_SYNC的实现都是O_DSYNC的含义,在2.6.33版本支持了O_DSYNC0 码力 | 23 页 | 524.47 KB | 5 月前3Curve文件系统元数据持久化方案设计
----+----------------+---------+----------+ 字段 字节数 说明 type 1 操作类型,共有以下 2 类: SET (0X01):ADD 和 UPDATE 都可以转换成 SET 操作 DEL (0X02):当为 DEL 操作时,value_length 和 value 则为空 key_length 4 key 长度 key $key_length waldump : curvefs.dump) }; Q&A© XXX Page 9 of 12 单靠 redis 的 AOF 机制能否保证数据不丢失? 不能,因为 AOF 与 SET/DEL 这些操作不是同步进行的,即使刷入文件配置项 开启最高级别的 always 选项,也有可能丢失一个事件循环的数据,实现如下: appendfsync // : call(...) // propagate( 感觉不是很划算 redis 中哈希表实现的优点? 主要是当哈希表需要扩桶的时候,rehash 过程中 redis 采用了均摊/渐进式的思想,把 rehash 中的性能损耗均摊在每一次 SET/DEL 操作中(如 rehash 总耗时 1 秒,均摊给 100 个请求,那么每个请求只增加延时 10 毫秒),rehash 过程如下: 哈希表渐进式 rehash 的详细步骤: (1) 为 ht[1]0 码力 | 12 页 | 384.47 KB | 5 月前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
从支持应用不同维度发展,最终走在了一起 2010年WSO2提出 类云原生的概念 云原生应用相比传统应用的优势 低成本 高敏捷 高弹性 云原生应用 传统应用 部署可预测性 可预测性 不可预测 抽象性 操作系统抽象 依赖操作系统 弹性能力 弹性调度 资源冗余多 缺乏扩展能力 开发运维模式 DevOps 瀑布式开发 部门孤立 服务架构 微服务解耦架构 单体耦合架构 恢复能力 自动化运维 快速恢复 手工运维 恢复缓慢 标准化能力-分布式操作系统核心-容器服务 向上提供抽象化自愈IT运营视角 高效稳定应用资源供给 价值主张 架构 云原生底座=控制器+调度器的组合+Docker=根据环境的变化而动+基于封装 一致性的大规模分发 服务编排基本原理: • 以度量为基础,以NodeSelector算法来 决定在哪儿部署容器服务 • 运行时以期望与实际的差别进行动态调 整到期望的状态 标准化能力-分布式操作系统核心-容器服务-基本技术原理 拟机、物理,多云)的中间抽 象层,因为应用很复杂,很容 易陷入差异化定制市场,抽象 层的市场范围会更广,作为开 源平台,更容易成为通用性市 场选择。通用性才能做到普适 定制化能力,才能成为云原生 的操作系统。 标准化能力-分布式操作系统核心-容器服务-Operator API Server Kubectl Controller Pod,Deploymen t,etc. API Server Kubectl0 码力 | 42 页 | 11.17 MB | 6 月前324-云原生中间件之道-高磊
对系统性能有一定影响 可信计算 核心目标是保证系统和应用的完整性,从而保证系统按照设计预期所规 定的安全状态。尤其是像边缘计算BOX这种安全防护,根据唯一Hash值验 证,可以实现极为简单的边云接入操作,运行态并不会影响性能。 可信根一般是一个硬件,比如CPU或者TPM,将从 它开始构建系统所有组件启动的可信启动链,比 如UEFI、loader、OS、应用等,可以确保在被入侵 修改时的阻断行为,另外可以将可信启动链的 层将无法进行计算。 所以云原生数据的安全是要实现“可用但不可见”的能力。 • 可信执行环境(TEE)采用Intel SGX技术实现的密文数据上的计算操作,TEE 中的内存是受保护的,用户查询语句在客户端应用加密后发送给云数据库, 云数据库执行检索操作时进入TEE环境,拿到的结果是密文状态,然后返 回给客户端,数据面从传输、计算到存储全链条都是处于加密的,只有可 信执行环境内才进行明文计算。 • S 存储服务作为 Kubernetes 的 一个服务进行部署,MON、OSD、MGR 守 护进程会以 pod 的形式在 Kubernetes 进行 部署,而 rook 核心组件对 ceph 集群进行 运维管理操作。 Rook 通过 ceph 可以对外提供完备的存储 能力,支持对象、块、文件存储服务,让 你通过一套系统实现对多种存储服务的需 求。同时 rook 默认部署云原生存储接口 的实现,通过 CSI /0 码力 | 22 页 | 4.39 MB | 6 月前3CurveFs 用户权限系统调研
filesystems)。挂载参数‘default_permissions’用于启用内核自己的权限检查,而不是将权限检查推迟到文件系统,除了文件系统的任何权限检查之外,内核还会进行检查,并且两者都必须成功才能允许操作 。 。 。 内核执行标准的 UNIX 权限检查 如果文件系统在打开设备 fd 时的初始功能协商期间启用了 ACL 支持,则此挂载选项将被隐式激活。 在这种情况下,内核执行 ACL 和标准的 unix STICKY: 仅设置在目录的其他用户权限位的执行权限上。如果在某个目录上的权限设置为多个用户都拥有写权限,那就意味着凡是拥有写权限的用户都能直接管理该目录中的所有文件名,包括改名文件及删除文 件名等操作;因此需要在这样的目录上设置STICKY特殊权限;如果此类目录设置了STICKY,则所有用户即便拥有写权限,也仅能删除或改名所有者为其自身的文件; # STICKY # chmod o+t DIR VolumeExtentList volumeExtentList = 13; // TYPE_FILE only } 创建目录、文件时设置uid、gid、mode信息 client对文件操作前进行鉴权 实现chown chmod进行权限更改© XXX Page 20 of 33 fuseuid gid struct fuse_ctx { uid_t uid;0 码力 | 33 页 | 732.13 KB | 5 月前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
1:ServiceMesh灵魂拷问一:要架构还是要性能? Mixer v1 架构的优点 • 集中式服务: • 提高基础设施后端的可用性 • 为前提条件检查结果提供集群级别的全局2级缓存 • 灵活的适配器模型,使其以下操作变得简 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)Part 1:ServiceMesh灵魂拷问一:要架构还是要性能? Mixer v1 架构的缺点 保持Proxy代码简单 • 保持Proxy代码简单 • 数据平面可替换原则 • 集中式服务: • 提高基础设施后端的可用性 • 为前提条件检查结果提供集群级别的全局2级缓存 • 灵活的适配器模型,使其以下操作变得简 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)合并没问题,如何合并才是问题 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?Envoy在设计上是可扩展的 t 3:ServiceMesh灵魂拷问三:要不要支持虚拟机? 托管式实例组:效仿容器和k8s的方式来管理虚拟机 容器的硬件配置 实例模版的硬件配置 硬件 镜像文件的基础镜像 实例模版的操作系统配置 操作系统 镜像文件 自动启动脚本 创建应用 启动业务容器 按照实例模版启动虚拟机+应用 启动应用 k8s replicaset 通过实例模版设置实例数 管理实例副本(固定) k8s HPA或者serverless0 码力 | 43 页 | 2.90 MB | 5 月前3
共 45 条
- 1
- 2
- 3
- 4
- 5