Uploaded image for project: 'Flume'
  1. Flume
  2. FLUME-1432

FileChannel should replay logs in the order they were written

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.0
    • 1.3.0
    • Channel
    • None

    Description

      Currently we replay the logs one at a time causing us to build large queue of pending takes. Additionally, there maybe scenerios where this simply will not work. Take a queue which is full (via checkpoint) and two files:

      1:
      put
      commit
      put
      commit

      2:
      take
      commit
      take
      commit
      take
      commit

      Replaying these logs in the current form will not work because we will we try and reply the puts first and exceed our queue size. For these reasons, we should replay them in the order they were written.

      However, at present there is no way to do this. Currently we have two identifers in each record we write, a transaction id and a timestamp. Neither can be used in replaying logs in order because the transaction id is created when we create the transaction not when we write to the log. Someone could create transaction, sleep, and then do work. The timestamp its not granular enough as we could have duplicates.

      Attachments

        1. FLUME-1432-6.patch
          78 kB
          Brock Noland
        2. flume-1432-resources.tar.gz
          44 kB
          Brock Noland
        3. FLUME-1432-6.patch
          137 kB
          Brock Noland

        Issue Links

          Activity

            People

              brocknoland Brock Noland
              brocknoland Brock Noland
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: