Next, we set out to explore the performance of our transaction-based system in a random accessed environment. Thus, we repeated the previous experiment, but instead of accessing the data file sequentially, the transactions access the data file completely randomly. The performance of our systems for log size 8 Mbytes is shown in figure 4.
Figure 4: Performance of RVM as a function of the I/O block size - random accesses. Data File = 100 Mbytes, Log File = 8 Mbytes.
We see that all RRVM-MC, RRVM-FDDI, and RRVM-ETHERNET perform much better than RVM, as expected. However, the number of transactions per second sustained by RRVM-FDDI and RRVM-ETHERNET is a little less than 200 (for small transactions), and around 2,500 for RRVM-MC: a reduction in the performance observed so far. There are two reasons for this performance reduction: increased number of page faults, and disk I/O operations. When a file is accessed by 10000 transactions, and each transaction accesses 32 bytes of data, a total of 320 Kbytes of data are accessed. If these transactions access sequential data, they will access in total 320/8=40 pages. If, however, the transactions access data randomly, they will access many more pages. Thus, both the number of page faults, and the number of disk I/O operations are significantly lower in the case of sequential transaction accesses, as compared to random transaction accesses. Even though, the transactions per second sustained by RRVM is very good (around 2,500 transactions per second for small transactions, on top of Memory Channel).