Commit Graph

892 Commits

Author SHA1 Message Date
Kyle Banker
f224df45aa minor: cleanup 2011-11-04 13:25:13 -04:00
Kyle Banker
a2a307c45d Distinguish between hard and soft pool close. 2011-11-04 09:23:41 -04:00
Kyle Banker
01d1231373 Added thread-local sockets to ReplSetConnection 2011-11-03 18:48:01 -04:00
Kyle Banker
54433502f5 minor: cleanup 2011-11-03 18:41:25 -04:00
Kyle Banker
f668678fd1 Store sockets in thread-local variables when possible.
Allow connection pools to grow if needed. All this minimizes
the number of locks required and reduces the waiting time
for these locks.
2011-11-03 18:37:23 -04:00
Kyle Banker
0b33a48dd9 minor: clear accessors for defined methods 2011-11-03 11:21:00 -04:00
Kyle Banker
5b349e7175 Remove debug info. 2011-11-03 11:19:26 -04:00
Kyle Banker
68627cef3d Replica Set test harness refactoring. 2011-11-03 11:17:36 -04:00
Kyle Banker
3e7c28e1ef Add networking module. 2011-11-02 18:01:48 -04:00
Kyle Banker
a5373ddb83 Initial decoupling of Connection, ReplSetConnection,
and networking code.
2011-11-02 18:00:52 -04:00
Kyle Banker
3655a94934 Stop using 'sync' library. Don't trust it. Too complex. 2011-11-02 17:33:34 -04:00
Kyle Banker
1f068ce127 Cleanup for proxying to PoolManager. 2011-11-02 15:41:59 -04:00
Kyle Banker
f98c1099dc Ensure we pass pool timeout to pool. 2011-11-02 15:21:46 -04:00
Kyle Banker
d171f75bb0 Don't copy manager data. 2011-11-02 15:16:40 -04:00
Kyle Banker
14593954fa RUBY-352 Ensure commands are sent to primary. 2011-10-26 10:28:06 -04:00
Kyle Banker
9b6589e033 Auto-refresh will be disabled by default. 2011-10-26 10:26:50 -04:00
Kyle Banker
045a556e99 minor: test fix 2011-10-17 15:09:54 -05:00
Kyle Banker
ddb56a537f BUMP 1.4.1 2011-10-17 14:55:21 -05:00
Kyle Banker
78dd5035d7 minor fix 2011-10-17 14:49:44 -05:00
Kyle Banker
7a11bb18a9 Ensure that cursor requiring getmore ops will not
be affected by replica set refresh.

