Test Program - xrdopen This is a C program the uses the xroot API to communicate with an xrootd or olbd server. The inner loop of this program consists of open(), close(), open(), close(), read(). The first open incurs the cost of connecting to the server, but the connection is retained for the second open. The read() is a one byte read. Before and after each open() and read(), the gettimeofday() system function is used to measure the latency of the open() and read() functions. The gettimeofday() function appears to have a granularity of 1 microsecond. The program returns the latency for the first open(), second open(), and read() in microseconds. Outer script - runxrdopen The outer script invokes the test program 10,000 times, sorts the values for the first open(), second open(), and read(), and then calculates the average and median values. To avoid unwanted skewing of the average values, the highest 1% of the sorted values are discarded. Test results The test program was run against the local filesystem on the xrootd server to measure the operating system cost of opening a file. Then all combinations of Solaris and Linux clients and xrootd servers were tested. Finally, the a Solaris olbd was tested with both clients. All numbers in the following table are in microseconds. 1st Open 2nd Open Read Avg Median Avg Median Avg Median Linux local filesystem 13 13 3 3 4 5 Solaris local filesystem 43 42 4 5 18 17 Solaris client -> Linux xrootd 4312 4241 884 862 122 122 Solaris client -> Solaris xrootd 4402 4315 917 895 133 133 Linux client -> Linux xrootd 7568 7544 5378 5329 108 108 Linux client -> Solaris xrootd 7685 7638 5429 5376 118 118 Solaris client -> Solaris olbd 5570 5424 1235 1206 133 132 Linux client -> Solaris olbd 11011 10916 8046 7969 117 117