We are completing a generic service-bus implementation on C, with clients for C#, Delphi, PL/SQL and PHP. The library works great, we have awesome performance for our bus unless the Mongodb database is running on Windows (tested on 2008 R2, 2003 and 7) and there’s no other “special” program running.
Out test do the following:
- Program A sends a message on a capped collection
- Program B tails on the message queue collection and “wakes up” when message appear using a cursor with awaitData param set to true
- When Program B wakes up, prepares a messsage and sends a response to Program A inserting a document on a specific collection by Program A
- Program A was already waiting on the second “response” collection and gets awaken when Program B (the producer) sent the response back
Mongodb Loop ends there.
Our testing program counts the loop and reports performance on a console application compiled with Visual Studio 2010.