[erlang-questions] How to understand busyness of driver job queue?

Max Lapshin max.lapshin@REDACTED
Thu Mar 14 20:36:39 CET 2013


Of course, prim_inet doesn't need async threads, because it uses
select/kqueue.

I was speaking about prim_file. Everything is very complicated about it,
because by default neither linux, neither FreeBSD hasn't async disk IO out
of the box without nails and a hammer. Windows has, but it is not a reason
to switch =)

So to achieve good responsibility prim_file schedules disk requests on
thread pool that gets blocked with simple pread/write requests.

Problem is that it is possible that all async threads can get blocked with
requests to one busy and slow device.
"Professional" storage systems like elliptics (I'm speaking of course not
about that shit, named "RAID", but about software storage implementations
like Swift, LeoFS or elliptics) have separate thread pool per each device
so that all requests to buggy device will not affect reads and writes from
other devices.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130314/f9b8be55/attachment.htm>


More information about the erlang-questions mailing list