{"doi":"10.15479/AT:IST-2013-123-v1-1","publisher":"IST Austria","title":"How free is your linearizable concurrent data structure?","pubrep_id":"123","author":[{"full_name":"Henzinger, Thomas A","first_name":"Thomas A","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","last_name":"Henzinger","orcid":"0000−0002−2985−7724"},{"full_name":"Sezgin, Ali","first_name":"Ali","id":"4C7638DA-F248-11E8-B48F-1D18A9856A87","last_name":"Sezgin"}],"publication_status":"published","day":"12","file_date_updated":"2020-07-14T12:46:45Z","date_updated":"2020-07-14T23:04:47Z","_id":"5402","abstract":[{"lang":"eng","text":"Linearizability requires that the outcome of calls by competing threads to a concurrent data structure is the same as some sequential execution where each thread has exclusive access to the data structure. In an ordered data structure, such as a queue or a stack, linearizability is ensured by requiring threads commit in the order dictated by the sequential semantics of the data structure; e.g., in a concurrent queue implementation a dequeue can only remove the oldest element. \r\nIn this paper, we investigate the impact of this strict ordering, by comparing what linearizability allows to what existing implementations do. We first give an operational definition for linearizability which allows us to build the most general linearizable implementation as a transition system for any given sequential specification. We then use this operational definition to categorize linearizable implementations based on whether they are bound or free. In a bound implementation, whenever all threads observe the same logical state, the updates to the logical state and the temporal order of commits coincide. All existing queue implementations we know of are bound. We then proceed to present, to the best of our knowledge, the first ever free queue implementation. Our experiments show that free implementations have the potential for better performance by suffering less from contention."}],"oa":1,"date_published":"2013-06-12T00:00:00Z","language":[{"iso":"eng"}],"user_id":"2DF688A6-F248-11E8-B48F-1D18A9856A87","date_created":"2018-12-12T11:39:07Z","file":[{"relation":"main_file","creator":"system","file_name":"IST-2013-123-v1+1_main-concur2013.pdf","access_level":"open_access","date_updated":"2020-07-14T12:46:45Z","checksum":"ce580605ae9756a8c99d7b403ebb8eed","content_type":"application/pdf","date_created":"2018-12-12T11:53:19Z","file_id":"5480","file_size":249790}],"alternative_title":["IST Austria Technical Report"],"year":"2013","page":"16","oa_version":"Published Version","citation":{"mla":"Henzinger, Thomas A., and Ali Sezgin. How Free Is Your Linearizable Concurrent Data Structure? IST Austria, 2013, doi:10.15479/AT:IST-2013-123-v1-1.","ieee":"T. A. Henzinger and A. Sezgin, How free is your linearizable concurrent data structure? IST Austria, 2013.","ista":"Henzinger TA, Sezgin A. 2013. How free is your linearizable concurrent data structure?, IST Austria, 16p.","ama":"Henzinger TA, Sezgin A. How Free Is Your Linearizable Concurrent Data Structure? IST Austria; 2013. doi:10.15479/AT:IST-2013-123-v1-1","apa":"Henzinger, T. A., & Sezgin, A. (2013). How free is your linearizable concurrent data structure? IST Austria. https://doi.org/10.15479/AT:IST-2013-123-v1-1","short":"T.A. Henzinger, A. Sezgin, How Free Is Your Linearizable Concurrent Data Structure?, IST Austria, 2013.","chicago":"Henzinger, Thomas A, and Ali Sezgin. How Free Is Your Linearizable Concurrent Data Structure? IST Austria, 2013. https://doi.org/10.15479/AT:IST-2013-123-v1-1."},"status":"public","department":[{"_id":"ToHe"}],"type":"technical_report","ddc":["000","004"],"month":"06","publication_identifier":{"issn":["2664-1690"]},"has_accepted_license":"1"}