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

Performance Impact during container close when still Client is writing

    XMLWordPrintableJSON

Details

    Description

      Steps for container closure:

      1. SCM allocates blocks to client for write
      2. Client perform write to blocks at DN pipeline
      3. DN when identify container is about to full (default 90% of 5GB container size)
      4. Then DN send notification to SCM for close
      5. SCM move state from Open to closing and send notification to DN to close
      6. At DN on success close, notify SCM for closure

      During Step 5, If client still writing to DN for blocks allocated before SCM receive close, those write will be rejected when DN close container.

      This causes retry for client to allocate new block and retry write.

      As solution,

      • SCM will move state to closing, so that it will not allocate new blocks to client
      • SCM will wait for a configured time before sending to DN close (as a buffer time), where Client can perform write.

      This buffer time is configurable and initially set as "2.5 minutes" which is 5 times DN notification interval (i.e. 30 sec * 5).

       

      Problem not intended to solve:

      • over subscription and container size - This is best approach to complete the write from client within configured time. Container size can cross the 5GB default limit, which does not much impact to system.
      • Slow client writer - If client is writing slowly, it may cross buffer time and can fail. This solution will provide optimal time as configured and will not handle slow client writer.

      Attachments

        Issue Links

          Activity

            People

              sumitagrawl Sumit Agrawal
              sumitagrawl Sumit Agrawal
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: