Friday, March 14, 2008

Event Completion Framework in Solaris 10

Simiar to kqueue framework in FreeBSD, Solaris 10 introduced a framework called Event Completion Framework (ECF). ECF is a very powerful concept that can be used when an application wants to wait for asynchronous events - like read/write events on sockets. Traditionally one would use poll()/select() for these events. There is enough discussion already on how primitive these mechanisms are and how they don't scale well on large number of file descriptors. Another advantage with kqueue and ECF is that you can wait on different kind of activities, not just activities on file descriptors. For e.g. when a process calls fork, or when a process calls exit, etc.

There are a few resources that would be very useful in understanding these frameworks:
  • Robert Benson's article on ECF
  • Sample program given in Bart Smaalder's blog
  • Jonathan Lemon's paper on kqueue
Oh btw, I think Linux is yet to have a mechanism as powerful as these.

2 comments:

Anonymous said...

The counterpart in LInux is called epoll.

Juan said...
This comment has been removed by the author.