[SERVER-470] concurrency testing Created: 09/Dec/09 Updated: 12/Jul/16 Resolved: 05/Jan/10 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Concurrency |
| Affects Version/s: | None |
| Fix Version/s: | 1.3.1 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Eliot Horowitz (Inactive) | Assignee: | Aaron Staple |
| Resolution: | Done | Votes: | 2 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Participants: | |||||||||
| Description |
|
now that we're going to multi-threaded, we need really good test suites to make sure we don't have disastorous bugs working. |
| Comments |
| Comment by auto [ 12/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: Revert "Revert " This reverts commit f124e60fd1f9b4f90cdbd752d138b968f59b4096. |
| Comment by auto [ 11/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: Revert " This reverts commit a583a72db9587e25a6fe83d4f29a152635893c38. |
| Comment by auto [ 11/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 11/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 06/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: Revert " This reverts commit 796528283a1ba9d078dc9d22fa971e8f682bbc69. |
| Comment by Aaron Staple [ 05/Jan/10 ] |
|
Ok, I think we now have a fair initial set of tests in jstests/parallel. These tests don't measure performance, but they do push the db in an attempt to elicit race conditions. I filed a few database bugs as I was writing these tests, but the important ones have been fixed and at the moment all the parallel tests seem to pass reliably. We should add them to our v8 buildbot once that is up and running. I'm going to resolve this bug, but please let me know if you want more tests of a certain type. |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 05/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 04/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 04/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 04/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 04/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 04/Jan/10 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 29/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 28/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 28/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by auto [ 22/Dec/09 ] |
|
Author: {'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by Eliot Horowitz (Inactive) [ 11/Dec/09 ] |
|
We have some of our own benchmarks, but the more the better. |
| Comment by Jon Stephens [ 11/Dec/09 ] |
|
If you need help testing concurrency (actually doing benchmarks) let me know. I've been doing my own distributed testing on 1.14 and my performance starts to drop pretty fast over 30 concurrent connections which is a big issue in my environment. |
| Comment by Eliot Horowitz (Inactive) [ 09/Dec/09 ] |
|
ok - so i think it makes sense to just finish v8, then do testing. |
| Comment by Aaron Staple [ 09/Dec/09 ] |
|
Since we had threads working in v8 before, I'd vode for the v8 route. |
| Comment by Eliot Horowitz (Inactive) [ 09/Dec/09 ] |
|
i think multithreaded js is ok. |
| Comment by Aaron Staple [ 09/Dec/09 ] |
|
Ok, so in terms of a framework, we could delegate sequences of operations to be executed in parallel to 'runners'. These operation sequences could include our current js tests, and also some different predefined usage patterns that would put more load on the db. For the most extensive testing, it would be nice to have these usage patterns generated probabilistically, and the ordering and synchronization of the different operation sequences could be probabilistic too. The shell exec stuff would be one way to implement these runners, but it might be cleaner to do it with multithreaded spidermonkey. However, as we know, most prepackaged sm distributions aren't compiled with multithreading enabled – which I believe is why we chose to go the shell exec route for testing collection cloning. |