Aeron: High-Performance Open Source Message Transport [video]

by enginouson 3/29/2015, 4:20 PMwith 26 comments

by danbrucon 3/29/2015, 6:31 PM

The described log buffer implementation does not seem wait-free to me. If one of the writers fails all other subsequent writes will fail, too. Subsequent writers can still advance the tail pointer and copy their messages into the buffer but the reader will never see their messages because the failed writer did not update the length field in its header.

So physically the operations for the subsequent writers completed after updating the length fields in their headers but logically they are not completed until they become visible to the reader and that requires updating the length field in the header of the failed writer. The situation seems even worse when the writer responsible to rotate the logs fails.

I did not look into the source code, they are probably dealing with failed writers, but the presentation alone does not provide any hints to me how they do it.

by anton_gogolevon 3/29/2015, 6:13 PM

Half-expected something related to Herman Miller's Aeron.

http://www.hermanmiller.com/products/seating/performance-wor...