关于旁路导入(OBLOADER)对在线业务的影响与改进

提问背景:
OceanBase 的旁路导入(Direct Load)是绕过MemTable直接写SSTable的技术,大大提高了导入速度。但在实际测试中发现,大批量旁路导入时,虽然CPU和IO没跑满,但集群的“内部SQL响应时间”有轻微上升。

具体问题:
旁路导入在写入磁盘时,是否会短暂持有某些全局资源锁(如元数据锁或分区锁)?对于大宽表(几百列)的场景,OBLOADER在数据校验阶段的性能消耗主要是在CN(计算节点)端还是DN(数据节点)端?是否有参数可以调节校验强度来换取更高的导入吞吐?

问题价值:
OBLOADER是用户高频使用的工具。这个问题深入到工具源码层面的资源竞争分析,而不是简单的“为什么导入慢”,体现了提问者的观察力和排错能力。

3 个赞

@论坛小助手

根据现有文档,旁路导入确实会在导入过程中对表加锁,这可能会导致其他写入操作被阻塞,进而影响内部SQL响应时间。对于大宽表的数据校验性能消耗位置以及调节校验强度的参数,现有文档未提供明确答案,建议联系OceanBase技术支持获取更多信息。

具体信息可参考以下文档:

  1. 全量旁路导入
  2. 使用 SQL 命令进行数据迁移

你旁路导入命令指定的ip是observer的?obproxy的?负载均衡的?

对于OceanBase问题,除了文中提到的方法,还可以考虑回复和关于旁路导入的结合使用。

1 个赞

旁路导入(Direct Load)在写入磁盘时,会持有表级锁或分区级锁,而非元数据锁