TiKV是一个开源的分布式事务键值数据库。为了解决写延迟问题,TiKV通过优化MemTable重叠处理和支持并发写入,显著提升了高负载下的写入性能,降低了延迟,同时确保了数据的一致性和稳定性。
在上文的写请求处理流程图中,Raft Command,Entries,Committed Entries 都已经出场。因为 Unstable 在日志持久化后会清理掉缓存的日志 entries( https://github.com/tikv/raft-rs/blob/2aefbf627f243dd261b7585ef1250d32efd9dfe7/src/raw_node.rs#L601...
JuiceFS的元数据引擎支持MVCC和GC机制,MVCC通过时间戳区分版本,GC用于清理旧版本。TiKV支持被动GC和半主动GC两种方式。JuiceFS客户端可定期更新PD中的gc safepoint来触发TiKV的GC操作。建议设置较小的GC间隔并由管理员定期进行GC操作,以避免TiKV的DB size暴增和region split失败。
本文介绍了JuiceFS元数据引擎在TiKV中的工作原理,包括创建JuiceFS volume、查看元数据、挂载和文件操作。元数据经过编码存储在TiKV中的不同region。JuiceFS还支持限速和配置变化监听。
TiKV TSO是TiDB实现分布式事务的基石,由physical time和logical time组成。可以使用在线转换工具将TSO转换为现实时间。
TiKV是一个支持事务的分布式Key-Value数据库,通过Raft协议实现数据的高可用性和强一致性。本文详细介绍了TiKV中Raft快照的生成、发送、接收和应用的实现。快照发送和接收机制通过gRPC流连接进行高效传输。快照生成过程在单独的线程池中进行,以避免阻塞其他任务。快照应用通过更新Raft状态机和RocksDB数据来保证数据一致性。
本文讨论了使用tikv-client构建元数据服务时遇到的性能问题,分析了单点延迟和tso获取延迟较大的问题,并提出了解决方案,包括扩容tikv-client实例、升级版本、调整配置等。同时,还提到了关于tikv和pd的性能优化建议。
TiKV推出了名为partitioned-raft-kv的新实验性功能,每个Region都有自己的RocksDB实例,可以提高TiDB的可扩展性和性能稳定性,但需要额外的内存开销。
我们需要定义完整是什么。在这里,“完整”的主体是 TiDB 中的事务,我们知道 TiDB 的事务会有两个写入事件,第一个是 prewrite,第二是 commit 或者 rollback。同时,TiDB 事务可能会涉及多个 key,这些有可能分布在不同的 region 上。所以,我们说“完整”地捕捉一个事务需要捕捉它涉及的所有的 key和所有的写入事件。上图描绘了一个涉及了三个 key...
本篇博客介绍了 TiKV 中一条写请求的全链路流程。希望本博客能够帮助对 TiKV 开发感兴趣的新同学尽快了解 TiKV 的 codebase。
本篇博客介绍了 TiKV 中一条读请求的全链路流程。希望本博客能够帮助对 TiKV 开发感兴趣的新同学尽快了解 TiKV 的 codebase。
本篇博客介绍了 TiKV 的基本概念,TiKV 读写路径上的三个重要模块(KVService,Storage,RaftStore)和断点调试 TiKV 学习源码的方案希望本博客能够帮助对 TiKV 开发感兴趣的新同学尽快了解 TiKV 的 codebase。
背景TiKV 是一个支持事务的分布式 Key-Value
使用 TiKV 和 TiFlash 可以加速复杂查询,下面简单增加了使用使用场景。组件适用场景说明TiKV检索条件固定,且有索引TiFlash检索条件不固定,无法加索引部分表检索条件不固定,部分表有索引如果有描述不当的地方欢迎评论指正!...
分裂可以说是 Region 生命周期中最为重要的一步,如同细胞一般,分裂是 Region 被创造并持续增多的唯一方式。 本文将介绍以下内容: Region Split 是由谁触发的。 Region Split 是如何计算 Split Key 的。 Region Split 最终是如何执行的。 我们先来看一个 Region Split 过程的大致流程: TiKV/PD/TiDB 触发...
TiDB 是 PingCAP 推出的开源分布式 SQL 数据库,而 TiKV 最初是作为 TiDB 的存储底层设计的,现在已经被 PingC...
完成下面两步后,将自动完成登录并继续当前操作。