Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-4775

Create a FlowFile repo backed by RocksDB

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.10.0
    • Core Framework
    • None

    Description

      Currently, when a FlowFile is written to the FlowFile Repository, the repo can either fsync or not, depending on nifi.properties. We should allow a third option, of fsync only for CREATE events. In this case, if we receive new data from a source we can fsync the update to the FlowFile Repository before ACK'ing the data from the source. This allows us to guarantee data persistence without the overhead of an fsync for every FlowFile Repository update.

      It may make sense, though, to be a bit more selective about when do this. For example if the source is a system that does not allow us to acknowledge the receipt of data, such as a ListenUDP processor, this doesn't really buy us much. In such a case, we could be smart about avoiding the high cost of an fsync. However, for something like GetSFTP where we have to remove the file in order to 'acknowledge receipt' we can ensure that we wait for the fsync before proceeding.

      NOTE: This functionality was ultimately provided in a new implementation backed by RocksDB

       

      Attachments

        1. RocksDBFlowFileRepo.html
          22 kB
          Brandon Rhys DeVries

        Issue Links

          Activity

            People

              devriesb Brandon Rhys DeVries
              markap14 Mark Payne
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1.5h
                  1.5h