From 0ad655be63212165db6a3e885f670fb57d198bd4 Mon Sep 17 00:00:00 2001 From: Bela Ban Date: Tue, 21 Feb 2017 08:27:23 +0100 Subject: [PATCH] ns --- doc/JmxSupport.txt | 67 ---------------------------------------- doc/PerformanceNotes.txt | 66 --------------------------------------- doc/RELEASE_INSTRUCTIONS | 41 ------------------------ doc/RULES | 58 ---------------------------------- doc/structure.txt | 41 ------------------------ 5 files changed, 273 deletions(-) delete mode 100644 doc/JmxSupport.txt delete mode 100644 doc/PerformanceNotes.txt delete mode 100644 doc/RELEASE_INSTRUCTIONS delete mode 100644 doc/RULES delete mode 100644 doc/structure.txt diff --git a/doc/JmxSupport.txt b/doc/JmxSupport.txt deleted file mode 100644 index c9459dc61c..0000000000 --- a/doc/JmxSupport.txt +++ /dev/null @@ -1,67 +0,0 @@ - -// Author: Bela Ban - - - -JMX support for JGroups -======================= - -In 2.2.9, JMX support was added to JGroups. There were several design goals: - -- No dependencies on JMX if JMX support is not required. It should be possible to ship a JGroups version without any -JMX support, and without jmxri.jar (for JDK 1.4.x). Therefore channels and protocols are not turned into MBeans, e.g. -FD doesn't implement FDMBean. Instead, a parallel MBean and MBeanImpl hierarchy was created, where the MBeanImpl -delegates to the real protocol. This hierarchy is located in package org.jgroups.jmx. -For a protocol org.jgroups.protocols.P, there is a corresponding org.jgroups.jmx.protocols.PMBean -MBean and an implementation org.jgroups.jmx.protocols.P - -- No negative effect on performance, minimal effect on memory. JMX support can be disabled in the channel, and -all protocols (stats="false") - -- Support for running in a pre-JMX JDK (1.4, for example), e.g. under JBoss. There is a jgroups-service target in -the ANT build which generates a jgroups-service.sar that can be deployed into JBoss. The channel defines in the -META-INF/jboss-service.xml file of the SAR defines a JGroups channel MBean, which will automatically create MBeans -for all protocols and register them with the MBeanServer - -- Support for running in JDK 5 standalone. JDK 5 has JMX support built in. The jconsole tool can be used to inspect the -MBean hierarchy. -To programmatically create MBean support for JDK 5, the following code can be used: - -JChannel channel; -channel.connect(groupname); -ArrayList servers=MBeanServerFactory.findMBeanServer(null); -if(servers == null || servers.size() == 0) { - throw new Exception("No MBeanServers found;" + - "\nJmxTest needs to be run with an MBeanServer present, or inside JDK 5"); -} -MBeanServer server=(MBeanServer)servers.get(0); -JmxConfigurator.registerChannel(channel, server, "JGroups:channel=" + channel.getChannelName() , true); - -JmxConfigurator has a number of helper methods which register and de-register the channel and/or te protocols -attached to a given channel. - - -Provided information --------------------- -Some information provided includes (all info can be reset), besides configuration: -- UDP: messages sent/received, bytes sent/received (per member) -- Discovery: manual triggering of discovery -- NAKACK: retransmissions per member, last N retransmitted messages, - lowest and highest sequence numbers per member -- GMS: membership, history of views -- FD/FD_SOCK: last N suspected members -- STATE_TRANSFER: number of state requests, total bytes transferred -- STABLE: manual triggering of STABLE protocol - - -Example -------- -The Draw program was modified to support JMX. The following steps describe how to configure and run a JDK 5 VM and -look at the resulting Draw application via jconsole. -- Run the Draw program (the JDK needs to be 5!): - java -Dcom.sun.management.jmxremote org.jgroups.demos.Draw -props c:\udp.xml -jmx - (the -jmx flag enables registering the Channel and protocols with the MBeanServer) -- Start jconsole and connect to the local Draw process -- Under 'MBeans', choose the JGroups channel and browse the channel and the protocols -- [optional] Add the STATS protocol to the top of the stack; it display information about messages sent - and received diff --git a/doc/PerformanceNotes.txt b/doc/PerformanceNotes.txt deleted file mode 100644 index 01a7e3d576..0000000000 --- a/doc/PerformanceNotes.txt +++ /dev/null @@ -1,66 +0,0 @@ - -Check list for performance tuning (mainly gige) -=============================================== - -Author: Bela Ban, Eric - -For the transmit queue: - -$ /sbin/ifconfig [eth0|eth1] - -The txqueue size is currently 1000. - -To get the kernel queue size for incoming packets: - -$ sysctl -a | grep net.core.netdev_max_backlog - -For socket buffer info: - -$ sysctl -a | grep net.core - net.core.divert_version = 0.46 - net.core.hot_list_length = 128 - net.core.optmem_max = 10240 - net.core.message_burst = 50 - net.core.message_cost = 5 - net.core.mod_cong = 290 - net.core.lo_cong = 100 - net.core.no_cong = 20 - net.core.no_cong_thresh = 20 - net.core.netdev_max_backlog = 300 - net.core.dev_weight = 64 - -** these are the default and max sizes for socket buffer memory - -net.core.rmem_default = 65535 - net.core.wmem_default = 65535 - net.core.rmem_max = 131071 - net.core.wmem_max = 131071 - -Here are some other links: - -Squeeze Your Gigabit NIC for Top Performance -http://www.enterpriseitplanet.com/networking/features/article.php/3497796 - -How to achieve Gigabit speeds with Linux -http://datatag.web.cern.ch/datatag/howto/tcp.html - -Enabling High Performance Data Transfers -http://www.psc.edu/networking/projects/tcptune/ - - ->> #2 What's the MTU (do you use jumbo frames, or the regular 1500b) ? - - -In general, we have not tuned this environment. This needs to be -addressed as part of the QA Lab upgrades we're targeting for next -month. I'll be creating some Jira tasks and working with Ryan's -team on this, so we should discuss the network needs along with -other system relates topics (oracle tuning, etc.). - -Regular 1500 for now. We need to revisit this for some upcoming QA lab -updates were doing. If we need a dedicated GIGE switch for testing, -we need to get this in the budget (I think it's worth the 1.5k myself). -If we can't get a dedicated switch, we'll see if we can enable the -jumbo frames on the private side subnet (but this requires ALL connected -machines be gige w/ jumbo frame support - not an issue w/ the current -hw, but something to think about). diff --git a/doc/RELEASE_INSTRUCTIONS b/doc/RELEASE_INSTRUCTIONS deleted file mode 100644 index 98d63c38f6..0000000000 --- a/doc/RELEASE_INSTRUCTIONS +++ /dev/null @@ -1,41 +0,0 @@ - - Things to do before packaging a release - --------------------------------------- - -Pre-release: -- Do a git pull origin master and commit all pending changes -- Run all unit tests: ./build clean all-tests reports -- Run the manual tests in doc/tests/ManualTests.txt -- Run the performance tests to see whether performance is about the same - (see wiki http://wiki.jboss.org/wiki/Wiki.jsp?page=PerfTests) - - -Release: -- Update the ReleaseNotes-xxx.txt for the given release -- Set version in: Version.java, build.xml and pom.xml - * Note that the version needs to conform to the version standards, e.g. 2.6.2.GA or 2.6.4.CR2, 2.5.4.Beta1 -- Create a Git tag: JGroups_x_y_z -- Create a distribution: ./build.sh jar - - the distribution files are dist/jgroups-x.y.z.jar, dist/jgroups-sources.jar and dist/README -- Upload distribution files to web site: - - Go to http://sourceforge.net/projects/javagroups/files/ (requires admin) -- Create PDF and HTML documentation: ./build.sh docs and upload to web site - - these files update the JGroups web page (http://www.jgroups.org/javagroupsnew/docs/index.html), - specifically the links to manual and tutorial documentation - - see JGroups/bin/upload_manual.sh -- Create javadoc: ./build.sh javadoc and upload to web site - - use process similar to pdf and html (script is bin/upload_javadocs.sh) -- Add new release binary jar *and* source jar to Nexus maven repository (http://repository.jboss.org/nexus) - a. Run ./bin/release_to_nexus.sh (you need access permissions to Nexus) - b. Go to Nexus: https://repository.jboss.org/nexus - c. Log in (jboss.org login) - d. Click on Staging repositories in the left hand pane - e. Right click on the uploaded artifacts (JAR and src JAR) and either drop or promote them. In case of promotion, - the artifacts will be promoted to the jboss-releases repository and removed from the staging repo -- Announcement to the jg-dev and jg-users mailing lists - -include release notes and changelog - - - NOTE: to perform these steps, you will need a SourceForge account and appropriate - permissions. - diff --git a/doc/RULES b/doc/RULES deleted file mode 100644 index ab880283ac..0000000000 --- a/doc/RULES +++ /dev/null @@ -1,58 +0,0 @@ - - - Rules developers should adhere to - --------------------------------- - - - -- The decision when to move a version number is taken by the project - administrator (currently bela). Just drop me an email if you want to - increment a minor version number and I'll ok it. This prevents - multiple developers from incrementing the same version number. With - minor relases this is usually not a big deal and I'll do it - immediately. - -- Do not modify core functionality (e.g. Protocol, GMS, FC, UNICAST, NAKACK, STABLE, CoordGmsImpl etc) - before consulting with one of the project administrators. - -- New tarballs are done by the project administrator. I may delegate - this in the future (to a number of people), but I decide when to add - a new tarball to the download section. - -- Don't use any functionality found in JDKs higher than the one - JGroups is currently using - -- Don't use any functionality not found in the reference JDK - (e.g. from Microsoft's proprietary JDK implementation) - -- There are NO restrictions with respect to programming style. Just be - coherent. SUN advocates use of fooBar() method style. - -- If you modify a file 'owned' by someone else, try to adhere to - his/her style. Don't try to impose your style on that - person. Ownership is basically who created the file. Once you obtain - the ownership you can change the file if you want to. - -- Try to write test drivers for your module(s) and add them to - JGroups/tests. We use TestNG (www.testng.org) for regression - testing. It is pretty simple to add a new test to the directory, - e.g. by just copying an existing test driver and modifying it. - -- Add the Id identifier to the top of all your - files ( is a $, it cannot be written out otherwise it - would get expanded by the CVS) - -- Use spaces instead of tabs, or make your IDE expand tabs to - spaces. In Emacs this can be done via the following code: - (setq-default indent-tabs-mode nil) - - - - -Bela Ban (bela@yahoo.com) -San Jose, March 13 2001 - Dec 11 2002 - April 5 2004 - - - diff --git a/doc/structure.txt b/doc/structure.txt deleted file mode 100644 index 6e7077037d..0000000000 --- a/doc/structure.txt +++ /dev/null @@ -1,41 +0,0 @@ - - Outline of the new structure of JGroups - ------------------------------------------ - - - - -/ Readme files, credits, quick installation -/bin Executable files, e.g. scripts to run a demo -/build ANT-based build system (contains build.xml). Produces - files in /dist -/classes Classes generates by the build process (either ANT - or makefiles) -/conf JGroups sample configuration files, - e.g. JGroups.properties -/dist JAR files generated by the build process - (e.g. JGroups.jar), documentation (e.g. UsersGuide, - ProgrammersGuide and Javadoc) -/doc/ Documentation - images Images used by both UG and PG - javadoc Generated Javadoc documentation. [Move to dist ?] - progguide Programmers Guide (in DocBook format) - usersguide Users Guide (in DocBook format). Common files - (e.g. style sheets) are stored in a directory directly - under /doc (similar to images) -/lib 3rd party libraries (e.g. JUnit, JAXP) -/src/ The source code for JGroups - jgroups/ Top level public files, e.g. Channel, Message etc - blocks Building blocks - debug Debugging functionality - demos All the demos - jmx/ The JMX instrumentation code - protocols/ The main protocol branch (including virtual synchrony) - pbcast The PBCAST protocol branch - stack Functionality related to the protocol stack - tests JUnit unit (and other) tests - util Utility classes - - - -