mongo-ruby-driver/docs/HISTORY.md

12 KiB

MongoDB Ruby Driver History

1.6.2

2012-04-05

  • Implements socket timeouts via non-blocking IO instead of Timeout module which should greately increase performance in highly threaded applications
  • Added ability to authentication via secondary if primary node unavailable
  • Replica set refresh interval now enforces a lower bound of 60 seconds
  • Added documentation for dropping indexes, collections, databases
  • Test output cleanup (...)s unless failure occurs

1.6.1

2012-03-07

  • Added thread affinity to Mongo::Pool
  • Added deploy tasks
  • Added Travis CI support (Cyril Mougel)
  • Logging warning message is only displayed for level :debug

1.6.0

2012-02-22

  • Added Gemfile
  • ReplSetConnection seed format is now array of 'host:port' strings
  • Added read preference :secondary_only
  • Added ability to log duration -- enabled by default (Cyril Mougel)
  • Added read_only option for DB#add_user (Ariel Salomon)
  • Added :collect_on_error option for bulk-insert (Masahiro Nakagawa)
  • Added and updated URI options (now case insensitive)
  • Bug fix for ReplSet refresh attempting to close a closed socket
  • Default op_timeout for ReplSetConnection is now disabled (was 30 seconds)
  • Support db output option for map reduce (John Ewart)
  • Support for keeping limited versions of files using GridFS (VvanGemert)

1.5.2

2011-12-13

  • Lots of fixes for replica set connection edge cases.
  • Set default op_timeout and connect_timeout to 30 seconds.
  • Support GeoHaystack indexing.

1.5.1

2011-11-29

Release due to corrupted gemspec. This was a bug having to do with rubygems. Apparently, gems must still be built with Ruby 1.8.

1.5.0

2011-11-28

