The previous set of experiments studied system-level throughput, using a large number of testers. An interesting related study is presented here, of individual-application throughput in each SMFS configuration. Figure 11 shows the effect of increasing loss probability on the throughput of a application, with only one outstanding request at a time.
We see now that local-sync(+FEC) and network-sync solutions perform better than remote-sync(+FEC). The reason for this difference is that with asynchrony, network-sync can return an acknowledgment to the application as soon as a request is on the wide-area link, providing an opportunity to pipeline requests. This is in contrast to conventional asynchrony, where the application would receive an acknowledgment as soon as a request is buffered. The advantage with the former is that it provides performance gain without hurting reliability. The disadvantage is that pure buffering is a local system call operation, which can return to the application sooner and can achieve higher throughput as seen by the local-sync(+FEC) solutions. However, this increase in throughput is at a sacrifice of reliability; any buffered data may be lost in the event of a crash before it is sent (See Figure 6).