Details
Description
Recently I've been seeing some slow splits in our production environment triggering timeouts, so I decided to take a closer look into the issue.
According to my debugging, we spend almost all the time it takes to split on creating the reference files. Each file in my testing takes at least 300ms to create, and averages around 600ms. Since we create two references per store file, it means that a region with 4 store file can easily take up to 5 seconds to split just to create those references.
An intuitive improvement would be to create those files in parallel, so at least it wouldn't be much slower when we're splitting a higher number of files. Stack left the following comment in the code:
// TODO: If the below were multithreaded would we complete steps in less // elapsed time? St.Ack 20100920