TiDB中文技术文档
有价值有营养的知识文档,欢迎分享到 书栈(BookStack.CN) , 为知识的传承献上您的一份力量! 如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换代的步伐。 文档地址:http://www.bookstack.cn/books/pingcap-docs-cn 书栈官网:http://www.bookstack.cn 书栈开源:https://github (false)。启用此选项需要本机的 root 权限,一般用于忘记密码时重置 增量扫描全表并分析表的数据量 索引等一些信息 默认: “3s” 使用此参数需要先手动执行 analyze table name; 自动更新统计信息,持久化存储到 TiKV,会耗费一些 内存开销, TiDB 在 tcp 层开启 keepalive 默认: false PEM 格式的 SSL 证书文件路径 默认: “” 当同时设置了该选项和 mysql.user 系统数据库里面。只有拥有 CREATE USER 权限,或者拥有 mysql 数据库权 限( INSERT 权限用于创建, UPDATE 权限用于更新)的用户才能够设置或修改密码。 在 CREATE USER 创建用户时可以通过 IDENTIFIED BY 指定密码: 1. CREATE USER 'jeffrey'@'localhost'0 码力 | 444 页 | 4.89 MB | 5 月前3Rust 程序设计语言 简体中文版 1.85.0
Rust 仍不能使用,有许多地方可以求助。您可以在社区页面查看如何与其他 Rustaceans(Rust 用户的称号,有自嘲意味)联系。 更新与卸载 通过 rustup 安装了 Rust 之后,更新到最新版本就很简单了。只需要在您对应的命令行中运行 如下更新脚本: $ rustup update 若要卸载 Rust 和 rustup,请在命令行中运行如下卸载脚本: 13/562Rust 程序设计语言 cargo build 关于更多 Cargo 的信息,请查阅 其文档。 总结 你已经准备好开启 Rust 之旅了!在本章中,你学习了如何: • 使用 rustup 安装最新稳定版的 Rust • 更新到新版的 Rust • 打开本地安装的文档 • 直接通过 rustc 编写并运行 Hello, world! 程序 • 使用 Cargo 创建并运行新项目 是时候通过构建更实质性的程序来熟悉读写 Rust 从 registry 上获取所有包的最新版本信息,这是一份来自 Crates.io 的数据副本。Crates.io 是 Rust 生态系统中,人们发布其开源 Rust 项目的平台,供 他人使用。 在更新完 registry 后,Cargo 检查 [dependencies] section 并下载列表中包含但还未下载的 crate。本例中,虽然只声明了 rand 一个依赖,然而 Cargo 还是额外获取了0 码力 | 562 页 | 3.23 MB | 9 天前3Curve核心组件之mds – 网易数帆
unstable, offline) • 记录chunkserver定期上报的状态信息(磁盘容量,磁盘负载,copyset负载等),以提供运维工 具查看上述状态信息。 • 通过上述信息的定期更新,作为schedule 模块进行均衡及配置变更的依据 • 通过chunkserver定期上报copyset的copyset的epoch, 检测chunkserver的copyset与mds差异,同 根据 chunkserver 上报的 copyset 信息更新拓扑 中的信息。 • ConfGenerator: 将当前上报的 copyset 信息提交给调度模块, 获取该 copyset 上可能需要执行的任务。 • HealthyChecker: 检查集群中的 chunkserver 在当前时间点距 离上一次心跳的时间,根据这个时间差更新chunkserver状态。 Chunkserver端:chunkserver chunkserver 上的 copyset 信息上报给 MDS。 • Order ConfigChange: 将 MDS 下发的任务提交给对应的 对应 模块执行。HEARTBEAT Chunk server的状态更新: • Online: chunk server在线,正常服务。 • Unstable: chunk server一段时间没收到心跳(默认 30s),但是还没有到达offline的时间(默认0 码力 | 23 页 | 1.74 MB | 5 月前3CurveFS S3数据整理(合并碎片、清理冗余)
应用变更 - 先读写新增的s3 objects列表, 由于新增了version字段, 不会涉及到覆盖老的对象 - 加锁, 增量的更新inode的s3chunkinfolist, 保证原子更新, 更新失败回退新增数据 - 等待N秒, 保证mds已经告知client缓存失效, 需要更新为新的s3chunkinfolist // 需不需要这个步骤@xuchaojie @chenwei确认 - 删除老的object0 码力 | 3 页 | 101.58 KB | 5 月前3CurveFS对接S3方案设计
s3的append接口追加写到同一个block object。 3.更新inode中s3元数据的时候,现在只会将可以直接合并的S3Info进行了合并,后面需要考虑如果S3Info太大,需要进行rewrite将元数据进行重新合并 4.inode我们只更新s3Info,并不更新length,length由client在外面流程统一更新© XXX Page 11 of 11 read流程 1.rea0 码力 | 11 页 | 145.77 KB | 5 月前3Curve核心组件之snapshotclone
SnapshotRef & CloneRef:快照总体流程 • 1.用户发起快照,生成快照任务,并持久化到 etcd,开始执行快照任务。 • 2.在curve中创建内部快照,并返回快照信息, 然后将快照信息更新到etcd。此时,即返回用 户快照成功,可以进行读写。 • 3.向mds查询快照的元数据,转储快照元数据 块metaObject。 • 4.根据快照元数据信息,转储快照数据块 dataObject。 根据目的卷的分配信息,调用 chunkserver接口创建CloneChunk。 • 5. 更新克隆卷状态为metaInstalled。 • 6. 发起ChunkServer数据拷贝 • 7. ChunkServer从克隆源拷贝数据。 • 8. 将卷从临时卷rename为克隆目标卷名。 • 9. 更新克隆卷状态为Cloned。 克隆流程: chunk chunk chunk chunkserver datastore metastore http service clone Task user 快照、克隆元数据 SnapshotCloneServer 1.发起克隆 5.8.9.更新元数据克隆卷状态变化 • 初始状态; • 正在安装元数据或拷贝数据中; • 用户不可见。 Cloning: • 元数据安装成功; • Lazy方式下可见,用户可用; • 非Lazy不可见。0 码力 | 23 页 | 1.32 MB | 5 月前3Curve支持S3 数据缓存方案
er的碎片整 理(马杰负责)模块进行truncate的无效数据清理 后台刷数据线程© XXX Page 4 of 9 启动后台线程,将写Cache定时刷到S3上,同时通过inodeManager更新inode缓存中的s3InfoList。具体细节见 本地磁盘缓存 如果有配置writeBack dev,则会调用diskStroage进行本地磁盘write,最终写到s3则由diskStroage模块决定。 ChunkInfoList构建s3Request,最后生成s3RequestVer。 4.遍历s3Re 接口读取数据。 questVer中request采用异步 5.等待所有的request返回,更新读缓存,获取返回数据填充readBuf。 ReleaseCache流程 1.由于删除采用异步的方式,所以对于delete操作仅仅需要释放client的cache缓存。这里同时要保证的一点是:上层 在Flush函数中,加写锁,通过swap获取FileCacheManager的chunkCacheMap_到临时变量tmp,并清空chunkCacheMap_,解写锁。遍历tmp中的DataCache列表,执行Flush函数,并更新对应的元数据。 3.Flush返回成功。 4.如果DataCache的Flush失败,则整个Flush失败。但是缓存需要重新回退到chunkCacheMap_中,这里要注意一点:回退的过程,如果ch0 码力 | 9 页 | 179.72 KB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
com/coredns/coredns/plugin https://coredns.io/2017/03/01/how-to-add-plugins-to-coredns/CoreDNS 的记录更新 ��� ��� �.8�.8���� 8����3�9:.8�3���3 .:�� .88�89 ���0. ���.85.:.9 3�� �8��� �8��.:0.�9 ��8��: amazon.com/zh_cn/R oute53/latest/APIReference/API_Chang eResourceRecordSets.htmlCoreDNS 的记录更新CoreDNS 的记录更新CoreDNS 的记录更新CoreDNS 的Plugins https://coredns.io/pluginsCoreDNS 的性能 序号 对象 并发 QPS 总数 命中率/超时数 1 同机房0 码力 | 40 页 | 11.13 MB | 5 月前3CurveFS rename 接口实现方案
(3) 提交事务,将 2 个 copyset 对应的 txid 都加一 (这一步是通过 etcd 的事务实现,不存在一个 copyset_txid 加一,一个没加一) (4) 如果事务提交成功了,更新 Client 的 txid 缓存 (5) 下次访问的时候,带上对应 copyset 的最新 txid (copyset_txid),判断 PendingTX,如果 (copyset_txid >= 的副本删除即可 如果当前事务带上来的 rpc_request.txid > PendingTxId 的话,则表示上一次事务成功了,我们则 并删除副本 更新 dentry 对应的 value 为副本 dentry 的 value, dentry(如果更新完发现 dentry 的 flag 为 DeleteMarkFlag,则直接删除这个 dentry) 如果上面 2 个动作,有一个失败,则本次事务失败0 码力 | 15 页 | 555.93 KB | 5 月前3Open Flags 调研
取不到数据时会回传-1,并且设置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 : 以目录形式打开,如果pathname不是一个目录则会打开失败。 O_DIRECTORY : 。 O_NOFOLLOW 如果pathname是一个符号链接,则会打开失败(ELOOP) : 不更新Inode中的last access time(进程uid=文件uid或者进程在它的user namespace有CAP_FOWNER, 而文件的uid在这个namespace中有一个映射)。 O_NOATIME0 码力 | 23 页 | 524.47 KB | 5 月前3
共 37 条
- 1
- 2
- 3
- 4