Prep for sending commands to secondaries.
2011-10-17 14:41:09 -04:00
Kyle Banker
b3c3206eeb minor: formatting 2011-10-14 09:53:23 -04:00
Kyle Banker
6a7e991689 Fix connection leak and refresh. 2011-10-14 09:52:11 -04:00
Kyle Banker
1001e59e44 minor: test framework fixes; minor bug fixes 2011-10-13 17:58:20 -04:00
Kyle Banker
c2070bb90a minor: simply and refactor auto refresh 2011-10-12 17:13:48 -04:00
slloyd
92a2e86d9a Allow logging from Collection using Connection logger 2011-10-11 10:25:24 -07:00
Kyle Banker
f5f714a1a1 Added some basic, sanity-checking tests. 2011-10-07 13:55:09 -04:00
Kyle Banker
118cb18c33 Removed a completely unnecessary mutex. 2011-10-07 12:13:18 -04:00
Kyle Banker
09c8a3838c Fixed major bug where :refresh_mode == :async 2011-10-06 14:50:51 -04:00
Kyle Banker
8525f4ceac Fixed major bug where :refresh_mode == :sync 2011-10-06 14:26:39 -04:00
Kyle Banker
018da9049c minor: test fix 2011-09-26 17:48:17 -04:00
David E. Chen
9eaf6b7b83 Support the current MongoDB URI scheme with multiple hosts/ports separated by commas all using the same authentication and database. 2011-09-26 17:39:47 -04:00
Michael Glass
fd0e858021 MongoDB URI should allow db with no username or password. 2011-09-26 16:21:43 -04:00
Kyle Banker
4d41092aaa BUMP 1.4.0 2011-09-19 12:05:10 -04:00
Kyle Banker
ec97cd6d53 RUBY-331 fix sort on Collection#map_reduce 2011-09-19 11:46:15 -04:00
Kyle Banker
63c91af1b1 minor fixes and doc updates. :sync is default refresh mode. 2011-09-15 18:44:02 -04:00
Kyle Banker
3e3f05813a minor: cleanup and test fix 2011-09-15 17:46:59 -04:00
Kyle Banker
b910e3e635 Add synchronous refresh; fix connection leak. 2011-09-15 15:44:12 -04:00
Kyle Banker
83eaa4d51b Replica Set connection improvements for refresh and multi-threaded apps. 2011-09-13 17:50:01 -04:00
Kyle Banker
a370f3abed minor: ReplSetConnection#connected? will be eventaully consistent. 2011-09-13 10:44:27 -04:00
Kyle Banker
701bba8942 RUBY-306 added missing file 2011-09-11 12:08:26 -04:00
Kyle Banker
e678bac75e RUBY-306 clean up logging. 2011-09-07 17:14:53 -04:00
Kyle Banker
75941ad2a3 minor: Cursor cleanup 2011-09-07 10:17:24 -04:00
Kyle Banker
1c439df278 RUBY-312 Enable exhaust-mode queries. 2011-09-07 10:02:10 -04:00
Kyle Banker
75ff1aa633 minor: doc fixes 2011-09-06 16:36:45 -04:00
Kyle Banker
7ac19f1bfa minor: Cursor#next over Cursor#next_document 2011-09-06 16:23:55 -04:00
Kyle Banker
d44eb01da6 RUBY-304 minor: doc fix 2011-09-06 15:28:12 -04:00
Kyle Banker
50c38c6c6b RUBY-284 document :read API 2011-09-06 14:58:03 -04:00
Kyle Banker
5d83ab2460 RUBY-313 minor: deprecation warning should include removal version. 2011-09-06 14:30:00 -04:00
Kyle Banker
046038e18d RUBY-297 when possible, include error codes and
return objects in exception classes.
2011-09-06 14:22:50 -04:00
Kyle Banker
1e951d6734 RUBY-316 2011-09-06 11:40:25 -04:00
Kyle Banker
834b0db0af RUBY-307 Collection#count should take a query, skip, and limit. 2011-09-06 11:38:19 -04:00
Kyle Banker
b0b1c043ca Pool manager unit test. 2011-09-02 17:26:43 -04:00
Nandor Kracser
1b595316c6 use BSON::ObjectId rather than Mongo::ObjectId for return values in doc 2011-09-01 21:33:23 +02:00
Kyle Banker
e2178b0f1d RUBY-322 nicer inspect methods 2011-09-01 11:42:56 -04:00
Kyle Banker
a916d3c8a2 minor: organization 2011-09-01 11:32:32 -04:00
Kyle Banker
fbeea87c47 Added some read preference tests; refactoring; nice Pool#inspect. 2011-08-31 17:34:06 -04:00
Kyle Banker
2ff4169a50 Remove unnecessary code. 2011-08-31 16:06:14 -04:00
Kyle Banker
adb4675f20 RUBY-321 Use sync RW lock for ReplSetConnection. Bug fixes. 2011-08-31 16:05:21 -04:00
Kyle Banker
7769f4d44d minor: test fix 2011-08-31 11:46:33 -04:00
Kyle Banker
3c31dc6acd Disabled auto-refresh by default. 2011-08-30 16:17:05 -04:00
Kyle Banker
e8a5375cbf minor: replica set test fixes 2011-08-30 16:16:47 -04:00
Kyle Banker
8b2de82464 RUBY-320 ReplSetConnection now caches tags and maps them to pools for reading. 2011-08-30 15:59:04 -04:00
Kyle Banker
45c40e7267 RUBY-320 RUBY-284 initial cascading read API. Mapping sockets to pools. 2011-08-29 17:49:58 -04:00
Kyle Banker
a6ea525e3d RUBY-319 support continue_on_error insert flag 2011-08-29 12:04:01 -04:00
Kyle Banker
8c241cded7 RUBY-317 2011-08-29 11:22:55 -04:00
Kyle Banker
f00c0dfcf0 RUBY-316 initial SSL support 2011-08-26 17:35:40 -04:00
Kyle Banker
8db62d2cbf RUBY-311 ensure that ReplSetConnection connects to replica set members only. 2011-08-26 12:40:13 -04:00
Kyle Banker
5559f91da2 RUBY-314 test for update when a node is removed 2011-08-25 18:52:20 -04:00
Kyle Banker
3c127984a3 RUBY-242 check BSON size on a per-connection basis. 2011-08-25 14:57:24 -04:00
Kyle Banker
0e227d5a39 minor: remove unused method 2011-08-25 11:34:24 -04:00
Kyle Banker
f3fbb98fa8 RUBY-314 replica set connection and test cleanup 2011-08-25 11:27:58 -04:00
Kyle Banker
1090dd3873 RUBY-314 initial implementation of replica set health checking via background thread 2011-08-24 18:34:00 -04:00
Kyle Banker
9ea718522f RUBY-291 automate local replica set reads by ping time 2011-08-22 11:52:11 -04:00
Kyle Banker
3027e29f46 Simpify replica set connection code. 2011-08-16 16:47:07 -04:00
Karl Seguin
2557a575eb added node class 2011-08-12 16:40:09 -04:00
Kyle Banker
82b103752e RUBY-289 ensure that negative limit is logged 2011-08-08 18:31:30 -04:00
Kyle Banker
a9b975eaaa RUBY-304 add Collection#capped? 2011-08-08 17:52:44 -04:00
Kyle Banker
b32f895ed6 RUBY-288 ensure we cannot modify with add_option or remove_option after iteration starts. 2011-08-05 18:22:09 -04:00
Kyle Banker
1142c33910 RUBY-288 Cursor#remove_option 2011-08-05 18:15:48 -04:00
Kyle Banker
96b39313bf RUBY-267 Cursor#alive? 2011-08-05 17:54:38 -04:00
Kyle Banker
eecb1d35de Revert "RUBY-167 Cursor#alive?"
This reverts commit 91308cdc60.
Wrong JIRA Issue
2011-08-05 17:52:44 -04:00
Kyle Banker
91308cdc60 RUBY-167 Cursor#alive? 2011-08-05 17:51:37 -04:00
Kyle Banker
237dc98fbf RUBY-283 add_option for cursors. Deprecate Cursor#query_opts. 2011-08-05 11:52:45 -04:00
Karl Seguin
7783cebfdf batch_size is taken into account when limit is 0/not set 2011-06-16 22:21:40 +08:00
Kyle Banker
3a602e1227 minor: Deprecate :timeout for :pool_timeout 2011-06-15 16:17:42 -04:00
Kyle Banker
b0d5df72fa RUBY-269 RUBY-275 added connect_timeout option 2011-06-15 14:20:11 -04:00
Kyle Banker
13a53f2554 minor: removed unnecessary reference to @slave_okay 2011-06-15 11:31:10 -04:00
Karl Seguin
50a54cdcc0 can drop an index using the same type of spec used to create an index 2011-05-31 19:52:50 +08:00
Kyle Banker
6992c6bb89 Pass show_disk_loc, max_key, and return_key from Collection#find 2011-05-25 13:33:33 -07:00
Kyle Banker
d8d929c647 Merge pull request #45 from datanoise/master
Fixes map_reduce call
2011-05-25 13:27:10 -07:00
Kyle Banker
408fbc1b72 Merge pull request #44 from pto/master
Allow drop_dups on ensure_index as well as on create_index
2011-05-25 13:26:50 -07:00
Kent Sibilev
03afd82000 deleting :raw option, otherwise map_reduce fails on the server 2011-05-22 21:17:08 -04:00
Peter Olsen
088b158ece dropDups on ensure_index and remove docs on unimplemented find options 2011-05-19 19:14:38 +00:00
Michael Jackson
ad6edb0a9e Moved Mongo::VERSION to its own file
You shouldn't need to require mongo.rb just to generate the gemspec.
2011-05-17 11:24:21 -07:00
Daniël van de Burgt
6e66b11f6e fix: reading chunks from an empty (zero-length) grid-stored file
reading chunks from an empty file caused an endless loop
2011-05-10 22:58:50 -05:00
Kyle Banker
b8ab13e7f9 Revert "RUBY-267 Cursor#alive?"
This reverts commit 05dfef2f11.
This adds new functionality and thus must wait for the 1.4 release.
2011-05-10 15:58:23 -04:00
Kyle Banker
05dfef2f11 RUBY-267 Cursor#alive? 2011-05-10 15:45:32 -04:00
Kyle Banker
9a80fbaa66 RUBY-266 support maxscan, showDiskLoc, and returnKey 2011-05-10 15:40:06 -04:00
Kyle Banker
505bc68aab minor: RUBY-257 note log_message is a no-op on Connection#receive_message. 2011-05-10 14:35:51 -04:00
Kyle Banker
f7e1feaeba minor: make DB#validate_collection compatible with server v1.8 and v1.9.1 2011-05-10 14:28:04 -04:00
Kyle Banker
604d0f60ed RUBY-261 Cursor#close hits secondary when appropriate. 2011-05-10 14:21:23 -04:00
Kyle Banker
cb54c6b295 minor: fix for format change is result for 1.9.1 'validate' command. 2011-05-09 14:43:39 -04:00
Kyle Banker
0051b9446a RUBY-260 methods using DB#collection_names should account for symbols. 2011-05-09 12:28:07 -04:00
Kyle Banker
74faed3f38 Merge pull request #41 from rmm5t/refactor_gets
Fix and refactoring for GridIO#gets.
2011-05-09 08:12:40 -07:00
Ryan McGeary
7f384ebd51 Refactored two code paths of GridIO#gets into well-named methods 2011-05-03 11:54:18 -04:00
Ryan McGeary
c672168236 Fixed GridIO#gets to handle the end of a file
Neither a multi-character nor single-character separator search returned nil
after hitting the EOF.
2011-05-03 11:36:33 -04:00
Steve Randy Tantra
3a3a31a3dc get_md5 should return @server_md5 when putting file in safe mode. 2011-05-02 01:55:54 +08:00
Kyle Banker
ba1e4679fa Leave hash arguments unmodified. 2011-04-27 11:10:48 -04:00
Kyle Banker
8887402ca8 Don't modify hash arguments. 2011-04-26 07:48:17 -04:00
Kyle Banker
9cc6bad613 Simplify GridIO#read_all 2011-04-26 07:48:16 -04:00
Kyle Banker
140dfa9f32 minor: fixes 2011-04-26 07:48:16 -04:00
Kyle Banker
9c30de332f minor: test fix 2011-04-15 10:58:37 -04:00
Kyle Banker
6b9eef0d1f RUBY-240 minor fix for RUBY 1.8 2011-03-29 16:01:46 -04:00
Kyle Banker
002ddb06fc RUBY-240 Add StringIO methods to GridIO 2011-03-29 15:27:13 -04:00
Kyle Banker
3509926071 Remove Connection#reset_connection (private) and deprecate
ReplSetConnection#reset_connection (public)
2011-03-29 12:18:58 -04:00
Kyle Banker
a6cc09e50c RUBY-236 more timeout tweaks and tests 2011-03-29 11:46:29 -04:00
Kyle Banker
f3174550b7 RUBY-236 Create timeout block only when timeout is set 2011-03-29 11:06:46 -04:00
Kyle Banker
025e56732e minor: test and doc fixes 2011-03-29 10:39:01 -04:00
Mauro Pompilio
baa1d0b802 Method *create_colletion* behaves the same way as *collection*
when options are passed.
2011-03-28 11:23:03 -04:00
Kent Sibilev
c9da58965a properly log sorting option 2011-03-28 11:18:14 -04:00
Kyle Banker
e49d50acc2 RUBY-236 set op_timeout for socket receive timeouts 2011-03-28 11:09:27 -04:00
Kyle Banker
1ab2f171c8 minor: doc fix 2011-03-23 17:36:03 -04:00
Kyle Banker
272d4835a7 RUBY-252 RUBY-237 re-add Connection#host and Connection#port 2011-03-23 16:34:42 -04:00
Kyle Banker
2bfe205c51 Merged wpiekutowski's commits to enable warnings
on test suite and clean up some code.

