Permalink
Commits on Sep 20, 2010
  1. BUMP 1.0.9

    banker committed Sep 20, 2010
  2. minor: credits

    banker committed Sep 20, 2010
Commits on Sep 14, 2010
  1. Optimize ObjectId#generate: cache the MD5 of the host name and genera…

    FooBarWidget authored and banker committed Sep 13, 2010
    …te counters in C instead of Ruby.
  2. Optimize Mongo::Connection#receive_message_on_socket and #receive_and…

    FooBarWidget authored and banker committed Sep 13, 2010
    …_discard_message_on_socket: avoid creating initial input buffer up front so that IO#read only needs to allocate the buffer once.
  3. Optimize Mongo::Connection#send_message_on_socket: don't slice the in…

    FooBarWidget authored and banker committed Sep 13, 2010
    …put when not necessary.
  4. Optimize Mongo::Connection#add_message_headers by packing data direct…

    FooBarWidget authored and banker committed Sep 13, 2010
    …ly instead of using ByteBuffer.
Commits on Sep 13, 2010
  1. minor: comment cleanup

    banker committed Sep 13, 2010
  2. minor: test fix getlasterror

    banker committed Sep 13, 2010
  3. Fix MongoDB::Collection #insert_documents, #update and #remove and Mo…

    FooBarWidget authored and banker committed Sep 12, 2010
    …ngoDB::Connection #receive_header and #last_error_message: usage strings as much as possible instead of byte arrays, otherwise performance really suffers.
  4. Fix reference to NULL_BYTE.

    FooBarWidget authored and banker committed Sep 11, 2010
  5. Optimize BSON C extension: cache some symbols instead of interning th…

    FooBarWidget authored and banker committed Sep 11, 2010
    …em over and over.
  6. Improve ByteBuffer unit tests.

    FooBarWidget authored and banker committed Sep 11, 2010
  7. Optimize MongoDB::Connection#receive_response_header by using raw str…

    FooBarWidget authored and banker committed Sep 11, 2010
    …ing operations and unpack() instead of the slower ByteBuffer.
  8. Optimize MongoDB::Connection#receive.

    FooBarWidget authored and banker committed Sep 11, 2010
    It doesn't do anything with the header. So instead of parsing the header,
    just read the header data and discard it.
  9. Optimize Mongo::Connection#read_documents by using raw string operati…

    FooBarWidget authored and banker committed Sep 11, 2010
    …ons and unpack() instead of the slower ByteBuffer.
  10. Optimize ByteBuffer#get_int.

    FooBarWidget authored and banker committed Sep 11, 2010
  11. Optimize Ruby 1.8 implementation of BSON::OrderedHash.

    FooBarWidget authored and banker committed Sep 11, 2010
    The set in there is unnecessary. Use the hash itself as "set". This makes
    BSON::OrderedHash 148% faster on Ruby 1.8.
  12. Optimize receive_message_on_socket for the optimistic average case wh…

    FooBarWidget authored and banker committed Sep 11, 2010
    …ere 1 socket.read() operation receives all requested data. Also fix some Ruby 1.9 encoding issues in that function while we're at it.
Commits on Sep 12, 2010
  1. replace usage of `returning` with `each_with_object`

    mislav authored and banker committed Sep 4, 2010
    `each_with_object` is a Ruby 1.9 method, here re-implemented in core_ext.rb
    in case it's missing (for older Ruby versions). Using `returning` is bad in
    combination with Ruby on Rails because each usage of the method will emit
    a Rails deprecation warning. This might be considered an Active Support bug,
    but it's better to avoid using `returning` altogether and use `tap` from
    Ruby 1.8.7, also re-implemented here in case it's missing.
    
    Since existing usages or `returning` were better suited for `each_with_object`
    than `tap`, they were rewritten using the former instead.
Commits on Sep 9, 2010
  1. When possible, have BSON::ByteBuffer store the underlying binary data…

    FooBarWidget authored and banker committed Sep 7, 2010
    … as a binary String instead of an array.
    
    This dramatically improves the performance of BSON::ByteBuffer.new(a_string).
    On Ruby 1.9.2 it is about 130 times faster.
  2. RUBY-180 fixed failing test

    banker committed Sep 9, 2010
  3. minor: typo fix

    banker committed Sep 9, 2010
  4. RUBY-180 Fix batch size

    banker committed Sep 9, 2010
Commits on Sep 8, 2010
  1. Create logging message only when a logger is passed to the Connection.

    banker committed Sep 8, 2010
    Results in a pretty significant performance improvement.
    
    Many thanks to Matt Taylor for noticing the unusual glut of calls
    to ObjectId#to_s. See here: http://unhalting.com/?p=18