This releases fixes bugs introduced in 1.4.0 and 1.4.1 that were introduced as a result of adding replica set refresh modes.

  • Removed :async refresh mode.
  • Disabled auto refresh mode by default. If you want the driver to automatically check the state of the replica set, you must use :sync mode. Note that replica set refresh is designed only to account for benign changes to the replica set (adding and removing nodes that don't affect current connections).
  • Fixed bug with commands being sent to secondary nodes. The next release will allow you to specify where commands can be sent.
  • Support :j safe mode option.
  • Fix :max_scan and :show_disk_loc Cursor options.

You can see the remaining issues at https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10005&version=10992

1.5.0.rc0

2011-11-18

Fix bugs associated with replica set refresh.

1.4.1

2011-10-17

If you're using 1.4.0, this is a necessary upgrade.

  • Simplified replica set refresh.
  • Fix bugs associated with replica set refresh.
  • Make cursor smart enough to continue functioning even if a refresh is triggered.

1.4.0

2011-9-19

  • Attempt to automatically refresh internal replica set state using ReplSetConnection#refresh.
  • Two automated refresh modes: :async and :sync. Automated refresh can also be disabled.
  • Choose secondary for reads based on ping time.
  • Read preference API: specify whether queries should go to primary or secondary on a per-query basis.
  • Pass :require_primary => false to ReplSetConnection to connect without requiring a primary node.
  • Enable exhaust-mode queries with OP_QUERY_EXHAUST.
  • Collection#count takes a query selector.
  • Support continue_on_error flag for bulk inserts (use :continue_on_error => true)
  • Add Cursor#add_option. Deprecate Cursor#query_opts and replace with Cursor#options.
  • Initial SSL support (connect with :ssl => true)
  • Update to latest Java driver for JRuby.
  • Check max BSON size on a per-connection basis.
  • Fixed two platform-specific BSON serialization issues.
  • Lots of bug fixes and code cleanup.

1.3.1

2011-5-10

  • Fix GridIO#gets infinite loop error (Ryan McGeary)
  • Fix BSON::OrderedHash#reject! leaving keys with null values (rpt. by Ben Poweski)
  • Minor semantic fix for OrderedHash#reject!
  • Fix Mongo::DB to allow symbols in method traversing collection names (rpt. by Chris Griego)
  • Support new server regex option "s" (dotall). This is folded in with \m in Ruby.
  • Fix so that Cursor#close hits the right node when :read_secondary is enabled.
  • Support maxScan, showDiskLoc, and returnKey cursor options.
  • Make DB#validate_collection compatible with server v1.9.1.
  • Fix so that GridIO#gets returns local md5 with md5 matches server md5 (Steve Tantra).
  • Fix bug in BSON::OrderedHash that prevents YAML.load (Ian Warshak).
  • Fix example from /examples.
  • Ensure that we do not modify hash arguments by calling Hash#dup when appropriate.
  • Ensure that JRuby deserializer preserves binary subtypes properly.
  • Fix for streaming an empty file into GridFS (Daniël van de Burgt).
  • Minor doc fixes.

1.3.0

2011-4-04

  • Add option to set timeouts on socket read calls using the Mongo::Connection :op_timeout option.
  • Add StringIO methods to GridIO objects
  • Support for BSON timestamp type with BSON::Timestamp
  • Change the BSON binary subtype from 2 to 0
  • Remove private method Connection#reset_conection and deprecate public method ReplSetConnection#reset_connection
  • ByteBuffer#== and OrderedHash#dup (Hongli Lai)
  • Better check for UTF8 validity in Ruby 1.9
  • Added previously removed Connection#host and Connection#port
  • Added transformers to allow Mongo::Cursor to allow instantiated objects (John Nunemaker)
  • Automated reconnection on fork
  • Added Cursor#next alias for Cursor#next_document
  • Audit tests after enabling warnings (Wojciech Piekutowski)
  • Various bug fixes thanks to Datanoise, Hongli Lai, and Mauro Pompilio

1.2.4

2011-2-23

  • Fix the exception message shown when there's an IOError (Mauro Pompilio)
  • Another update to map-reduce docs for v1.8. Note that if you use the new output option {:out => {:inline => true}}, then you must also specify :raw => true.

1.2.3

2011-2-22

  • Update docs for map-reduce command
  • Minor doc fix

1.2.2

2011-2-15

  • Improved replica set failover for edge case.
  • Fix for REE on OSX (Hongli Lai)

1.2.1

2011-1-18

  • Enable authentication with connection pooling.
  • Allow custom logging with Connection#instrument (CodeMonkeySteve)
  • Minor fixes and doc improvements.

1.2.0

2011-1-18

  • Some minor improvements. See commit history.

1.2.rc0

2011-1-5

Lots of cleanup and minor bug fixes.

1.1.5

2010-12-15

  • ReplSetConnection class. This must be used for replica set connections from now on. You can still use Connection.multi, but that method has been deprecated.
  • Automated replica set tests. rake test:rs
  • Check that request and response ids match.
  • Several bug fixes. See the commit history for details.

1.1.4

2010-11-30

  • Important connection failure fix.
  • ObjectId#to_s optimization (David Cuadrado).

1.1.3

2010-11-29

  • Distributed reads for replica set secondaries. See /docs/examples/replica_set.rb and http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html for details.
  • Note: when connecting to a replica set, you must use Connection#multi.
  • Cursor#count takes optional skip and limit
  • Collection#ensure_index for caching index creation calls
  • Collection#update and Collection#remove now return error object when using safe mode
  • Important fix for int/long serialization on bug introduced in 1.0.9
  • Numerous tweaks and bug fixes.

1.1.2

2010-11-4

  • Two critical fixes to automated failover and replica sets.
  • Bug passing :timeout to Cursor.
  • Permit safe mode specification on Connection, Collection, and DB levels.
  • Specify replica set name on connect to verify connection to the right set.
  • Misc. reorganization of project and docs.

1.1.1

2010-10-14

  • Several critical JRuby bug fixes
  • Fixes for JRuby in 1.9 mode
  • Check keys and move id only when necessary for JRuby encoder

1.1

2010-10-4

  • Official JRuby support via Java extensons for BSON (beta)
  • Connection#lock! and Connection#unlock! for easy fsync lock
  • Note: BSON::Code is no longer a subclass of String.

1.0.9

2010-9-20

  • Significant performance improvements (with a lot of help from Hongli Lai)

1.0.8

2010-8-27

  • Cursor#rewind! and more consistent Cursor Enumberable behavior
  • Deprecated ObjectID for ObjectId
  • Numerous minor bug fixes.

1.0.7

2010-8-4

  • A few minor test/doc fixes.
  • Better tests for replica sets and replication acknowledgment.
  • Deprecated DB#error and DB#last_status

1.0.6

2010-7-26

  • Replica set support.
  • Collection#map_reduce bug fix.

1.0.5

2010-7-13

  • Fix for bug introduced in 1.0.4.

1.0.4

2010-7-13

  • Removed deprecated
    • Cursor admin option
    • DB#query
    • DB#create_index (use Collection#create_index)
    • DB#command only takes hash options now
  • j2bson executable (neomantra)
  • Fixed bson_ext compilation on Solaris (slyphon)
  • System JS helpers (neovintage)
  • Use one mutex per thread on pooled connections (cremes)
  • Check for CursorNotFound response flag
  • MapReduce can return raw command output using :raw
  • BSON::OrderedHash equality with other Ruby hashes (Ryan Angilly)
  • Fix for broken Socket.send with large payloads (Frédéric De Jaeger)
  • Lots of minor improvements. See commmits.

1.0.3

2010-6-15

  • Optimiztion for BSON::OrderedHash
  • Some important fixes.

1.0.2

2010-6-5

This is a minor release for fixing an incompatibility with MongoDB v1.5.2

  • Fix for boolean response on commands for core server v1.5.2
  • BSON.read_bson_document and b2json executable (neomantra)
  • BSON::ObjectID() shortcut for BSON::ObjectID.from_string (tmm1)
  • Various bug fixes.

1.0.1

2010-5-7

  • set Encoding.default_internal
  • DEPRECATE JavaScript string on Collection#find. You now must specify $where explicitly.
  • Added Grid#exist? and GridFileSystem#exist?
  • Support for replication acknowledgment
  • Support for $slice
  • Namespaced OrderedHash under BSON (sleverbor)

1.0

2010-4-29 Note: if upgrading from versions prior to 0.20, be sure to upgrade to 0.20 before upgrading to 1.0.

  • Inspected ObjectID is represented in MongoDB extended json format.

  • Support for tailable cursors.

  • Configurable query response batch size (thx. to Aman Gupta)

  • bson_ext installs on early release of Ruby 1.8.5 (dfitzgibbon)

  • Deprecated DB#create_index. Use Collection#create_index index.

  • Removed deprecated Grid#put syntax; no longer requires a filename.

0.20.1

2010-4-7

  • Added bson gem dependency.

0.20

2010-4-7

If upgrading from a previous version of the Ruby driver, please read these notes carefully, along with the 0.20_UPGRADE doc.

  • Support for new commands:

    • Collection#find_and_modify
    • Collection#stats
    • DB#stats
  • Query :fields options allows for values of 0 to exclude fields (houdini, railsjedi).

  • GridFS

    • Option to delete old versions of GridFileSystem entries.
    • Filename is now optional for Grid#put.
    • Option to write arbitrary attributes to a file: @grid.put(@data, :favorite_phrase => "blimey!")
    • Indexes created on the chunks collection are now unique. If you have an existing chunks collection, you may want to remove
  • Removed the following deprecated items:

    • GridStore class
    • RegexpOfHolding class
    • Paired connections must now be initialized with Connection.paired
  • BSON-related code extracted into two separate gems: bson and bson_ext (thx to Chuck Remes).

    • mongo_ext no longer exists.
    • BSON::Binary constructor can now take a string, which will be packed into an array.
    • Exception class adjustments:
      • Mongo::InvalidObjectID moved to BSON::InvalidObjectID
      • Mongo::InvalidDocument moved to BSON::InvalidDocument
      • Mongo::InvalidStringEncoding moved to BSON::InvalidStringEncoding
      • Mongo::InvalidName replaced by Mongo::InvalidNSName and BSON::InvalidKeyName
    • BSON types are now namespaced under the BSON module. These types include:
      • Binary
      • ObjectID
      • Code
      • DBRef
      • MinKey and MaxKey
    • Extensions compile on Rubinius (Chuck Remes).

Prior to 0.20

See git revisions.