{"id":{"repo_id":"uic","oai_identifier":"oai:figshare.com:article/32995001"},"canonical_url":"https://search.dev.ndltd.org/etd/uic/oai:figshare.com:article/32995001","repository":{"repo_id":"uic","name":"University of Illinois - Chicago","base_url":"https://api.figshare.com/v2/oai"},"display":{"title":"Delegation for Multi-Threaded and Rack-Scale Software","abstract":"Delegation is a concurrency technique where a thread hands off work on a shared object to a single designated owner instead of accessing the object directly. Because only the owner thread ever mutates the object, no locks are needed, other threads interact with it by sending requests. This avoids data races, simplifies reasoning, and can outperform lock-based designs by eliminating contention and complex synchronization. As delegation does not rely on shared memory, its applications extend naturally beyond local concurrency to broader distributed settings. We present two system, Trust and Gossamer, to demonstrate the versatility of this approach across different domains. Trust introduces a type- and memory-safe alternative to traditional locking in concurrent programs. Instead of synchronizing multi-threaded access to an object of type T with a lock, it can be encapsulated in a Trust with a designated trustee thread handling all operations through message passing. This delegation-based model eliminates per-lock throughput limitations, achieving up to 22x higher throughput in microbenchmarks and 5-9x improvement for a key-value store in high-contention workloads, while remaining competitive even without contention. Gossamer extends the concept of delegation to distributed computing. It allows an application written for a single machine to scale to a small cluster with minimal changes. Using Remote Direct Memory Access (RDMA) for high-performance communication, Gossamer supports delegating Rust closures across machines and employs lightweight user-space threads (fibers) for concurrency. Our experiments show 3x better throughput scaling than eRPC and performance comparable to the Graph500 MPI reference implementation.","abstract_html":"Delegation is a concurrency technique where a thread hands off work on a shared object to a single designated owner instead of accessing the object directly. Because only the owner thread ever mutates the object, no locks are needed, other threads interact with it by sending requests. This avoids data races, simplifies reasoning, and can outperform lock-based designs by eliminating contention and complex synchronization. As delegation does not rely on shared memory, its applications extend naturally beyond local concurrency to broader distributed settings. We present two system, Trust and Gossamer, to demonstrate the versatility of this approach across different domains. Trust introduces a type- and memory-safe alternative to traditional locking in concurrent programs. Instead of synchronizing multi-threaded access to an object of type T with a lock, it can be encapsulated in a Trust with a designated trustee thread handling all operations through message passing. This delegation-based model eliminates per-lock throughput limitations, achieving up to 22x higher throughput in microbenchmarks and 5-9x improvement for a key-value store in high-contention workloads, while remaining competitive even without contention. Gossamer extends the concept of delegation to distributed computing. It allows an application written for a single machine to scale to a small cluster with minimal changes. Using Remote Direct Memory Access (RDMA) for high-performance communication, Gossamer supports delegating Rust closures across machines and employs lightweight user-space threads (fibers) for concurrency. Our experiments show 3x better throughput scaling than eRPC and performance comparable to the Graph500 MPI reference implementation.","abstract_has_math":false,"creators":["Noaman Ahmad (24399980)"],"institution":null,"degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2026,"date_issued":"2026-05-01T00:00:00Z","date_published":"2026-05-01T00:00:00Z","updated_at":"2026-07-27T21:33:46Z","subjects":["Computer Science"],"languages":[],"rights":["In Copyright","Open Access after 2028-05-01"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://doi.org/10.25417/uic.32995001.v1","outbound_label":"DOI","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Noaman Ahmad (24399980)"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2026-05-01T00:00:00Z"]},{"key":"dc:relation","label":"Dc Relation","values":["https://figshare.com/articles/thesis/Delegation_for_Multi-Threaded_and_Rack-Scale_Software/32995001"]},{"key":"dc:type","label":"Dc Type","values":["Text","Thesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["In Copyright","Open Access after 2028-05-01"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["10.25417/uic.32995001.v1"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Delegation is a concurrency technique where a thread hands off work on a shared object to a single designated owner instead of accessing the object directly. Because only the owner thread ever mutates the object, no locks are needed, other threads interact with it by sending requests. This avoids data races, simplifies reasoning, and can outperform lock-based designs by eliminating contention and complex synchronization. As delegation does not rely on shared memory, its applications extend naturally beyond local concurrency to broader distributed settings. We present two system, Trust and Gossamer, to demonstrate the versatility of this approach across different domains. Trust introduces a type- and memory-safe alternative to traditional locking in concurrent programs. Instead of synchronizing multi-threaded access to an object of type T with a lock, it can be encapsulated in a Trust with a designated trustee thread handling all operations through message passing. This delegation-based model eliminates per-lock throughput limitations, achieving up to 22x higher throughput in microbenchmarks and 5-9x improvement for a key-value store in high-contention workloads, while remaining competitive even without contention. Gossamer extends the concept of delegation to distributed computing. It allows an application written for a single machine to scale to a small cluster with minimal changes. Using Remote Direct Memory Access (RDMA) for high-performance communication, Gossamer supports delegating Rust closures across machines and employs lightweight user-space threads (fibers) for concurrency. Our experiments show 3x better throughput scaling than eRPC and performance comparable to the Graph500 MPI reference implementation."]},{"key":"dc:title","label":"Title","values":["Delegation for Multi-Threaded and Rack-Scale Software"]}]}],"canonical_facts":{"dc:creator":["Noaman Ahmad (24399980)"],"dc:date":["2026-05-01T00:00:00Z"],"dc:description":["Delegation is a concurrency technique where a thread hands off work on a shared object to a single designated owner instead of accessing the object directly. Because only the owner thread ever mutates the object, no locks are needed, other threads interact with it by sending requests. This avoids data races, simplifies reasoning, and can outperform lock-based designs by eliminating contention and complex synchronization. As delegation does not rely on shared memory, its applications extend naturally beyond local concurrency to broader distributed settings. We present two system, Trust and Gossamer, to demonstrate the versatility of this approach across different domains. Trust introduces a type- and memory-safe alternative to traditional locking in concurrent programs. Instead of synchronizing multi-threaded access to an object of type T with a lock, it can be encapsulated in a Trust with a designated trustee thread handling all operations through message passing. This delegation-based model eliminates per-lock throughput limitations, achieving up to 22x higher throughput in microbenchmarks and 5-9x improvement for a key-value store in high-contention workloads, while remaining competitive even without contention. Gossamer extends the concept of delegation to distributed computing. It allows an application written for a single machine to scale to a small cluster with minimal changes. Using Remote Direct Memory Access (RDMA) for high-performance communication, Gossamer supports delegating Rust closures across machines and employs lightweight user-space threads (fibers) for concurrency. Our experiments show 3x better throughput scaling than eRPC and performance comparable to the Graph500 MPI reference implementation."],"dc:identifier":["10.25417/uic.32995001.v1"],"dc:relation":["https://figshare.com/articles/thesis/Delegation_for_Multi-Threaded_and_Rack-Scale_Software/32995001"],"dc:rights":["In Copyright","Open Access after 2028-05-01"],"dc:subject":["Computer Science"],"dc:title":["Delegation for Multi-Threaded and Rack-Scale Software"],"dc:type":["Text","Thesis"]},"updated_at":"2026-07-27T21:33:46Z"}