title: Are relaxed data structures used in real applications?
body: <p>I am learning about concurrent data structures, and I have come across a broad research literature on <strong>relaxed</strong> data structures, such as k-relaxed queues, stacks, counters, etc. See, e.g., here</p>
  
  <p><a href="https://github.com/cksystemsgroup/scal#data-structures" rel="nofollow noreferrer">https://github.com/cksystemsgroup/scal#data-structures</a></p>
  
  <p>or here </p>
  
  <p><a href="http://www.faculty.idc.ac.il/gadi/MyPapers/2015ST-RelaxedDataStructures.pdf" rel="nofollow noreferrer">http://www.faculty.idc.ac.il/gadi/MyPapers/2015ST-RelaxedDataStructures.pdf</a></p>
  
  <p>The idea is that a relaxed data structure offers weaker guarantees (e.g., a dequeue operation of a k-relaxed FIFO queue is free to give any of the first k elements). Ideally, the relaxed data structures offer better performance than the strict ones.</p>
  
  <p>The problem is that, as far as I see, these data structures are evaluated only on some micro-benchmarks (as in the first link above), measuring only pure performance/throughput of data structure operations, and not looking at how the relaxation influences the overall application design and performance.</p>
  
  <p>Have you ever used such relaxed data structures <strong>in real applications</strong>, or can you imagine plugging in relaxed data structures into your application to obtain performance gains? Or are those data structures a purely academic exercise?</p>