Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replication 为什么我的solr slave指数持续增长?_Replication_Solr - Fatal编程技术网

Replication 为什么我的solr slave指数持续增长?

Replication 为什么我的solr slave指数持续增长?,replication,solr,Replication,Solr,我有一个5核solr 1.4主机,它使用所述的solr复制复制到另一个5核solr。所有写操作都是针对主设备完成的,并间歇性地复制到从设备。这是使用以下顺序完成的: 在每个主核上提交 在每个从内核上复制 在每个从内核上进行优化 在每个从内核上提交 我遇到的问题是,从机似乎保留了旧的索引文件,占用了更多的磁盘空间。例如,经过3次复制后,主核心数据目录如下所示: $ du -sh * 145M index $ du -sh * 300M index 144M index.2010

我有一个5核solr 1.4主机,它使用所述的solr复制复制到另一个5核solr。所有写操作都是针对主设备完成的,并间歇性地复制到从设备。这是使用以下顺序完成的:

  • 在每个主核上提交
  • 在每个从内核上复制
  • 在每个从内核上进行优化
  • 在每个从内核上提交
  • 我遇到的问题是,从机似乎保留了旧的索引文件,占用了更多的磁盘空间。例如,经过3次复制后,主核心数据目录如下所示:

    $ du -sh *
    145M    index
    
    $ du -sh *
    300M    index
    144M    index.20100621042048
    145M    index.20100629035801
    4.0K    index.properties
    4.0K    replication.properties
    
    但同一内核的从机上的数据目录如下所示:

    $ du -sh *
    145M    index
    
    $ du -sh *
    300M    index
    144M    index.20100621042048
    145M    index.20100629035801
    4.0K    index.properties
    4.0K    replication.properties
    
    以下是index.properties的内容:

    #index properties
    #Tue Jun 29 15:58:13 CDT 2010
    index=index.20100629035801
    
    #Replication details
    #Tue Jun 29 15:58:13 CDT 2010
    replicationFailedAtList=1277155032914
    previousCycleTimeInSeconds=12
    timesFailed=1
    indexReplicatedAtList=1277845093709,1277155253911,1277155032914
    indexReplicatedAt=1277845093709
    replicationFailedAt=1277155032914
    lastCycleBytesDownloaded=150616512
    timesIndexReplicated=3
    
    和replication.properties:

    #index properties
    #Tue Jun 29 15:58:13 CDT 2010
    index=index.20100629035801
    
    #Replication details
    #Tue Jun 29 15:58:13 CDT 2010
    replicationFailedAtList=1277155032914
    previousCycleTimeInSeconds=12
    timesFailed=1
    indexReplicatedAtList=1277845093709,1277155253911,1277155032914
    indexReplicatedAt=1277845093709
    replicationFailedAt=1277155032914
    lastCycleBytesDownloaded=150616512
    timesIndexReplicated=3
    
    此从属服务器的solrconfig.xml包含默认删除策略:

    [...]
    <mainIndex>
        <unlockOnStartup>false</unlockOnStartup>
        <reopenReaders>true</reopenReaders>
        <deletionPolicy class="solr.SolrDeletionPolicy">
            <str name="maxCommitsToKeep">1</str>
            <str name="maxOptimizedCommitsToKeep">0</str>
        </deletionPolicy>
    </mainIndex>
    [...]
    
    […]
    假的
    真的
    1.
    0
    [...]
    

    我缺少什么?

    在从属服务器上提交和优化是没有用的。由于所有写操作都是在主机上完成的,因此只有在主机上才能执行这些操作


    这可能是问题的原因:由于您在从属服务器上执行了额外的提交和优化,因此在从属服务器上保留了更多的提交点。但这只是一个猜测,应该更容易理解在主服务器和从服务器上使用完整的solrconfig.xml时会发生什么情况。

    我确定在完全重新加载主服务器后进行复制时,会留下额外的索引。*目录。我所说的“完全重新加载”是指停止主机,删除[core]/data/*下的所有内容,重新启动(此时solr会创建一个新索引),为所有文档编制索引,然后进行复制


    根据一些额外的测试,我发现删除其他index*目录(除了在[core]/data/index.properties中指定的目录)似乎是安全的。如果我对这种解决方法不满意,我可能会决定在完全重新加载主机后第一次复制之前清空从属索引(停止;删除数据/*;开始)。

    在从属位置进行的优化导致索引大小加倍。在优化时,将创建单独的索引段,以将原始索引重写为优化过程中提到的段数(默认值为1)。 最佳实践是偶尔优化一次,在任何情况下都不要调用它(运行cron作业或其他什么),只在主节点优化,而不是在从节点优化。从机将通过复制获得这些新段。
    您应该在从机上提交,索引重新加载将在复制后在从机上处理新文档的可用性

    闭门人:我真的不认为这属于serverfault.com,我也这么认为,但他有maxCommitsToKeep=1和maxOptimizedCommitsToKeep=0,所以额外的快照不应该超过1个……是的,你是对的。正如我所说,在主服务器和从服务器上使用完整的solrconfig.xml可能更容易理解。这在没有额外的优化和提交的情况下发生。即使我没有优化,也会发生这种情况。