Conflicts:
	test/cursor_test.rb
2011-03-23 16:02:04 -04:00
Kyle Banker
37f285bf0c minor: docs 2011-03-23 15:30:27 -04:00
John Nunemaker
53ad43fedc Added transformer concept.
Can be passed to find/find_one, which in turn is passed to cursor. It is an optional block that makes it easier to turn documents that are returned into hashes.

cursor = collection.find({...}, :transformer => Proc.new { |doc| User.load(doc) })
cursor.next # returns instance of User instead of ordered hash

This will allow MongoMapper, ToyStore and other object mappers to take better advantage of Cursors. No more calling to_a and mapping to instances.
2011-03-23 15:26:34 -04:00
Kyle Banker
997d9b8ae2 RUBY-231 RUBY-250 Validate socket against pid 2011-03-17 22:15:14 -04:00
Kyle Banker
8df0ff23f5 RUBY-249 Alias Cursor#next for Cursor#next_document 2011-03-15 14:24:34 -04:00
Kyle Banker
6a46bf7aef RUBY-247 Improved replica set docs. 2011-03-12 08:40:29 -05:00
Mauro Pompilio
e64f91e013 Implementation of the 'ping' command. Probably better suited for the 'active?' method. 2011-03-04 10:51:18 -05:00
Mauro Pompilio
1ad3285767 Add a mechanism to check if the connection is active/healthy. 2011-03-03 10:17:47 -05:00
Kyle Banker
4f3937d6a4 Map-reduce doc update for v1.8 2011-02-23 14:43:23 -05:00
Mauro Pompilio
fa0a933780 Fix the exception message shown when there's an IOError
while closing a socket in the pool.
2011-02-23 12:43:20 -05:00
Kyle Banker
24cfde5ef6 Updated map-reduce tests and docs for v1.8 map-reduce options 2011-02-22 17:47:47 -05:00
Wojciech Piekutowski
2971793b48 Remove dead code 2011-02-20 17:12:46 +01:00
Wojciech Piekutowski
d12987bf7a Always initialize @metadata and @aliases 2011-02-20 17:09:18 +01:00
Wojciech Piekutowski
62900acb4b Initialize @cursor_id 2011-02-20 17:03:32 +01:00
Wojciech Piekutowski
5dfac28dd4 Fix Mongo::Cursor#query_options_hash 2011-02-20 16:22:39 +01:00
Wojciech Piekutowski
e4867b542e Initialize instance variables for available options 2011-02-20 16:12:30 +01:00
Wojciech Piekutowski
b541972bdc Remove duplicating character classes from URI regexp in Mongo::URIParser 2011-02-20 15:36:15 +01:00
Mani Tadayon
9772328948 Fix typo in error message for Collection#group 2011-02-17 10:20:03 -05:00
Kyle Banker
ed44a7490c Improved replica set failover tests. A few
improved exception messages.
2011-02-15 16:48:29 -05:00
Kyle Banker
e55cf2b7d1 minor: doc fix 2011-02-10 17:09:03 -05:00
Kyle Banker
0c574b9975 minor: alias Connection#reconnect to Connection#connect 2011-02-02 11:36:56 -05:00
Kyle Banker
e8e617e95f Test for replica set authentication; bug fix. 2011-02-02 11:26:31 -05:00
Kyle Banker
d63cf18042 minor: note 2011-02-02 09:51:13 -05:00
Kyle Banker
9c83ca6b3e minor style and doc fixes. warning about logging performance issues. 2011-01-31 15:51:39 -05:00
Steve Sloan
8a7296599b Refactored logging of DB operations to use Connection#instrument.
This allows for easy overriding, e.g. to ActiveSupport notifications.
2011-01-31 15:13:12 -05:00
Kyle Banker
7c4740c47c RUBY-232 handle authentication with connection pooling 2011-01-31 14:47:38 -05:00
Andy Gregorowicz
285752a7ad Switching parameter name in Collection#group from key to opts to fix YARD doc 2011-01-21 14:20:52 -07:00