女主宣言

TiDB在写入一段时间后,会存在一些可清理的数据。对这些数据进行删除,可以释放集群的空间。本文描述了在清理数据过程中,遇到的问题和具体的排查步骤,希望对有相同需求的同学有所帮助。

PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!

1

背景

TiDB集群在写入了一定的时间后,存在一些可以删除的历史数据。为了释放集群的空间,我和业务一并讨论和计划了待删除的表,但是在drop数据时发现集群QPS有抖动,duration异常升高,经过排查发现触发了compaction的流控,导致业务的写入产生了积压。

集群配置

集群版本:v3.0.5

集群配置:普通SSD磁盘,128G内存,40 核cpu

tidb21 TiDB/PD/pump/prometheus/grafana/CCS
tidb22 TiDB/PD/pump
tidb23 TiDB/PD/pump
tidb01 TiKV
tidb02 TiKV
tidb03 TiKV
tidb04 TiKV
tidb05 TiKV
tidb06 TiKV
tidb07 TiKV
tidb08 TiKV
tidb09 TiKV
tidb10 TiKV
tidb11 TiKV
tidb12 TiKV
tidb13 TiKV
tidb14 TiKV
tidb15 TiKV
tidb16 TiKV
tidb17 TiKV
tidb18 TiKV
tidb19 TiKV
tidb20 TiKV
wtidb29 TiKV
wtidb30 TiKV

2

现象

操作过程中收到如下报警:

乍一看引起的报警问题还是蛮多的,但其实看本质和操作时间点,是在集群drop大批量数据后(本案例是drop近30T数据),且到经过GC life time后触发的,因此基本定位到主要是因为drop大批量表,GC回收时导致的。
看到pending_task,write_stall等报警,第一反应就是GC回收空间时占用IO导致了集群资源争用。
业务也发现积压和OPS抖动,duration升高,如下图:

3

排查步骤

根据以往经验,pending_task和stall我们先看一下集群的繁忙状态:

果然,我们得到了预期的结果,集群在drop操作后爆出了server is busy,官网关于server is busy有如下相关内容:

通过查看监控:Grafana -> TiKV -> errors 确认具体 busy 原因。在ERROR页面我们看到了server is busy 有峰值,这是 TiKV 自身的流控机制,TiKV 通过这种方式告知 tidb/ti-client 当前 TiKV 的压力过大,稍后再尝试,本案例是因为大批量drop导致的busy。

同时,我们发现告警中包含了write_stall,关于write stall,一个 TiKV 包含两个 RocksDB 实例,一个用于存储 Raft 日志,位于 data/raft。另一个用于存储真正的数据,位于 data/db。通过 grep "Stalling" RocksDB 日志查看 stall 的具体原因。

• level0 sst 太多导致 stall,可以添加参数 [rocksdb] max-sub-compactions = 2(或者 3),加快 level0 sst 往下 compact 的速度。该参数的意思是将从 level0 到 level1 的 compaction 任务最多切成 max-sub-compactions 个子任务交给多线程并发执行,这个我们现在开的是4。

• pending compaction bytes 太多导致 stall,磁盘 I/O 能力在业务高峰跟不上写入,可以通过调大对应 Column Family (CF) 的 soft-pending-compaction-bytes-limit 和 hard-pending-compaction-bytes-limit 参数来缓解:

• 如果 pending compaction bytes 达到该阈值,RocksDB 会放慢写入速度。默认值 64GB,[rocksdb.defaultcf] soft-pending-compaction-bytes-limit = "128GB"。

• 如果 pending compaction bytes 达到该阈值,RocksDB 会 stop 写入,通常不太可能触发该情况,因为在达到 soft-pending-compaction-bytes-limit 的阈值之后会放慢写入速度。默认值 256GB,hard-pending-compaction-bytes-limit = "512GB"。

• 如果磁盘 IO 能力持续跟不上写入,建议扩容。如果磁盘的吞吐达到了上限(例如 SATA SSD 的吞吐相对 NVME SSD 会低很多)导致 write stall,但是 CPU 资源又比较充足,可以尝试采用压缩率更高的压缩算法来缓解磁盘的压力,用 CPU 资源换磁盘资源。

• 比如 default cf compaction 压力比较大,调整参数 [rocksdb.defaultcf] compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"] 改成 compression-per-level = ["no", "no", "zstd", "zstd", "zstd", "zstd", "zstd"]。

其实手册里已经写得很详细了,上面关于write stall的多个处理方式都是可以借鉴的。
我们在日志中发现了如下内容:

2020/06/30-12:36:33.758200 7f3586fff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69565867323 rate 13421767
2020/06/30-12:36:34.692021 7f359727e700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69653348050 rate 10737413
2020/06/30-12:36:34.692218 7f3597e7f700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69653348050 rate 8589930
2020/06/30-12:36:35.767359 7f35887fd700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69556916359 rate 10737412
2020/06/30-12:36:36.668152 7f35853ff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69372668753 rate 13421765
2020/06/30-12:36:36.668323 7f3587dfc700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69372668753 rate 10737412
2020/06/30-12:36:37.834539 7f359727e700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 13421765
2020/06/30-12:36:37.834705 7f35965ff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 10737412
2020/06/30-12:36:37.834780 7f35861fe700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 8589929
2020/06/30-12:36:37.834845 7f3586fff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 6871943
2020/06/30-12:36:37.834912 7f3597e7f700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 5497554
2020/06/30-12:36:39.076138 7f35887fd700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68881689347 rate 6871942
2020/06/30-12:36:40.659559 7f3587dfc700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68785639852 rate 8589927

这里日志很明显是因为compaction到达了阈值限制,引发流控,进一步导致业务写入产生了积压。
监控里也能看到相关超阈值的情况:
这里可以看到max到了270

这里可看出和drop后经过gc lifetime的时间是吻合的,11:35完成了drop操作,经过了gc life time周期之后(这个集群是默认的10m),11:45出现了异常。

这里能看出compaction相关的监控增长非常明显,compaction pending bytes也能看出超出了阈值。

我们通过tikv-ctl来对所有kv的进行在线配置,临时调高其阈值,来避免因为流控引发的业务写入积压问题。soft_pending_compaction_bytes_limit默认64G,hard_pending_compaction_bytes_limit默认256GB。关于这两个参数的含义,上文已经有做说明,当超过阈值时,主要是RocksDB的写入速度会受到影响。

./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
29

改完后能看到QPS稳定了,之后逐渐恢复正常,同时write stall消失:

各类异常报警也恢复了正常。

等待compaction峰值小时后,要记得调回默认值,否则会导致compaction下不去,这时候占用空间会比较大。

4

相关知识点

开启Region Merge

从 TiDB v3.0 开始,Region Merge 默认开启。本案例中的集群版本是3.0.5,默认就开启了。

drop table 后会有空 region ,会增加 raftstore 心跳的负载,通过开启 Region Merge 能减少 Region 的个数。与 Region Split 相反,Region Merge 是通过调度把相邻的小 Region 合并的过程。在集群中删除数据或者执行 Drop Table/Truncate Table 语句后,可以将小 Region 甚至空 Region 进行合并以减少资源的消耗。

通过 pd-ctl 设置以下参数即可开启 Region Merge:

pd-ctl config set max-merge-region-size 20
pd-ctl config set max-merge-region-keys 200000
pd-ctl config set merge-schedule-limit 8

相关配置介绍

max-merge-region-size

• 控制 Region Merge 的 size 上限,当 Region Size 大于指定值时 PD 不会将其与相邻的 Region 合并。

• 默认: 20

max-merge-region-keys

• 控制 Region Merge 的 key 上限,当 Region key 大于指定值时 PD 不会将其与相邻的 Region 合并。

• 默认: 200000

split-merge-interval

• 控制对同一个 Region 做 split 和 merge 操作的间隔,即对于新 split 的 Region 一段时间内不会被 merge。

• 默认: 1h

加速merge操作速度

Region Merge 速度慢也很有可能是受到 limit 配置的限制(merge-schedule-limit 及 region-schedule-limit),或者是与其他调度器产生了竞争。具体来说,可有如下处理方式:

• 假如已经从相关 Metrics 得知系统中有大量的空 Region,这时可以通过把 max-merge-region-size 和 max-merge-region-keys 调整为较小值来加快 Merge 速度。这是因为 Merge 的过程涉及到副本迁移,所以 Merge 的 Region 越小,速度就越快。如果生成 Merge Operator 的速度很快,想进一步加快 Region Merge 过程,还可以把 patrol-region-interval 调整为 "10ms" ,这个能加快巡检 Region 的速度,但是会消耗更多的 CPU 资源。

• 创建过大量表后(包括执行 Truncate Table 操作)又清空了。此时如果开启了 split table 特性,这些空 Region 是无法合并的,此时需要调整以下参数关闭这个特性:

• TiKV: split-region-on-table 设为 false,该参数不支持动态修改。

PD:

• key-type 设为 txn 或者 raw,该参数支持动态修改。

• key-type 保持 table,同时设置 enable-cross-table-merge为 true,该参数支持动态修改。

注意:

如果删除了很多数量的 table ,才需要修改上述参数,只删除一个表或者量级很少就不需要开。

在开启 placement-rules后,请合理切换 txn和 raw,避免无法正常解码 key。

• 对于 3.0.4 和 2.1.16 以前的版本,Region 中 Key 的个数(approximate_keys)在特定情况下(大部分发生在删表之后)统计不准确,造成 keys 的统计值很大,无法满足 max-merge-region-keys 的约束。你可以通过调大 max-merge-region-keys 来避免这个问题。

大批量删除注意事项

