Discussion:
Lockless, atomic FIFO/LIFO queues
(too old to reply)
Lloyd Parkes
2011-11-29 04:51:36 UTC
Permalink
Hi all,
While I have no intention of doing any of these subprojects (I have
far too many other things to distract me), I am still interested in
the lockless subprojects because I have studied with and occasionally
drink with someone who does research in this area.

I have noticed that the first subproject calls for a data structure
that is both a LIFO and a FIFO. How closely are people wedded to this
combination. The reason I ask is that lock-free algorithms tend to be
hard, and efficient lock-free algorithms seem to be even harder. It is
quite possible that implementing a correct and efficient queue is only
feasible if we have separate implementations for LIFO and FIFO.

I'm mostly just chewing the fat here and wondering about 10G
networking, SMP and all that good stuff.

Cheers,
Lloyd

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Alexander Nasonov
2011-11-29 09:09:36 UTC
Permalink
Post by Lloyd Parkes
Hi all,
While I have no intention of doing any of these subprojects (I have
far too many other things to distract me), I am still interested in
the lockless subprojects because I have studied with and occasionally
drink with someone who does research in this area.
I'm interested as well.
Post by Lloyd Parkes
I have noticed that the first subproject calls for a data structure
that is both a LIFO and a FIFO. How closely are people wedded to this
combination. The reason I ask is that lock-free algorithms tend to be
hard, and efficient lock-free algorithms seem to be even harder. It is
quite possible that implementing a correct and efficient queue is only
feasible if we have separate implementations for LIFO and FIFO.
Interface can be shared if you don't mix LIFO and FIFO operations at
runtime. But I think that interfaces should be separate. They can share
an implementation, though.

I'm curious how to deal with ABA problem. One possible solution is
implementing a special memory management. I know nothing about it,
though. It might be too slow for a general (non lock-free) code.

Alex

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...