Re: Grinder Feature Enhancements for Worker Notifications and Console Reporting

"David Smith" <[email protected]>
Newsgroups gmane.comp.java.grinder.devel
Message-ID <005601cb0341$68577230$39065690$@edu>
Hi Phil,

Thanks for the feedback.  I am starting to prototype the synchronisation API
to create the sync handles, wait for all handles across all agents to close
or reach the waiting point, and close the handles.  For this type of
blocking communication from the agent to the console it looks like I will
need to create a new blocking sender instance for the workers to use for
these sync handle operations, since they need a response from the console to
continue.  Would having a blocking sender instantiated at a high level in
the worker's code base (such as in the GrinderProcess class) be beneficial
for future coding projects, or do you think it would be best to retain the
blocking sender privately in my new synchronization classes?


David Smith
Information Sciences Institute
[email protected]
+1 (310)-448-9113


-----Original Message-----
From: Philip Aston [mailto:[email protected]] 
Sent: Saturday, May 29, 2010 8:39 AM
To: grinder-development-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [Grinder-development] Grinder Feature Enhancements for Worker
Notifications and Console Reporting

Hi David,

On 28/05/10 02:34, David Smith wrote:
>
> Good evening,
>
> Our organization is interested in using The Grinder for some 
> performance test measurements we will record.  There are a few 
> enhancements we would like to discuss and are willing to contribute 
> the code back to the community if there is interest in any of them.
>
> 1. *Ability to wait for a test to finish on all agent workers prior to 
> starting the next test.*  This would allow us to batch run a large 
> number of concurrent tests and help ensure that the same test is 
> actually running on all agents at any given time.  It seems like the 
> easiest way for us to do this is to run the console in headless mode 
> and enhance the Console API so that it allows listeners to be notified 
> when agents have started and finished processing a test.  We could 
> utilize this enhancement, along with the startWorkerProcesses() 
> method, to control when the next test starts on all agents.  I saw 
> that having a listener in the Console API was on the to-do list.
>

Yes, I've thought about doing something like this. I wouldn't base it on 
Test()'s though, but instead create a separate synchronisation API which 
the scripts would use. I don't think it would involve the console API, 
but would use the console for coordination.

I'd imagine an API that looks something like this:

     sync = grinder.synchronisation.register("my sync point") # create a 
sync handle

     ##

     sync.waitForAll()    # Blocks until all handles for "my sync point" 
have reached this point or have been closed

     ##

     sync.close()    # In case a script no longer wants to participate 
in a sync point. Will also happen automatically if the worker 
disconnects from the console.



> 2. *An option to publish detailed test results to the console.*  In 
> many cases the individual test results would contain too much data to 
> maintain in the console, making the summarized results the better 
> information to present.  However in our testing it would be more 
> useful to have all of the data collected from all the agents into a 
> single location by the console.
>

There may be a data volume issue here. Not sure.

> 3. *Collect statistics in a headless console.*  If our solution needs 
> to involve running the console in headless mode and sending all the 
> data collected to it, we will need to enhance the Console so that it 
> is able to record the data somehow.  I also saw that this is a To-do 
> list item.
>
> 4. *Push files from the console to the agents when running in headless 
> mode.*  We foresee ourselves having many agents deployed, so manually 
> transferring script changes to all of these files will be problematic 
> for us.
>

Yes, definitely both "to do"s

> Let me know if any of these enhancements are already underway by 
> someone else.  We would like our efforts to benefit the project as a 
> whole as well as our own needs, so feel free to discuss any additional 
> requirements or ideas regarding these enhancements with us and the list.
>

I won't be working on any of these in the near future, and I'd welcome 
such contributions. Please go ahead and prototype

Be aware that I'm a benevolent dictator and can be fussy about accepting 
patches, and will want to review things carefully before merging them 
back into the source tree, there's some hints at 
http://grinder.sourceforge.net/development/contributing.html. Start with 
some small things, and we'll proceed from there.

- Phil


----------------------------------------------------------------------------
--

_______________________________________________
Grinder-development mailing list
Grinder-development-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/grinder-development


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.