devmadhuu commented on PR #7600:
URL: https://github.com/apache/ozone/pull/7600#issuecomment-2556670546

   > Thanks for adding this @devmadhuu. Could you share the benchmarks that 
were used to arrive at these numbers with the community?
   
   yes sure, thanks @errose28 .  We did following performance benchmarking 
testing for Recon OM sync process flow.
   
   **Workload test ran for 5K TPS (create/commit operations) on NvMe Cisco 
cluster:**
   
   `ozone freon ockrw -n 10000000 -t 100 --percentage-read 0 --size 0 -r 
1000000 -v voltest -b buckettest -p performanceTest`
   
   **Following configs:**
   
   Recon heap allocation - 31 GB
   ozone.recon.om.snapshot.task.interval.delay - 5s
   recon.om.delta.update.limit - 50k
   recon.om.delta.update.loop.limit - 50
   
   Test ran for 39 mins and approx 10M OM DB events got generated having a mix 
of following events due to 5K create/commit key operations per sec:
   create/commit
   
   ```
   - 
   -     insert in open key (PUT)
   -     update bucket info (UPDATE)
   -     delete from open key (DELETE)
   -     update bucket info (UPDATE)
   -     insert to key (PUT)
   -     insert to delete key (PUT)
   -     removal from deleted key table (DELETE)
   ```
   
   Further observations:
   
   -     Approx 2.1M OM DB events per min got generated by workload till the 
whole test run duration.
   -     No JVM pause detection and GC pauses.
   -     Recon OM data was lagging by approx 330k OM DB events in one sync 
interval and it was near real time sync while test workload was in progress.
   -     Recon OM sync is divided among following sub tasks:
   - 
   -     Get from OM
   -     Perform DB update in batch
   -     Prepare events based on DB update in batch.- These 3 tasks together 
took 16 secs
   -     Process those DB events by each of the 4 background task 
concurrently.- 30 secs
   
       So based on above perf stats, Recon was actually processing end to end 
1.4M per min and OM was generating at a pace of 2.1M per min. This data also 
confirmed by Grafana metrics. Based on this data, if we increase delta update 
limit further, it will not help much because processing time will increase and 
after each run, there is an delay of 1 min. so we need to reduce the delay 
further to 5s, so that lag between Recon and OM is kept to min in the range of 
just 330k (1 sync cycle will match up this as well after test workload 
finishes).
   
   Our next task would be to think, how we can optimize the processing speed of 
background tasks, though there is limited possibility due to the nature of data 
and Recon's background tasks must process all the events in sequence and cannot 
process concurrently, we need to think and see the optimization possibility or 
possibility of processing concurrently in processing logic of single event by 
each background task.
   Raised [HDDS-11688](https://issues.apache.org/jira/browse/HDDS-11688) and 
[HDDS-11953](https://issues.apache.org/jira/browse/HDDS-11953) to handle 
further optimization.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to