Simulating a Distributed Collaborative Environment Jon A. Preston CSc8350 – Dr. Xiaolin Hu Purpose • Examine the interactions among clients and servers in a distributed artifact management system • Examine how adding a middleware (capable of fine-grain locking) can be added and how such a change effects collision rate (fail rate) of checkouts • Examine various client behaviors – Random, Clustered, Hybrid Initial Version Adding the Proxy Middleware • Middleware added to ServerMachine • Maintains DB of artifacts checked out • Each artifact contains subsections • Check out/in passed to server only as needed • Server & Repository unchanged System with Middleware Results Client Distribution Repository Distribution (# Artifacts) Fail Rate Without Finegrain Locking With Finegrain Locking 1 32.75 7.27 2 1 23.33 11.67 1 2 1 26.92 6.38 3 1 2 1 19.64 7.02 1 1 10 20 10 2.00 0.75 10 10 10 30 50 80 30 30 40 40 100 100 16.39 5.81 5000 10 10 10 30 50 80 30 30 40 40 100 100 7.91 2.62 8 2500 10 10 10 15 25 40 15 15 20 20 50 50 9.08 2.99 9 5000 1 1 1 1 2 1 26.55 7.24 Test Iterations Random Clustered Hybrid S1 S2 S3 1 500 1 1 1 1 2 2 500 3 0 0 1 3 500 0 3 0 4 500 0 0 5 500* 1 6 500 7 S4 S5 S6 * Test 5 for the fine-grain version was run to 5000 iterations to obtain lock failures S7 S8 S9 Future Work • Implement a parsing algorithm to generate authentic subsections in artifacts (open source repository) • Better analyze and model clients’ edit behaviors