next up previous
Next: Discussion Up: A Distributed Caching Mechanism Previous: The Virtual Disk Cache

Performance and Usability

Our final implementation of the system runs reliably and efficiently. We have run a variety of Persistent Java programs and they are all able to store and retrieve data from storage. Our design allows the Virtual Disk Cache module to run separately from the JVM and the Virtual Disk Server. In addition a JVM can connect to any VDC at startup, allowing quick recovery if the cache fails and a type of load balancing if one VDC becomes saturated.

Performance is good for a prototype such as this. Unfortunately due to the nature of a distributed system it takes a lot of time and resources (you need several idle machines and idle networks) to do real performance testing and scalability analysis. In addition there aren't tools to easily analyse the use of network bandwidth and the effects of network latency on such a system. We have done some profiling of the modules to see if there are processor bottlenecks, but there aren't.

Unfortunately we lack the resources to experiment with greater network bandwidth. It would be interesting to do some informal evaluation on very high bandwidth local networks. The decision to use the TCP/IP stack for networking also needs to be reconsidered. It may be advantageous to address the network hardware directly.

The current system as it stands is a prototype, so much more attention could be paid to robustness and stability. Currently the caches and server need to be started manually, it would be better to have these services incorporated in an operating system. A operating system would also provide security and facilities such as auto-restarting on failure.

Our system does not tolerate failure of a cache or server, either through software error or network outage.


next up previous
Next: Discussion Up: A Distributed Caching Mechanism Previous: The Virtual Disk Cache
John Leuner
1999-10-13