Top all-time · #2829
Concurrency Freaks
Personal blog · concurrencyfreaks.blogspot.com · on HN as pramalheprogrammingsystems
Concurrency Freaks is a personal blog at concurrencyfreaks.blogspot.com about programming and systems. Since 2014, 26 different Hacker News readers have linked it 50 times, most often “You say read-committed, I say buggy-code, potatoe, potato, tomatoe, tomato”. It is still writing: the last post was on 2025-01-21, and you can follow it by feed.
A web site dedicated to Concurrent algorithms and patterns.
Most-linked posts?
- You say read-committed, I say buggy-code, potatoe, potato, tomatoe, tomato3 people · 3 mentions · first linked 2020-06-12
- How to (not) invent concurrent algorithms3 people · 3 mentions · first linked 2023-09-11
- Immutable data structures are not as good as you think they are2 people · 3 mentions · first linked 2016-03-28
- Concurrency Is Coordination and Sharing2 people · 2 mentions · first linked 2025-01-21
- Lock-Free and Wait-Free, definition and examples (2013)2 people · 2 mentions · first linked 2019-07-30
- Why is Snapshot Isolation not enough?2 people · 2 mentions · first linked 2023-12-05
- The first MPMC memory-unbounded wait-free queue with memory reclamation2 people · 2 mentions · first linked 2016-10-19
What Hacker News says?
That's what languages with immutable data structures do. Internally they implement simple data structures (lists, arrays) with more complex ones not to get a performance hit. For example, they don't want to copy every byte every time they add or remove from a list. In ascending order of complexity http://theerlangelist.blogspot.com/2013/05/working-with-immu... http://concurrencyfreaks.blogspot.com/2013/10/immutable-…
Comment linking /2013/10/immutable-data-structures-are-not-as.html
on “Ruby `reject!`”Submitted Why is memory reclamation so important for lock-free algorithms? as a story · 165 points
HN discussionHere is an overview, read also the comments. https://concurrencyfreaks.blogspot.com/2017/08/why-is-memory...
Comment linking /2017/08/why-is-memory-reclamation-so-important.html?m=1
on “OCaml 4.10”Submitted Throughput vs. Latency and Lock-Free vs. Wait-Free as a story · 146 points
HN discussionVery much unfashionable for the HN crowd. Most of the new research in concurrency is happening in Java and funded by the high performance trading industry - an industry which is very far from the HN crowd. The new Java8 stampedlock is a good example. It's possible to implement it in C++ as well, but because of the guarantees required by the lock it is a very difficult lock to integrate into C++ code. On the other ha…
Comment linking /2013/11/stampedlocktryoptimisticread-and.html
on “Another go at Go failed”Submitted Why is Snapshot Isolation not enough? as a story · 133 points
HN discussionA good article on this hierarchy (if you can forgive the low-contrast style): http://concurrencyfreaks.blogspot.com/2013/05/lock-free-and-...
Comment linking /2013/05/lock-free-and-wait-free-definition-and.html
on “Lock-free multithreading with atomic operations”Submitted What is Eventual Consistency? as a story · 105 points
HN discussion> You may have lock-free code with locks That doesn't sound right. I suppose you could have locks in the trivial sense, where it never actually blocks, but I don't imagine that's what you meant. https://concurrencyfreaks.blogspot.com/2013/05/lock-free-and... https://www.cs.yale.edu/homes/aspnes/pinewiki/ObstructionFre...
Comment linking /2013/05/lock-free-and-wait-free-definition-and.html
on “How to trigger races reliably in the Linux kernel”Submitted CX: Wait-Free Universal Construction as a story · 91 points
HN discussionThis post directly compliments the original one http://concurrencyfreaks.blogspot.com/2017/02/bitnext-lock-f...
Comment linking /2017/02/bitnext-lock-free-queue.html
on “Notes on Lock Free Programming”Submitted The Laws of Durability as a story · 59 points
HN discussionA very nice approach for read heavy structures is the Left-Right algorithm. http://concurrencyfreaks.blogspot.com/2013/12/left-right-cla... It does cost an extra instance, but it generalizes to any data structure and gives you wait-free reads.
Comment linking /2013/12/left-right-classical-algorithm.html?m=1
on “Safety and Performance – Threadsafe Datastructures in C++”Submitted Leaks in Persistent Memory as a story · 56 points
HN discussionThey also have _comparison_ with RCU https://concurrencyfreaks.blogspot.com/2019/10/is-rcu-generi...
Comment linking /2019/10/is-rcu-generic-concurrency-control.html
on “CX: Wait-Free Universal Construction”Submitted Linked lists with wait-free reads in C++ as a story · 49 points
HN discussionDon't really have an axe to grind regarding strict-serializability, serializability, snapshot isolation or whatever. Start at the highest level of consistency and consciously step away if you encounter issues. The Postgres default of "Read committed" gives me shivers on the other hand... > If I were to make a concurrent map data structure whose operations are not linearizable and then put it on a library and give it…
Comment linking /2020/06/you-say-read-committed-i-say-buggy-code.html
on “Strict-serializability, but at what cost, for what purpose?”Submitted The importance of Correctness in concurrent algorithms as a story · 10 points
HN discussionLeft-right concurrency control might be a good fit for this problem. https://concurrencyfreaks.blogspot.com/2013/12/left-right-co...
Comment linking /2013/12/left-right-concurrency-control.html
on “Read Locks Are Not Your Friends”Submitted The importance of Sequential Consistency as a story · 10 points
HN discussionAnd it does so with three links across three paragraphs. From the QuestDB article: > First, I found the Double Instance Locking[1] pattern at the amazing Concurrency Freaks blog[2]. This pattern is very similar to the one I described here. It also uses 2 internals structures and readers are alternating between them. It uses a read-write lock to protect the map being mutated. Given there is only a single writer then…
Comment linking /
on “How to (not) invent concurrent algorithms”Submitted A Lock-Free Persistent Queue as a story · 6 points
HN discussionSubmitted OneFile: World's First Wait-Free Software Transactional Memory as a story · 4 points
HN discussionSubmitted Hazard Pointers vs. Read-Copy-Update as a story · 4 points
HN discussionSubmitted 50 years later, is Two-Phase Locking the best we can do? as a story · 3 points
HN discussionSubmitted Atomic Durability – How do databases recover from a crash as a story · 3 points
HN discussionSubmitted OneFile is also a database engine as a story · 3 points
HN discussionSubmitted OneFile – The world's first wait-free Software Transactional Memory as a story · 3 points
HN discussionSubmitted A C++ implementation of Kogan-Petrank wait-free queue with memory reclamation as a story · 3 points
HN discussionSubmitted Immutable data structures are not as good as you think they are as a story · 3 points
HN discussion