dc.contributor.author | Sigouin, William | |
dc.date.accessioned | 2020-05-04 18:24:36 (GMT) | |
dc.date.available | 2020-05-04 18:24:36 (GMT) | |
dc.date.issued | 2020-05-04 | |
dc.date.submitted | 2020-04-27 | |
dc.identifier.uri | http://hdl.handle.net/10012/15813 | |
dc.description.abstract | To maximize the performance of concurrent data structures, researchers have turned to highly complex fine-grained techniques. Resulting algorithms are often extremely difficult to understand and prove correct, allowing for highly cited works to contain correctness bugs that go undetected for long periods of time. This complexity is perceived as a necessary sacrifice: simpler, more general techniques cannot attain competitive performance with these fine-grained implementations. To challenge this perception, this work presents three data structures created using multi-word compare-and-swap (KCAS), version numbering, and double-collect searches that showcase the power of using a more coarse-grained approach. First, a novel lock-free binary search tree (BST) is presented that is both fully-internal and balanced, which is able to achieve competitive performance with the state-of-the-art fine-grained concurrent BSTs while being significantly simpler. Next, the first concurrent implementation of an Euler-tour data-structure is outlined, solving fully-dynamic graph connectivity. Finally, a KCAS variant of an (a,b)-tree implementation is presented, which shows significant performance improvements in certain workloads when compared to the original. | en |
dc.language.iso | en | en |
dc.publisher | University of Waterloo | en |
dc.subject | concurrency | en |
dc.subject | data structures | en |
dc.subject | search trees | en |
dc.subject | lock-freedom | en |
dc.subject | non-blocking | en |
dc.subject | dynamic connectivity | en |
dc.subject.lcsh | Data structures (Computer science) | en |
dc.subject.lcsh | Computer multitasking | en |
dc.title | Concurrent Data Structures Using Multiword Compare and Swap | en |
dc.type | Master Thesis | en |
dc.pending | false | |
uws-etd.degree.department | David R. Cheriton School of Computer Science | en |
uws-etd.degree.discipline | Computer Science | en |
uws-etd.degree.grantor | University of Waterloo | en |
uws-etd.degree | Master of Mathematics | en |
uws.contributor.advisor | Brown, Trevor A. | |
uws.contributor.affiliation1 | Faculty of Mathematics | en |
uws.published.city | Waterloo | en |
uws.published.country | Canada | en |
uws.published.province | Ontario | en |
uws.typeOfResource | Text | en |
uws.peerReviewStatus | Unreviewed | en |
uws.scholarLevel | Graduate | en |