[ grinder-Feature Requests-1849150 ] Sync Points (Feature request)

SourceForge.net <[email protected]> Sun, 09 Oct 2011 11:13:48 +0100
Newsgroups gmane.comp.java.grinder.devel
Message-ID <[email protected]>
Feature Requests item #1849150, was opened at 2007-12-12 06:50
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=368598&aid=1849150&group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
>Status: Pending
Priority: 5
Private: No
Submitted By: Aditya (aditya2k)
Assigned to: Philip Aston (philipa)
Summary: Sync Points (Feature request)

Initial Comment:
I would like to see the ability to add sync points in the script.

A worker should execute the script till it reaches a sync point. When all the other workers reach the sync point, then all workers resume till the end or another sync point is reached.

This is really useful if we want to perform a bunch of actions before the real action that we want to load-test.

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

>Comment By: Philip Aston (philipa)
Date: 2011-10-09 11:13

Message:
Implemented Alex Miller's #3 for next version:
http://grinder.git.sourceforge.net/git/gitweb.cgi?p=grinder/grinder;a=commit;h=dcdc377f83d046e8cdbdbc553921b990ae91d36f

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

Comment By: Alex Miller (alexdmiller)
Date: 2007-12-18 16:20

Message:
Logged In: YES 
user_id=1668104
Originator: NO

I also have this need.  We call these "phases".  One phase may apply a
certain kind of load, then the next phase changes the load in some way.  We
want all the workers to change at the same point.  I would want this
synchronization to occur across both processes and threads.  

There are really two kinds of phases - one where each worker has an
explicit number of actions to take and should wait at a synch point before
continuing and another where workers should execute for some duration.  I
need both kinds.  

Ideas I have on implementation:

1) Use Terracotta (http://terracotta.org) to cluster the grinder worker
processes, then use any standard thread synchronization primitive in Java
to synchronize the threads across the entire cluster (for example:
CyclicBarrier, CountdownLatch, wait/notify, etc).  Ideally, there would be
some super simple way to write scripts and enable them to sync without
needing to use the primitive directly.  I actually work for Terracotta and
may implement this as part of some testing I'm doing using the Grinder.  If
I do, I'll be happy to make whatever I do available.  Terracotta is open
source and free.  

2) Another idea that I might also pursue simply because I'm testing
Terracotta and not sure if I want to involve my testing infrastructure in
the system under test is to just use the reading/writing of files on a
shared file system for synchronization.  Seems like it would be pretty
simple for every thread/process to write a dummy file somewhere as they
finish their phase and then trigger the next phase when all files are
written.  An ugly hack, but probably workable.    

3) Sockets and signaling from the console is of course another choice but
I think I'm too lazy to try it.  :)  



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

Comment By: Aditya (aditya2k)
Date: 2007-12-12 20:46

Message:
Logged In: YES 
user_id=298252
Originator: YES

Yes, that is correct.

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

Comment By: Philip Aston (philipa)
Date: 2007-12-12 08:27

Message:
Logged In: YES 
user_id=2117
Originator: NO


I presume you are looking for this sync point to work across different
worker processes, and not just between the worker threads within a single
process?

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=368598&aid=1849150&group_id=18598

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2