Motr Performance Tuning - Seagate/cortx-motr GitHub Wiki
Public Discussion on Tuning Motr for Optimal Performance.
How do some client parameters, like buffer size and unit size combined with the pool width and erasure coding configuration affect the performance?
One example of this could be if we have an object with 4K unit size and try to write 100MB data into it - it will take ages to finish. Just because we will try to send the data to the server in 4K chunks. So we (user) have to select the right unit size for the object according to its assumed size.
Or, let's say, we have 8+2 EC configuration and object with 1MB unit size. If we write with 10MB blocks - each such write operation would involve RMW (read-modify-write): first 8MB of the block will go to the 1st parity group OK, but the remaining 2MB would require to read some units from the next parity group, recalculate the parity based on the new data and write them back. This will be suboptimal, of course, and affect the overall performance.