提问背景:
OceanBase 的旁路导入(Direct Load)是绕过MemTable直接写SSTable的技术,大大提高了导入速度。但在实际测试中发现,大批量旁路导入时,虽然CPU和IO没跑满,但集群的“内部SQL响应时间”有轻微上升。
具体问题:
旁路导入在写入磁盘时,是否会短暂持有某些全局资源锁(如元数据锁或分区锁)?对于大宽表(几百列)的场景,OBLOADER在数据校验阶段的性能消耗主要是在CN(计算节点)端还是DN(数据节点)端?是否有参数可以调节校验强度来换取更高的导入吞吐?
问题价值:
OBLOADER是用户高频使用的工具。这个问题深入到工具源码层面的资源竞争分析,而不是简单的“为什么导入慢”,体现了提问者的观察力和排错能力。
3 个赞
论坛小助手
#3
根据现有文档,旁路导入确实会在导入过程中对表加锁,这可能会导致其他写入操作被阻塞,进而影响内部SQL响应时间。对于大宽表的数据校验性能消耗位置以及调节校验强度的参数,现有文档未提供明确答案,建议联系OceanBase技术支持获取更多信息。
具体信息可参考以下文档:
- 全量旁路导入
- 使用 SQL 命令进行数据迁移
你旁路导入命令指定的ip是observer的?obproxy的?负载均衡的?
对于OceanBase问题,除了文中提到的方法,还可以考虑回复和关于旁路导入的结合使用。
1 个赞
没落的星辰
#6
旁路导入(Direct Load)在写入磁盘时,会持有表级锁或分区级锁,而非元数据锁