我正在尝试使用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;
能否请您为此用例建议最佳配置。