Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-9236

AutoAddReplicas feature with one replica loses some documents not committed during failover

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 6.2, 7.0
    • hdfs, SolrCloud
    • None

    Description

      I need to index huge amount of logs, so I decide to use AutoAddReplica feature with only one replica.
      When using AutoAddReplicas with one replica, some benefits are expected.

      • no redundant data files for replicas
        • saving disk usage
      • best indexing performance

      I expected that Solr fails over just like HBase.
      The feature worked almost as it was expected, except for some missing documents during failover.
      I found two reasons for the missing.

      1. The leader replica does not replay any transaction logs. But when there is only one replica, it should be the leader.
      So I made the leader replica replay the transaction logs when using AutoAddReplicas with on replica.

      But the above fix did not resolve the problem.

      2. As failover occurred, the transaction log directory had a deeper directory depth. Just like this, tlog/tlog/tlog/...
      The transaction log could not be replayed, because the transaction log directory was changed during failover.
      So I made the transaction log directory not changed during failover.

      After these fixes, AutoAddReplicas with one replica fails over well without losing any documents.

      Attachments

        1. SOLR-9236.patch
          13 kB
          Mark Miller
        2. SOLR-9236.patch
          16 kB
          Eungsop Yoo

        Activity

          People

            markrmiller@gmail.com Mark Miller
            Eungsop Yoo Eungsop Yoo
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: