DCOM Benchmarking Framework

This proposal describes the design of a benchmarking framework to systematically measure the sources of latency and throughput overhead, priority inversion, and non-determinism in DCOM. The goals of this framework include the following:


Sources of Overhead, Priority Inversion, and Non-determinism in DCOM

Based on our prior experience benchmarking real-time and non-real-time CORBA ORBs, and based on benchmarks conducted by Microsoft research, we anticipate that the performance overhead, priority inversions, and non-determinism of DCOM will stem from the following:

  1. Network and transport communication protocols -- e.g., flow and congestion control, retransmission strategies, connection management, error handling.

  2. Communication protocol implementations and integration with the OS I/O subsystem and network interfaces -- e.g., data copying, fragmentation, reassembly, context switching, synchronization, checksumming, demultiplexing, marshalling, and demarshalling.

  3. DCOM protocols -- e.g., the DCE RCP protocol.

  4. DCOM implementation and integration with Windows NT endsystem services -- e.g., data copying, fragmentation, reassembly, context switching, synchronization, checksumming, event demultiplexing, timer handling, request demultiplexing, marshaling/demarshaling, framing, error checking, connection management, and concurrency models.

    Many of these issues are the same as #2. However, they occur at the user-level rather than at the kernel-level, which may make them easier to solve in a portable manner.


Benchmark Framework Content and Deliverables

To determine the sources of overhead empirically for DCOM, we plan to develop a comprehensive suite of benchmarks designed to test various aspects of DCOM performance. The content and deliverables of the benchmarking framework include the following:

  1. Latency, jitter (latency variance), and throughput performance of operation invocations between 1 client and 1 servant. This test measures system "point-to-point" performance.

  2. DCOM scalability measurements, i.e., what happens to latency, jitter, and throughput as the number of objects in endsystems and distributed systems increases. This test measures the efficiency and predictability demultiplexing operations in DCOM.

  3. Number of QueryInterface operations per second. This test measures the latency required for a client to acquire object references from a server.

  4. Latency, jitter (latency variance), and throughput performance of operation invocations between m clients and n servants. This test measures "aggregate" system performance.

  5. Static and dynamic memory footprint for different configurations. This test also measures the amount of object reference caching.

  6. Degree of priority inversion and non-determinism. This test determines how well DCOM can support end-to-end priority.

  7. Impact of the concurrency model on client and server. This test measures the performance and predictability of DCOM concurrency models, such as single-threaded apartment and multi-threaded apartments.

  8. Measure CPU utilization and processor cache effects for different workloads and different concurrency model configurations.

All tests will run on Windows NT 4 (and the Windows NT 5.0 beta) over ATM, Ethernet, and Fast Ethernet. To support this benchmarking effort, we'll use our high-performance testbed, which consists of 6 quad-CPU 400 Mhz Pentium II PCs containing ATM cards and Fast Ethernet cards.

Our project deliverables will include tested and useable DCOM benchmarking middleware, demonstration applications, technical reports describing the benchmarks' performance on Windows NT platforms, and documentation in HTML format.


Budget

The total cost of the proposed effort is $30,000 for a 12 month period of performance. This budget will be used to fund a graduate student and a percentage of Dr. Schmidt. The participants in this effort include the following personnel: