Re:In-memory key-value store in C, Go and Python
by yummyfajitas on Wednesday March 21, 2012 @08:29AM
(#3734036)
In the real world, defaults and simple-to-use libraries (i.e. not twisted) matter. Just because you are doing system programming doesn't mean you necessarily have the time/skill to carefully optimize everything.
System's programming isn't just writing a KV store used by millions. Sometimes it's writing a dedicated calculation server used in a single company. Carefully optimizing your I/O model might take longer than doing the project itself.
Re:In-memory key-value store in C, Go and Python
by ootachi on Wednesday March 21, 2012 @11:47AM
(#3734887)
There is no default in C, beyond stdio. The C specification makes no reference to any I/O beyond stdio.
The author was being unfair to C. Use epoll or, better yet, libuv. libuv is a simple-to-use library.
A key-value store is system programming. It should be carefully designed, it's not real-world that you accept the default I/O model of the language you are going to use.
p.s. in the case of C it's hard to argue what is the default I/O model. It supports threads, fork, multiplexing, blocking and non blocking I/O, in the same way basically (in a low level way).