Parallel data mining applications [14] are usually iterative, and during each iteration every process ``mines'' several records. Mining involves reading a record, applying the mining procedures to it, and storing the results for future processing. These applications require frequent I/O operations, which may represent a significant source of performance degradation [14], especially in systems that serialize I/O accesses. One way to alleviate the I/O bottleneck is to employ a parallel file system such as PIOUS [9].
Our implementation of data mining on basket data [14] employed a fully distributed file layout, where each file was striped across all disk servers. Our profiles showed that under this layout scheme a significant amount of time was devoted to I/O operations, many of which were associated with repeated trials of aborted write transactions. Using transaction analysis we discovered two causes for the observed aborts: (1) contention for the global file pointer in write operations, and (2) contention for the server among reads and writes to different files. Although contention for the file pointer is inherent in this implementation, we can avoid the second cause of conflicts by striping the files that are read and written during each iteration on different sets of disk servers. Although this approach reduced the available throughput per file, and increases the contention to each set of file servers, these negative effects are compensated by the reduction in the number of transaction aborts. In our case, we reduced aborts by 25% and thereby improved the execution time by 20%.