1|c|Operation | 1|c|NFS | 1|c|WebFS | 1|c|WebFS |
1|c|w/CRISIS | |||
Read 1 byte | 3 ms | 47 ms | 55 ms |
Write 1 byte | 100 ms | 289 ms | 340 ms |
Read 10 MB | 9.8 s | 11.0 s | 12.2 s |
Write 10 MB | 9.2 s | 12.8 s | 14.0 s |
To quantify the performance impact introduced by CRISIS, we measured our global file system, WebFS, both with and without CRISIS enhancements. We measure the time required to read and write both 1 byte and 10 MB to a remote file. Measurements were taken between two Sun Ultrasparc 1's connected by a 10 Mb/s switched Ethernet.
Table 1 summarizes our results. The first column describes performance for accessing uncached NFS files. The second column describes access to uncached files through a version of WebFS without CRISIS modifications. The added overhead of WebFS relative to NFS is caused by kernel to user-level crossings for cache misses (WebFS network communication code is implemented at the user-level for ease of implementation and debugging). The third column describes performance of WebFS with CRISIS security enhancements. We believe the 10-20% slowdown relative to the baseline WebFS to be acceptable given the added functionality of access control checks and encrypted file transfer.
The measurements in the third column reflect the case where user
credentials are cached on the remote node. An additional 175 ms
overhead is introduced to establish an SSL connection and 230 ms are
required to transfer and cache an identity plus a single transfer
certificate if user credentials are not cached remotely. Once again,
this total 400 ms overhead is a one-time cost incurred the first time
a user makes any access to a remote site (WebFS maintains a ``cache''
of active SSL connections between machines to avoid the cost of
re-establishing an SSL connection for each access). Finally, read
access to a cached 1 byte file through WebFS with CRISIS enhancements
takes 720 s, and reading a cached 10 MB file takes 170 ms, values
comparable to cached access through NFS. In summary, our security
enhancements introduce significant overhead for initial and uncached
access because of switching to a user-level process for communication
and the overhead of establishing an SSL connection for transmission of
certificates. However, the common case read access to a cached file
stays entirely in the kernel and provides performance comparable to a
file system such as NFS.