Commit Graph

5003 Commits

Author SHA1 Message Date
David Glasser
6ff2c1c9ce Set Mongo connection pool size better.
Fixes (for now) misordered oplog errors.
2013-12-02 19:17:33 -08:00
David Glasser
b4a598b3e5 Close connection to DB used to set up oplog. 2013-12-02 19:17:33 -08:00
David Glasser
9cc8ca6c2b Don't fire write fence until observes are steady. 2013-12-02 19:17:32 -08:00
David Glasser
f797a49beb Support oplog when MONGO_URL is a replset.
Node's URL parser doesn't support Mongo's "URLs" which contain commas in
the hostname part. Instead of trying to parse, just extract the database
name from ... the database!
2013-12-02 19:17:32 -08:00
David Glasser
bcbc73bc4a Add more info to the misordered oplog errors. 2013-12-02 19:17:32 -08:00
David Glasser
0d45c5f009 Limit poolsize for "last oplog entry" to 1.
This ensures that we allocate sequencers in increasing order.
2013-12-02 19:17:32 -08:00
David Glasser
19e41af82a Only use one connection for oplog tailing. 2013-12-02 19:17:32 -08:00
David Glasser
599a2f928e Separate oplog tail queries from other operations.
This prevents the "look up last oplog entry" queries from taking several
seconds 1/5 of the time when the query is on the same pooled connection
as the awaitdata tail query.
2013-12-02 19:17:32 -08:00
David Glasser
aae9fc23db replace sequencer writes with reads. 2013-12-02 19:17:32 -08:00
Slava Kim
f24be0684f Use MinimongoTest object to export private functions for unit tests 2013-12-02 19:17:31 -08:00
David Glasser
73b45f2fa2 Actually use Slava's function in oplog tailing.
Tests pass, but I have not confirmed that it actually has the desired
end-to-end effect.
2013-12-02 19:17:31 -08:00
David Glasser
81d77f916b Link to a PR and use latest version. 2013-12-02 19:17:31 -08:00
David Glasser
acb6decb6a Make run-tools-tests.sh pass. 2013-12-02 19:17:31 -08:00
David Glasser
0ddf232773 Restore accidentally-deleted mongo restart code.
Thanks, cli-test.sh!
2013-12-02 19:17:31 -08:00
Slava Kim
3dc3ad9997 Simplify getPaths - method for getting important key paths from a selector
object.
2013-12-02 19:17:31 -08:00
Slava Kim
12f5f4e87e Another test to ensure correct observation of object literals. 2013-12-02 19:17:31 -08:00
David Glasser
75f6037203 Set internal Mongo replay flag when tailing oplog. 2013-12-02 19:17:30 -08:00
David Glasser
3c39614e50 Fix typo in test. 2013-12-02 19:17:30 -08:00
Slava Kim
37120d186c One more test 2013-12-02 19:17:30 -08:00
Slava Kim
7fc451da3e Glasser's comments 2013-12-02 19:17:30 -08:00
Slava Kim
1c17d8af44 More work with numeric keys to be more precise answering if modifier affects selector. 2013-12-02 19:17:30 -08:00
Slava Kim
b5d9df66c1 Tests for "observe array element" case
ex.: collection.find({ 'foo.0.bar': 2 })
// => find docs with bar of first element of array foo being 2
2013-12-02 19:17:30 -08:00
Slava Kim
a75470bcf3 Fix the way we remove integer fields 2013-12-02 19:17:30 -08:00
Slava Kim
2dc25d77ae Fix prefix check. Remove all numeric keys from sel 2013-12-02 19:17:30 -08:00
David Glasser
df73dca222 Make a comment about something important into an XXX comment. 2013-12-02 19:17:29 -08:00
David Glasser
10f3e9c90f Add a comment about a non-redundant stopped check. 2013-12-02 19:17:29 -08:00
David Glasser
16ac0d7ba2 Fix bad error check. 2013-12-02 19:17:29 -08:00
David Glasser
badf20c35a LICENSE for quotemeta, add comment about duplication 2013-12-02 19:17:29 -08:00
David Glasser
7d1ab34788 Refactor MongoConnection options: oplogUrl, not isOplog
Move hacky use of env var to a slightly more appropriate place
2013-12-02 19:17:29 -08:00
David Glasser
441279eb13 rename: 'options' should always be *our* options 2013-12-02 19:17:29 -08:00
David Glasser
a8201cc17e Block on first call to observeChanges if there is an oplog handle that is still
initializing.
2013-12-02 19:17:29 -08:00
Slava Kim
11bf813f90 If foo changes, than foo.bar observation result may change. 2013-12-02 19:17:28 -08:00
Slava Kim
480c353c65 Some simplest tests for isSelectorAffectedByModifier
and some tests fail :(
2013-12-02 19:17:28 -08:00
Slava Kim
c3c79a94ea Tests for getPaths for selector and fix for a bug these tests caught 2013-12-02 19:17:28 -08:00
Slava Kim
dbbda54c68 First implementation of _isSelectorAffectedByModifier. 2013-12-02 19:17:28 -08:00
David Glasser
7f85f38110 Change repl set name from dummy to meteor.
This name ends up in the "meteor mongo" prompt, and a prompt of "dummy:PRIMARY>"
is way less welcoming than "meteor:PRIMARY>".
2013-12-02 19:17:28 -08:00
David Glasser
9cbb5946c4 don't poll the database if we can just execute the modifier directly 2013-12-02 19:17:28 -08:00
David Glasser
40befb8023 minor improvements 2013-12-02 19:17:28 -08:00
David Glasser
cd0bdecaec keep prototype on timestamps when they are cloned (all tests pass) 2013-12-02 19:17:27 -08:00
David Glasser
ab34a277fc make test do what it says 2013-12-02 19:17:27 -08:00
David Glasser
ff000110a0 only one mongo-livedata test fails 2013-12-02 19:17:27 -08:00
David Glasser
fbfda21dfb whoa, we're halfway there 2013-12-02 19:17:27 -08:00
David Glasser
c5c19114ab refactor oplog stuff into its own file 2013-12-02 19:17:27 -08:00
David Glasser
0017eacbe9 use docfetcher 2013-12-02 19:17:27 -08:00
David Glasser
33528ddbc3 test doc fetcher 2013-12-02 19:17:27 -08:00
David Glasser
85ada6a874 doc fetcher! 2013-12-02 19:17:26 -08:00
David Glasser
6905807375 rename writes collection to sequencers. will be used for observe catchup too 2013-12-02 19:17:26 -08:00
David Glasser
4f23be3168 oops, stop listenersHandle 2013-12-02 19:17:26 -08:00
David Glasser
c9c465bcfb all tests now pass (mostly because I made sure the failing tests
avoid oplog, but they are testing basically implementation details)

there's a "insert found for already-existing ID" somewhere though

trasnform: null, interesting...
2013-12-02 19:17:26 -08:00
David Glasser
5ffb4a9a15 handle _id properly in replace. many tests pass. 2013-12-02 19:17:26 -08:00