Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-2301

Write path: Reduce read contention in rocksDB

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Done
    • 0.5.0
    • None
    • None

    Description

      Benchmark:
      ------------
      Simple benchmark which creates 100 and 1000s of keys (empty directory) in OM. This is done in a tight loop and multiple threads from client side to add enough load on CPU. Note that intention is to understand the bottlenecks in OM (intentionally avoiding interactions with SCM & DN).

      Observation:
      -------------
      During write path, Ozone checks OMFileRequest.verifyFilesInPath. This internally calls omMetadataManager.getKeyTable().get(dbKeyName) for every write operation. This turns out to be expensive and chokes the write path.

      https://github.com/apache/hadoop/blob/trunk/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java#L155

      https://github.com/apache/hadoop/blob/trunk/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java#L63

      In most of the cases, directory creation would be fresh entry. In such cases, it would be good to try with RocksDB::keyMayExist.

       

       

      Attachments

        1. om_write_profile.png
          758 kB
          Rajesh Balamohan

        Issue Links

          Activity

            People

              sdeka Supratim Deka
              rajesh.balamohan Rajesh Balamohan
              Votes:
              0 Vote for this issue
              Watchers:
              7 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 - 20m
                  20m