Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
106 lines (78 sloc) 3.97 KB
#+STARTUP: indent showall -*- org -*-
* 0.1.1 - <2011-06-16 Thu>
** Cursor-based query iterator API
The new cursor-based query iterator API makes it possible to grab the
results of a mongo_sync_cmd_query(), and conveniently iterate over the
results, hiding the get_more() calls underneath.
The implementation is clever enough to only query the database when it
needs to, and when it does, query in bulk (asking for the same amount
of documents that the last query returned).
Thanks to Federico Rodriguez <> for the suggestion.
** New function: bson_validate_key()
With this new function, one can validate BSON keys: whether they can
contain dots (allowed when using dot-notation, forbidden otherwise),
or whether they start with a '$' sign.
It is up to the application developer to decide when to validate a
key, and what restrictions make sense in the given context.
The function does NOT do UTF-8 validation, that is completely left up
to the application developer.
** New function: bson_cursor_find_next()
When we know that key G always comes after key A, but we do not care
how far apart they may be, and we do not want to use a separate cursor
(due to, for example, performance reasons), this new function can
help: unlike bson_find(), this will start scanning from the current
cursor position.
** New function: bson_stream_doc_size()
A little helper function to help determine the size of a BSON document
when it's only available as a bytestream. This is mostly for use with
** Symbol versioning
The symbols of the library can now be versioned, if configured with
the --with-versioned-symbols configure flag (not enabled by default).
* 0.1.0 - <2011-05-25 Wed>
** Shared library
The configure script now defaults to enabling shared library building
by default (along with a static library).
** Bug fixes
The pkg-config file was setting an incorrect include directory in it's
Cflags. This is now fixed.
** C++ Compatibility
The public headers are now guarded by extern "C" {} wrappers, so that
they can be included in C++ projects.
** Performance enhancements
A minor performance issue was corrected in the BSON code, that had the
possibility of forcing unneccessary memory allocations. The library
now allocates the proper amount of memory at the soonest time
possible, so it doesn't have to grow it later on unnecessarily.
Anoter performance issue was corrected in the BSON library:
bson_find() was comparing key names in BSON objects with the sought
for key using strcmp(), which was unacceptably slow when dealing with
BSON objects that have a lot of keys. We now use memcmp(), which means
we don't have to traverse the sought for key all the time.
* 0.0.2 - <2011-05-07 Sat>
** Replica set seeding support
It is now possible to add seeds to a connection, so that the library
can try connecting to those in case automatic discovery fails (or if
the seeds are hidden).
** Failover redesign
Instead of preemptively pinging & checking for a master before each
and every command, the library does so only upon errors. This way,
when everything's working as expected, there is no extra
overhead. Yet, if things go wrong, failover will still work.
By design, automatic failover only occurs when an error is detected
during a write operation. When an error occurs during read, it will be
propagated back to the application.
Automatic failover is disabled by default, and can be turned on via
the mongo_sync_conn_set_auto_reconnect() function.
** safe-mode support
With safe mode enabled, extra care will be taken to ensure that data
gets to the server, and that the library does everything within its
power to maintain a connection.
This means that after insert and update operations, the library will
issue a getLastError command, and only return successfully if that
command did not signal an error.
Safe-mode also enables the previously default preemptive connection
checks (along with the post-mortem failover).
Safe-mode is off by default.
* 0.0.1 - <2011-04-10 Sun>
Initial public release.
Jump to Line
Something went wrong with that request. Please try again.