沙发式存储桶上的大量KV操作(插入,向上插入)导致并发.timeout.Exception

时间:2018-08-16 18:54:08

标签: couchbase couchbase-view couchbase-java-api

我正在尝试使用Java JDK客户端2.4.7和Couchbase服务器5.0.1将文档插入/上传到Couchbase数据库中。该Couchbase群集在AWS EC2上设置,具有6个数据类型为m4.2xLarge的数据节点和两个索引/查询节点类型为m4.xLarge。

要插入沙发床的文档数(记录)约为600万。这些记录被分组为每个10K。 20个工作线程正在使用for循环遍历每个记录,从而对10K的每个块执行插入/上插入操作。每个块的插入时间在固定的时间间隔内不断增加,最终导致以下异常:

java.lang.RuntimeException: java.util.concurrent.TimeoutException
    at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:77)
    at com.couchbase.client.java.subdoc.MutateInBuilder.execute(MutateInBuilder.java:280)
    at com.couchbase.client.java.subdoc.MutateInBuilder.execute(MutateInBuilder.java:103)
    at com.onkaar.XXXXXXXX.kernel.infrastructure.data.CouchbaseSaveAccountRepository.saveBatch(CouchbaseSaveAccountRepository.java:56)
    at com.onkaar.XXXXXXXX.kernel.storage.StorageTask.executeTask(StorageTask.java:38)
    at com.onkaar.XXXXXXXX.kernel.storage.StorageTask.run(StorageTask.java:63)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

由以下原因引起:java.util.concurrent.TimeoutException

以下是我用于连接到couchbase群集的环境配置: Couchbase IO池大小= 5; 计算池大小= 5; KV端点计数= 3; KV超时= 5000; 连接超时= 10000; 工作线程= 20;

能否请您为此用例建议最佳配置。

0 个答案:

没有答案