Solr 云数据导入处理程序复制速度慢

Solr Cloud Data Import Handler slow with replication

我正在设置具有 3 个节点和 3 个分片的 Solr Cloud 部署。在没有复制的情况下,我的数据导入处理程序可以非常快速地导入 - 大约 5 分钟内导入大约 120 万个文档。这很好,但是当我启用复制时,即重新创建复制因子为 2 的集合时,数据导入处理程序变得非常慢,相同的 1.2M 文档大约需要 1 小时 30 分钟。

我在 3 个 4x16 虚拟服务器上以云模式使用 solr 5.3.1,每个节点上都有一个 zookeeper 实例。数据导入来自 MS SQL 数据库。

我的大部分配置都是 Solr 自带的默认配置,我已经尝试将硬提交和软提交的自动提交更改为很长但没有效果。

任何 ideas/pointers 将不胜感激。

谢谢, 埃文

也许不是一个正确的答案,但问题似乎自行解决了。当然,我们必须做一些事情来实现这一点,但是我们所能想到的就是删除 log4j 属性文件中的 CONSOLE 日志记录并删除它创建的 11GB 日志文件。

我猜这可能至少可以为遇到同样问题的其他人提供一些其他的东西来尝试。

当您将文档发送到集合时,它首先被代理到该文档的领导分片,然后领导分片在本地应用它,然后将它发送到所有活动副本,然后 returns 到客户。 这意味着 'send a document' 请求将保持打开状态,直到所有副本都收到文档或失败。这意味着插入文档的时间是 any 副本插入文档的最大时间。

所以是的,假设索引器连接数固定,复制因子较高的集合插入文档的速度会较慢。

关于日志记录,Solr 默认使用同步日志记录,因此如果您将日志写入非常慢的磁盘或 nfs 或其他东西,那肯定会影响查询时间。我强烈建议对所有内容进行异步日志记录,但这意味着会扰乱默认的 Solr 设置。