Ignite 集群范围的未定义行为[threadName=数据拖缆条带

Ignite 集群范围的未定义行为[threadName=数据拖缆条带,ignite,Ignite,实际上,我正在尝试加载约5000万条记录。过了一段时间(50万条记录),我收到以下消息 严重:检测到阻塞的系统关键线程。这可能导致群集范围内的未定义行为[threadName=data-streamer-stripe-2,blockedFor=17s] rto_1 | Mar 082020 5:02:08 PM java.util.logging.LogManager$RootLogger log rto_1 |严重:检测到关键系统错误。将根据配置的处理程序[hnd=StopNodeOrHalt

实际上,我正在尝试加载约5000万条记录。过了一段时间(50万条记录),我收到以下消息

严重:检测到阻塞的系统关键线程。这可能导致群集范围内的未定义行为[threadName=data-streamer-stripe-2,blockedFor=17s] rto_1 | Mar 082020 5:02:08 PM java.util.logging.LogManager$RootLogger log rto_1 |严重:检测到关键系统错误。将根据配置的处理程序[hnd=StopNodeOrHaltFailureHandler[tryStop=false,timeout=0,super=AbstractFailureHandler[ignoredFailureTypes=[system_WORKER_BLOCKED,system_Critical_OPERATION_timeout]],failureCtx=FailureContext]进行相应处理[type=SYSTEM\u WORKER\u BLOCKED,err=class o.a.i.IgniteException:GridWorker[name=data-streamer-stripe-2,igniteInstanceName=39d7b944-fb1a-4413-80a6-A8E4267995A,finished=false,heartbeatTs=158368911068]] rto_1| class org.apache.ignite.IgniteException:GridWorker[name=data-streamer-stripe-2,igniteInstanceName=39d7b944-fb1a-4413-80a6-A8E4267995A,finished=false,heartbeatTs=1583686911068] rto_1|位于org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831) rto_1|位于org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826) rto|u 1|位于org.apache.ignite.internal.worker.WorkersRegistry.onIdle(WorkersRegistry.java:233) rto|u 1|位于org.apache.ignite.internal.util.worker.GridWorker.onIdle(GridWorker.java:297) rto|1|位于org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.lambda$new$0(ServerImpl.java:2663) rto|1|位于org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7181) rto|1|位于org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2700) rto_1|位于org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) rto|1|位于org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7119) rto_1|位于org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)

我尝试在服务器节点上进行导入,然后切换到专用的客户端节点。与设置无关,流线程似乎突然需要几秒钟。我还尝试将DataStreamerThreadPoolSize设置为4,将StreamerNodeBufferSize设置为200,以便更快地完成写入。无需我成功了


有什么建议可以解决这个问题吗?

我认为这可能与“关键工作线程活动性检查”有关

尝试为以下配置之一设置必要的值

1) see if you can disable Disk Persistence (if enabled)

// submit data to nodes after this time
2) IgniteDataStreamer.autoFlushFrequency(100);

// Maximum number of parallel stream operations for a single node.
3) IgniteDataStreamer.perNodeParallelOperations(48);

// disable write-through behavior
4) IgniteDataStreamer.skipStore(true); 

// Allow overwrite, false to no-overwrite
5) IgniteDataStreamer.allowOverwrite(true);
如果没有找到任何根本原因,那么至少可以通过错误处理找到根本原因


您可以共享完整的日志吗?另外,您可以尝试完全禁用。您认为所有建议的设置都会提高性能,这是对的。在我的情况下,我需要磁盘持久性。持久性不是问题的主要来源。它是事务级事务\u快照