TiDB中文技术文档
目 录 致谢 README TiDB 简介 TiDB 快速入门指南 TiDB 用户文档 TiDB 数据库管理 TiDB 服务 TiDB 进程启动参数 TiDB 系统数据库 TiDB 系统变量 TiDB 专用系统变量和语法 TiDB 访问权限管理 TiDB 用户账户管理 使用加密连接 SQL 优化 理解 TiDB 执行计划 统计信息 语言结构 字面值 数据库、表、索引、列和别名 关键字和保留字 书栈(BookStack.CN) 构建 README TiDB 简介与整体架构 TiDB 简介 TiDB 整体架构 TiDB 快速入门指南 TiDB 用户文档 TiDB 数据库管理 TiDB 服务 TiDB 进程启动参数 TiDB 数据目录 TiDB 系统数据库 TiDB 系统变量 TiDB 专用系统变量和语法 TiDB 服务器日志文件 TiDB 访问权限管理 TiDB 用户账户管理 使用加密连接 SQL 优化 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 TiDB 用户文档 - 23 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 数据库管理 TiDB 服务 TiDB 进程启动参数 TiDB 系统数据库 TiDB 系统变量 TiDB 专用系统变量和语法 TiDB 访问权限管理 TiDB 用户账户管理 使用加密连接 TiDB 数据库管理 - 24 - 本文档使用 书栈(BookStack0 码力 | 444 页 | 4.89 MB | 6 月前336-云原生监控体系建设-秦晓辉
raf/blo b/main/k8s/daemonset.yaml Kubernetes Node - 容器负载监控 关键指标 CPU使用率,分子是每秒内容器用了多少CPU 时间,分母是每秒内被限制使用多少CPU时间 sum( irate(container_cpu_usage_seconds_total[3m]) ) by (pod,id,namespace,container,ident,image) container_spec_cpu_quota/container_spec_cpu_period ) by (pod,id,namespace,container,ident,image) 内存使用量除以内存限制量,就是使用率,但 是后面跟了 and container_spec_memory_limit_bytes != 0 是因为有些容器没有配置 limit 的内存大小 container_memory_usage_bytes container_memory_usage_bytes / container_spec_memory_limit_bytes and container_spec_memory_limit_bytes != 0 CPU被限制的时间比例 increase(container_cpu_cfs_throttled_periods_tota l[1m]) / increase(container_cpu_cfs_periods_total[1m])0 码力 | 32 页 | 3.27 MB | 6 月前3Rust 程序设计语言 简体中文版 1.85.0
在所有权的第一个例子中,我们看看一些变量的 作用域(scope)。作用域是一个项(item) 在程序中有效的范围。假设有这样一个变量: let s = "hello"; 变量 s 绑定到了一个字符串字面值,这个字符串值是硬编码进程序代码中的。这个变量从声明 的点开始直到当前作用域结束时都是有效的。示例 4-1 中的注释标明了变量 s 在何处是有效 的。 { // s 在这里无效,它尚未声明 类型就是一个很好的例子。 我们会专注于 String 与所有权相关的部分。这些方面也同样适用于标准库提供的或你自己创 建的其他复杂数据类型。在第八章会更深入地讲解 String。 我们已经见过字符串字面值,即被硬编码进程序里的字符串值。字符串字面值是很方便的,不 过它们并不适合使用文本的每一种场景。原因之一就是它们是不可变的。另一个原因是并非所 有字符串的值都能在编写代码时就知道:例如,要是想获取用户输入并存储该怎么办呢?为 函数的地方创建一个可变引用 &mut s,并 更新函数签名以接受一个可变引用 some_string: &mut String。这就非常清楚地表明,change 函数将改变它所借用的值。 可变引用有一个很大的限制:如果你有一个对该变量的可变引用,你就不能再创建对该变量的 引用。这些尝试创建两个 s 的可变引用的代码会失败: 文件名:src/main.rs let mut s = String::from("hello");0 码力 | 562 页 | 3.23 MB | 10 天前3CurveFs 用户权限系统调研
user=test -o conf=./curvefs/conf/curvefs_client.conf /tmp/fsmount 问题1:root用户无法访问挂载目录 测试发现client mount进程是哪个用户启动的就只有该用户(filesystem owner)可以访问该目录,即使挂载点mode是777。 # filesystem owner wanghai01@pubbeta1-nostest2:/tmp$ 特殊权限(SUID, SGID, STICKY)© XXX Page 17 of 33 SUID: 可执行的文件上。默认情况下,当用户执行此类可执行文件时,被发起的进程的所有者不是进程发起者,而是可执行文件的所有者;换句话说, 。 仅设置在 进程以所有者的身份运行 权限所显示的位置在文 件的属主的权限位中的执行权限位上,如果属主本来就具有执行权限,则显示为“s”,如果本来没有执行权限,则显示为“S”。 其中名字必须为一个 字符串 ,并且必须有一个 命名空间 前缀标识符与一个点字符。目前存在有四种命名空间:用户命名空间、信任命名空间、安全命名空间以及系统命名空间。用户命名空间在命名或者内容上没有任何限制。系统命名空间主要被内核用于访问控制表上 。目前Linux 的 ACL 存储实现就是基于这种扩展属性的。 Inode Table中保存有若干个 Ext4_inode ,每个 Inode 大小为 ext4_super_block0 码力 | 33 页 | 732.13 KB | 5 月前3蚂蚁金服网络代理演进之路
协议编解码 Sidecar (MOSN) 服务发现 负载均衡 熔断限流 服务路由 …… 将SDK客户端 的功能剥离 Sidecar专注服务间通讯 混合在一个进程内, 应用既有业务逻辑, 也有各种功能 业务进程专注于业务逻辑Service Mesh 为什么蚂蚁需要Service Mesh • 拥抱微服务,云原生 • 异构语言体系融合 • 统一服务治理 • 运维体系有利支撑 • Cpuset模式,与业务App共享独占核 • Cpushare模式,与应用容器共享物理机Cpu资源 • 根据具体业务情况设置Cpu资源 内存 • 使用应用内存的1/16 • 与业务Share内存,最大限制使用1G,存在超卖问题,触发Pod 级别的direct reclaim问题 磁盘 • Sidecar与业务容器共享磁盘,并且不受容器启动顺序对磁盘分配的影响,单独mount配置文件 • 不同业务不同资源占用的精细化调配性能问题0 码力 | 46 页 | 19.93 MB | 5 月前3Service Mesh的实践分享
Service Config Center 服务发现 服务注册 服务元数据下发 OSP client 服务路由 网络传输 服务元数据上报缺点 • 语言单一 • 升级困难 • 复杂代码嵌入对客户端进程影响大服务化体系2.0 - Service Mesh雏形 • 物理机、sidecar • Local & Remote,主与备 • 轻量级客户端、本地调用 • Local Proxy负责服务治理与 内部实现一套可插拔的鉴权框 架也能接受混合部署 vs. 绑定K8s • 历史原因导致长期都会物理机 和容器并存,内部需求必须要 同时支持物理机和云 • 绑定K8s能够享受K8s的红利, 但也限制了使用范围 +服务治理程度更接地气 • 不停的迭代、落地、反馈,打 造一系列的实用的治理功能 • 规则路由、标签路由、邻近机房 路由、Hash路由、基于权重的路 由、熔断、健康探测、超时重试、0 码力 | 30 页 | 4.80 MB | 5 月前3Raft在Curve存储中的工程实践
apply的请求,数据都在内存,直接修改 内存中的数据 • raft snapshot,为避免快照对正常操作的影 响,利用操作系统的内存写时复制技术, fork一个进程创建完整的状态机的内存快照, 后台遍历内存,把内存的数据持久化到本地 磁盘 基于memory的存储引擎 • 存储元数据量不受内存大小限制 • raft apply请求,数据保存在rocksdb,向 rocksdb插入记录。 • raft snapshot,利用rocksdb的快照功能,0 码力 | 29 页 | 2.20 MB | 5 月前3Curve元数据节点高可用
etcd集群leader选举的超时时间 3s LeaseTime mds当选leader之后,与etcd集群维持租约的过期时间 租约的keepalive间隔为LeaseTime/3 etcd server端限制LeaseTime >= 1.5 * ElectionTimeout 10s PeriodicGetTime mds当选leader之后,去etcd集群get Leader/MDS1的时间间隔 2s :mds::topology::TopologyServiceImpl] is serving on port=6666. 场景 MDS是否需要切换 影响 发生概率 主MDS1正常退出(kill进程) 是 MDS2当选leader 可以迅速切换 正常 主MDS1异常退出(机器断电) 是 MDS2当选leader 需要等到MDS1的lease过期 小 备MDS2退出 否 MDS1任为leader0 码力 | 30 页 | 2.42 MB | 5 月前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
yaml) 通过拓展实现自定义控制器来实现对非标准资源的纳 管,比如数据库的自动拓展能力或者自动化数据同步 能力等等。 标准化能力-分布式操作系统核心-容器服务-新发展 由于历史遗留或者软件形态所限制,不可能所有的软件都可以被微服务化或被容器化,那么现在阶段来看,整个 数字化转型的一些困难就是处于在技术上的碎片化,为云原生彻底发挥对极端变化的适应性价值还有很多障碍。 在统一的K8s管理面下, 通过一种代理容器(内置 网络堆栈 熔断器 服务发现 熔断器 服务发现 SideCar SideCar 统一化Service Mesh’s Control Plane • 通过将服务治理、通信、安全等从微服务框架中以独立进程剥离出来,解决了微服 务治理的碎片化以及基础设施耦合问题。 • 但是Sidecar(数据面)在国际化组织和企业联盟的努力下,也形成了叫做UDPA (Universal Data Plane API)0 码力 | 42 页 | 11.17 MB | 6 月前3Open Flags 调研
该fd是进程打开文件描述符表的index),在后续系统调用(read(2)、write(2)、lseek(2)、fcntl(2) etc.)中指向这个打开的文件。打开的文件描述符记录中保存着文件的offset 和 文件status。 每个进程都有个 task_struct 描述符用来描述进程相关的信息,其中有个 files_struct 类型的 files 字段,里面有个保存了当前进程所有已打开文件 irfd参数没用。如果pathname是相对路径,并且dirfd的值不是AT_FDCWD,则pathname的参照物是相对于dirfd指向的目录,而不是进程的当前工作目录;反之,如 果dirfd的值是AT_FDCWD,pathname则是相对于进程当前工作目录的相对路径,此时等同于open。 open flags flags定义 flags通过宏定义实现,定义见 ,主要包括如下flag fcntl O_RDWR O_CREAT: 当pathname对应的文件不存在时则创建它,文件uid为进程uid,gid为进程gid或父目录gid(取决于SGID是否置位);当flags中出现O_CREAT 或 O_TMPFILE时,mode参数必须提供,否则会使用栈中随机字节填充;通常在没有ACL的情况下,有效的mode是经过与进程mask作用后的结果(mode & ~mask)。 # symbolic constants0 码力 | 23 页 | 524.47 KB | 5 月前3
共 46 条
- 1
- 2
- 3
- 4
- 5