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

Write buffering updates to another tlog

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 7.4
    • None
    • None

    Description

      Currently, we write buffering logs to current tlog and not apply that updates to index. Then we rely on replay log to apply that updates to index. But at the same time there are some updates also write to current tlog and applied to the index.

      For example, during peersync, if new updates come to replica we will end up with this tlog
      tlog : old1, new1, new2, old2, new3, old3
      old updates belong to peersync, and these updates are applied to the index.
      new updates belong to buffering updates, and these updates are not applied to the index.

      But writing all the updates to same current tlog make code base very complex. We should write buffering updates to another tlog file.

      By doing this, it will help our code base simpler. It also makes replica recovery for SOLR-9835 more easier. Because after peersync success we can copy new updates from temporary file to current tlog, for example
      tlog : old1, old2, old3
      temporary tlog : new1, new2, new3
      -->
      tlog : old1, old2, old3, new1, new2, new3

      Attachments

        1. SOLR-9922.patch
          22 kB
          Cao Manh Dat
        2. SOLR-9922.patch
          29 kB
          Cao Manh Dat
        3. SOLR-9922.patch
          40 kB
          Cao Manh Dat
        4. SOLR-9922.patch
          42 kB
          Cao Manh Dat
        5. SOLR-9922.patch
          53 kB
          Cao Manh Dat
        6. SOLR-9922.patch
          54 kB
          Cao Manh Dat

        Activity

          People

            caomanhdat Cao Manh Dat
            caomanhdat Cao Manh Dat
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: