Java Doc for STABLE.java in  » Net » JGroups-2.4.1-sp3 » org » jgroups » protocols » pbcast » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Net » JGroups 2.4.1 sp3 » org.jgroups.protocols.pbcast 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   java.lang.Thread
      org.jgroups.stack.UpHandler
         org.jgroups.protocols.pbcast.STABLE

STABLE
public class STABLE extends Protocol (Code)
Computes the broadcast messages that are stable; i.e., have been received by all members. Sends STABLE events up the stack when this is the case. This allows NAKACK to garbage collect messages that have been seen by all members.

Works as follows: periodically we mcast our highest seqnos (seen for each member) to the group. A stability vector, which maintains the highest seqno for each member and initially contains no data, is updated when such a message is received. The entry for a member P is computed set to min(entry[P], digest[P]). When messages from all members have been received, a stability message is mcast, which causes all members to send a STABLE event up the stack (triggering garbage collection in the NAKACK layer).

The stable task now terminates after max_num_gossips if no messages or view changes have been sent or received in the meantime. It will resume when messages are received. This effectively suspends sending superfluous STABLE messages in the face of no activity.
New: when max_bytes is exceeded (unless disabled by setting it to 0), a STABLE task will be started (unless it is already running).
author:
   Bela Ban


Inner Class :public static class StableHeader extends Header implements Streamable

Field Summary
 longdesired_avg_gossip
     Sends a STABLE gossip every 20 seconds on average.
final  Digestdigest
    
final  Vectorheard_from
    
 booleaninitialized
    
final  Digestlatest_local_digest
    
 Addresslocal_addr
    
 longmax_bytes
     Total amount of bytes from incoming messages (default = 0 = disabled).
final  Vectormbrs
    
final static  Stringname
    
 longnum_bytes_received
    
 intnum_gossips
    
final  Objectresume_task_mutex
    
 longstability_delay
     delay before we send STABILITY msg (give others a change to send first).
final  Objectstability_mutex
    
final  Objectstable_task_mutex
    
 booleansuspended
    
 TimeSchedulertimer
    


Method Summary
public  voiddown(Event evt)
    
public  longgetDesiredAverageGossip()
    
public  longgetMaxBytes()
    
public  StringgetName()
    
public  intgetNumberOfGossipMessages()
    
 voidhandleStabilityMessage(Digest d, Address sender)
    
public  VectorrequiredDownServices()
    
public  voidresetStats()
    
public  voidrunMessageGarbageCollection()
    
 voidsendStabilityMessage(Digest tmp)
     Schedules a stability message to be mcast after a random number of milliseconds (range 1-5 secs). The reason for waiting a random amount of time is that, in the worst case, all members receive a STABLE_GOSSIP message from the last outstanding member at the same time and would therefore mcast the STABILITY message at the same time too.
public  voidsetDesiredAverageGossip(long gossip_interval)
    
public  voidsetMaxBytes(long max_bytes)
    
public  booleansetProperties(Properties props)
    
public  voidstart()
    
 voidstartResumeTask(long max_suspend_time)
    
 voidstartStabilityTask(Digest d, long delay)
    
 voidstartStableTask()
    
public  voidstop()
    
 voidstopResumeTask()
    
 voidstopStabilityTask()
    
 voidstopStableTask()
    
public  voidup(Event evt)
    

Field Detail
desired_avg_gossip
long desired_avg_gossip(Code)
Sends a STABLE gossip every 20 seconds on average. 0 disables gossipping of STABLE messages



digest
final Digest digest(Code)



heard_from
final Vector heard_from(Code)



initialized
boolean initialized(Code)



latest_local_digest
final Digest latest_local_digest(Code)



local_addr
Address local_addr(Code)



max_bytes
long max_bytes(Code)
Total amount of bytes from incoming messages (default = 0 = disabled). When exceeded, a STABLE message will be broadcast and num_bytes_received reset to 0 . If this is > 0, then ideally stability_delay should be set to a low number as well



mbrs
final Vector mbrs(Code)



name
final static String name(Code)



num_bytes_received
long num_bytes_received(Code)
The total number of bytes received from unicast and multicast messages



num_gossips
int num_gossips(Code)
Number of gossip messages



resume_task_mutex
final Object resume_task_mutex(Code)



stability_delay
long stability_delay(Code)
delay before we send STABILITY msg (give others a change to send first). This should be set to a very small number (> 0 !) if max_bytes is used



stability_mutex
final Object stability_mutex(Code)



stable_task_mutex
final Object stable_task_mutex(Code)



suspended
boolean suspended(Code)
When true, don't take part in garbage collection protocol: neither send STABLE messages nor handle STABILITY messages



timer
TimeScheduler timer(Code)





Method Detail
down
public void down(Event evt)(Code)



getDesiredAverageGossip
public long getDesiredAverageGossip()(Code)



