DFS表支持同一个分区并发写入么

请问分布式表支持并发写入同一分区吗?

请先 登录 后评论

1 个回答

wfHuang

默认情况下不支持并发写入,即写写冲突,客户端会收到报错信息:

The openChunks operation failed because the chunk <xxx> is currently locked and in use by transaction <tid>. RefId:S00002

对于这种情况有几种解决思路:

1. 先写入流表,再订阅入库

subscribeTable(tableName="trades_stream", actionName="trades", offset=0, handler=loadTable("dfs://test", "trades", msgAsTable=true, batchSize=100000, throttle=60)

应用先并发写入trades_stream流表,然后流表订阅并写入DFS表。


2. 使用CHUNK原子级别

建库时指定参数 database("dfs://test",..., atomic="CHUNK"), 可以并发写同一个分区,server在后台检测到事务冲突时,会等待分区锁并重试,但是这个设置有可能会破坏事务原子性。

请先 登录 后评论