Project Overview
In this project we are exploring the use of Clustered Objects in an environment other than K42. Specifically we are trying to port the Clustered Object System from K42 into a Linux user-level enviroment, a Linux kernel level enviroment, and back into K42. Our hope is to:
- Validate that Clustered Objects can: a) yield similar benefits in other systems than K42 and b) be used in a more incremental fashion within the context of a traditional system.
- Study and compare the performance costs of a existing system path to a Clustered Object version. Establishing baseline costs for Clustered Objects.
- Produce the basis of a portable Clustered Object Library which can be used in other environments.
- Analyze the structre of the Clustered Object library, and try to recompose it in a way that allows it to be system idependent.
Method
Initial Tests
- It is importent that we first justifiy the need for clustered objects outside the K42 enviroment. To help establish this fact, we ran some experements on the Linux kernel's page fault path, and tried to show that in its current state the page fault path does not scale well. There has been previous work indicating that there are scalability problems in the Linux page fault path. Our results indicated that the Linux page fault path starts to lose performance after 2 processors are added, and past 4 processors there is a negative effect on the system's performance. These results show us that the data structures and algorithms on the Linux page fault path are a good candidate for Clustered Object integration.
Experimental Setup
- Kernel Version
Kernel
Version
Linux
2.6.13
K42
HEAD at the time
- Hardware configs
- our results were gathered on a 4-way, and 24-way machines.
Graphs
Our results can be found here.
Results
Our testing results showed with a good degree of certinty that the previous work in this area was correct and the Linux page fault path does have poor scaleability
Links
A book I found to be very uesful in understanding the Linux VM system, and the x86 based data structures.