在删除大量数据的时候,建议使用 Delete * from t where xx limit 1000; 这样的方案,通过循环来删除,用 Affected Rows == 0 作为循环结束条件。

如果一次删除的数据量非常大,这种循环的方式会越来越慢,因为每次删除都是从前向后遍历,前面的删除之后,短时间内会残留不少删除标记(后续会被 GC 清理掉),影响后面的 Delete 语句。所以可以考虑分区表和物理分表,我们这边测试发现物理分表的性能高于分区表,因此最终没有采用分区表的方式。

流控

TiKV 在 3.0.6 版本开始支持 GC 流控,可通过配置 gc.max-write-bytes-per-sec 限制 GC worker 每秒数据写入量,降低对正常请求的影响,0 为关闭该功能。该配置可通过 tikv-ctl 动态修改:

tikv-ctl --host=ip:port modify-tikv-config -m server -n gc.max_write_bytes_per_sec -v 10MB

5

总结

通过本文,希望能帮助您了解到TiDB在删除大批量数据时应该注意的问题,并提前进行规避,以及整个排查问题的思路,后续有相关大批量删除的新注意事项,也欢迎您随时提出,我会对文章进行补充,谢谢。

360云计算

由360云平台团队打造的技术分享公众号,内容涉及数据库、大数据、微服务、容器、AIOps、IoT等众多技术领域,通过夯实的技术积累和丰富的一线实战经验,为你带来最有料的技术分享

TiDB集群大规模删除实践相关推荐

  1. 阿里云上万个 Kubernetes 集群大规模管理实践

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 汤志敏,阿里 ...

  2. TiDB大规模删除实践

    作者:dbapower 原文来源: https://tidb.net/blog/b7a90f87 TiDB集群大规模删除实践 一. 背景 集群在写入了一定的时间后,是存在一些历史可以删除的数据的,为了 ...

  3. 蚂蚁大规模 Kubernetes 集群无损升级实践指南【探索篇】

    文|王连平(花名:烨川 ) 蚂蚁集团高级开发工程师 负责蚂蚁 Kubernetes 集群容器交付 专注于集群交付能力.交付性能及交付 Trace 等相关领域 本文 12623 字 阅读 20 分钟 - ...

  4. 从零部署TiDB集群

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | yangyidba 来源 | 公众号「yang ...

  5. TIDB集群搭建-流水线

    官方文档:TIDB简介 TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传 ...

  6. mysql 集群实践_MySQL Cluster集群探索与实践

    MySQL集群是一种在无共享架构(SNA,Share Nothing Architecture)系统里应用内存数据库集群的技术.这种无共享的架构可以使得系统使用低廉的硬件获取高的可扩展性. MySQL ...

  7. 2W 字详解 Redis 6.0 集群环境搭建实践

    原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...

  8. ​insert带来的TiDB集群性能瓶颈排障

    女主宣言 本文通过分析TiDB线上集群的一次业务问题,整理了故障排查的思路,结合这个案例也可以让有类似潜在威胁的同学提前规避. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算&q ...

  9. Redis集群环境搭建实践

    本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. Redis集群简介 Redis集群(Redis Cluster) 是R ...

最新文章

  1. 3D U-Net:从稀疏注释中学习密集的体积分割
  2. android socket 收不到数据,android Socket服务端接收客户端数据问题
  3. linux 死锁分析
  4. Unity笔记(正版全阶段)目录
  5. mysql的主键有什么作用_mysql设置主键有什么用
  6. 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)
  7. Maven parent.relativePath
  8. jQuery教程04-jQuery_this选择器
  9. 【Hadoop Summit Tokyo 2016】云上的大象
  10. Docker镜像(image)详解
  11. 一步一步写算法(之通用数据结构)
  12. linux 大文本文件,Linux文本文件处理(1)
  13. TCP可靠传输实现-滑动窗口协议
  14. 狗头人与地下世界冒险模式通关记录 [20171224]
  15. Linux arm 支持 ntfs 文件系统
  16. 什么?四六级及格线不是425分?!
  17. 使用iMovie和Keynote制作App Preview
  18. Java日期 SimpleDateFormat,Calander使用
  19. 【深浅拷贝的实现方式】
  20. 江西师范大学电子信息考研865数据结构(附真题以及部分资料)

热门文章

  1. MySQL Statement Cancellation Timer] but has failed to stop it.
  2. PostgreSQL相关知识概念
  3. Linux发行版CentOS下Docker的安装和卸载
  4. 猴子摘桃python代码_阿尔法python练习(4-6答案)
  5. python实现图片找不同游戏_用Python实现谷歌的小恐龙游戏
  6. listdir在python3_Python3 os.listdir() 方法
  7. datetime的文本时间处理
  8. Jquery Mobile 画面导航栏共用的实现方法
  9. 苹果大中华区营收锐减 决定去印度市场“掘金”
  10. 一个炫酷的仿雷达扫描和扩散效果——自定义View就是这么简单