Hi all,
I have a few questions sorted bellow. Thank you for any comment.
-- Question 1) I am asking to make sure. Does MongoDB communicate by
using boost:asio ?
as I see #include <boost/asio.hpp> in the
"message_server_asio.cpp"
I read a lot that, asio is not fast and it won't saturate CPU cores.
As one of them quoted below
"boost::asio is not as thread-friendly as you would hope - there is a
big lock around the epoll code in boost/asio/detail/epoll_reactor.hpp
which means that only one thread can call into the kernel's epoll
syscall at a time."
quoted from
http://stackoverflow.com/questions/1234750/c-socket-server-unable-to-saturate-cpu
To stop me worrying, are there any benchmarks or experiences you would
tell me performance of driver won't be a problem.
-- Question 2) First I managed to compile tuts with C and C++ drivers
and run (C++ was hard though)
I could go with C but I think C++ driver is going to be the most
mature (and fast?) driver overall because of the statement below
" As the database is written in C++, the driver actually uses some
core MongoDB code -- this is the same driver that the database uses
itself for replication."
Am I wrong?
-- Question 3) C driver will use libev in "version 0.5". So (If CPP
uses ASIO) C driver 'll be more likely using more available sources
but C++ driver will have more capability. Is this assumption true?