I've already started on TaskManager testing and benchmarking in isolation. My next sub-project will be to work on that some more.

I also want to construct unit tests of the more complicated TaskManager clients, JoinManager and ServiceDiscoveryManager. I'm particularly concerned about retries of those RetryTask subclasses that are involved in runAfter dependencies. The last time I checked, we were getting one instance of that in the whole QA suite, nowhere near enough.

Patricia


Jonathan Costers wrote:
I will test the revision you requested on Windows later tonight.
It'll take a while though, as you are aware.

Actually, I noticed that a lot of the service QA tests contain code that
uses TaskManager, so I think by running the complete QA suite, you are
implicitely testing TaskManager.
I haven't looked into it too deep, but that was my impression going through
the tests (fixing javadoc tags, lol)

It would be great, however, to have (a/some) unit test(s) that test
TaskManager behaviour in isolation as well. I know, its not that straight
forward ... But still it would be great :-)

2010/9/22 Patricia Shanahan <[email protected]>

YES, PLEASE! Code reviews are a good thing in any case, and this is my
first open source, Apache, or River coding effort, so there may be style
issues.

My big picture objective is to improve the scalability of TaskManager, as a
response to https://issues.apache.org/jira/browse/RIVER-344.

It was doing a lot of O(n) operations, mainly due to the use of an
ArrayList to represent essentially a FIFO. Those O(n) operations are doubly
bad news for scalability because they are done under synchronization. I've
reduced many of them to O(log n) by replacing the ArrayList with a TreeSet
and PriorityBlockingQueue, both in order of arrival, the same order as the
original ArrayList.

I may implement finer scale optimizations later, such as replacing
synchronization with atomic operations. However, in my experience it is
important to get the data structures and algorithms right first.

Unfortunately, as far as I can tell, even with Jonathan's heroic
test-enabling efforts, I don't think we have a good TaskManager scalability
test, or a test of the concurrent behavior of its clients.

Patricia



On 9/22/2010 7:16 AM, Tom Hobbs wrote:

I'm happy to do some code reviews.  I can't run any tests though, I don't
have any access to any Windows machines.

Let me know if this would be useful, and I'll check those revisions out.

On Tue, Sep 21, 2010 at 10:33 PM, Patricia Shanahan<[email protected]>  wrote:

 I'm testing my new TaskManager the , but I have some anomalies. It would
help me to get some more testing of

https://svn.apache.org/repos/asf/incubator/river/jtsk/skunk/patsTaskManagerdonein
 other WindowsXP environments.

Both the head revision and revision  998737 need to be tested. Revision
998737 is the one I plan to merge into the trunk. It changes the
interface
between TaskManager and its callers, with minimal changes to TaskManager.

It is important that it be tested widely, because it affects a lot of
critical classes, and would be difficult to back out.

The head revision drops in a revised TaskManager. It should be easy to
back
out if necessary.

Patricia




Reply via email to