getMaxBytes
public long getMaxBytes()(Code)



getName
public String getName()(Code)



getNumberOfGossipMessages
public int getNumberOfGossipMessages()(Code)



handleStabilityMessage
void handleStabilityMessage(Digest d, Address sender)(Code)



requiredDownServices
public Vector requiredDownServices()(Code)



resetStats
public void resetStats()(Code)



runMessageGarbageCollection
public void runMessageGarbageCollection()(Code)



sendStabilityMessage
void sendStabilityMessage(Digest tmp)(Code)
Schedules a stability message to be mcast after a random number of milliseconds (range 1-5 secs). The reason for waiting a random amount of time is that, in the worst case, all members receive a STABLE_GOSSIP message from the last outstanding member at the same time and would therefore mcast the STABILITY message at the same time too. To avoid this, each member waits random N msecs. If, before N elapses, some other member sent the STABILITY message, we just cancel our own message. If, during waiting for N msecs to send STABILITY message S1, another STABILITY message S2 is to be sent, we just discard S2.
Parameters:
  tmp - A copy of te stability digest, so we don't need to copy it again



setDesiredAverageGossip
public void setDesiredAverageGossip(long gossip_interval)(Code)



setMaxBytes
public void setMaxBytes(long max_bytes)(Code)



setProperties
public boolean setProperties(Properties props)(Code)



start
public void start() throws Exception(Code)



startResumeTask
void startResumeTask(long max_suspend_time)(Code)



startStabilityTask
void startStabilityTask(Digest d, long delay)(Code)



startStableTask
void startStableTask()(Code)



stop
public void stop()(Code)



stopResumeTask
void stopResumeTask()(Code)



stopStabilityTask
void stopStabilityTask()(Code)



stopStableTask
void stopStableTask()(Code)



up
public void up(Event evt)(Code)



Fields inherited from org.jgroups.stack.UpHandler
final protected Log log(Code)(Java Doc)

Methods inherited from org.jgroups.stack.UpHandler
public void run()(Code)(Java Doc)
public void setObserver(ProtocolObserver observer)(Code)(Java Doc)

Fields inherited from java.lang.Thread
final public static int MAX_PRIORITY(Code)(Java Doc)
final public static int MIN_PRIORITY(Code)(Java Doc)
final public static int NORM_PRIORITY(Code)(Java Doc)

Methods inherited from java.lang.Thread
public static int activeCount()(Code)(Java Doc)
final public void checkAccess()(Code)(Java Doc)
native public int countStackFrames()(Code)(Java Doc)
native public static Thread currentThread()(Code)(Java Doc)
public void destroy()(Code)(Java Doc)
public static void dumpStack()(Code)(Java Doc)
public static int enumerate(Thread tarray)(Code)(Java Doc)
public static Map<Thread, StackTraceElement[]> getAllStackTraces()(Code)(Java Doc)
public ClassLoader getContextClassLoader()(Code)(Java Doc)
public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()(Code)(Java Doc)
public long getId()(Code)(Java Doc)
final public String getName()(Code)(Java Doc)
final public int getPriority()(Code)(Java Doc)
public StackTraceElement[] getStackTrace()(Code)(Java Doc)
public State getState()(Code)(Java Doc)
final public ThreadGroup getThreadGroup()(Code)(Java Doc)
public UncaughtExceptionHandler getUncaughtExceptionHandler()(Code)(Java Doc)
native public static boolean holdsLock(Object obj)(Code)(Java Doc)
public void interrupt()(Code)(Java Doc)
public static boolean interrupted()(Code)(Java Doc)
final native public boolean isAlive()(Code)(Java Doc)
final public boolean isDaemon()(Code)(Java Doc)
public boolean isInterrupted()(Code)(Java Doc)
final public synchronized void join(long millis) throws InterruptedException(Code)(Java Doc)
final public synchronized void join(long millis, int nanos) throws InterruptedException(Code)(Java Doc)
final public void join() throws InterruptedException(Code)(Java Doc)
final public void resume()(Code)(Java Doc)
public void run()(Code)(Java Doc)
public void setContextClassLoader(ClassLoader cl)(Code)(Java Doc)
final public void setDaemon(boolean on)(Code)(Java Doc)
public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh)(Code)(Java Doc)
final public void setName(String name)(Code)(Java Doc)
final public void setPriority(int newPriority)(Code)(Java Doc)
public void setUncaughtExceptionHandler(UncaughtExceptionHandler eh)(Code)(Java Doc)
native public static void sleep(long millis) throws InterruptedException(Code)(Java Doc)
public static void sleep(long millis, int nanos) throws InterruptedException(Code)(Java Doc)
public synchronized void start()(Code)(Java Doc)
final public void stop()(Code)(Java Doc)
final public synchronized void stop(Throwable obj)(Code)(Java Doc)
final public void suspend()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
native public static void yield()(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.