summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/cluster.mk
Commit message (Collapse)AuthorAgeFilesLines
* Fix version infoAlan Conway2010-06-181-4/+2
| | | | | | | | - no version info for modules - no $(PLUGINLDFLAGS) on libqmfconsole, typo in previous merge. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956001 13f79535-47bb-0310-9956-ffa450edef68
* Allow libraries to be independently versioned in the autotools build.Alan Conway2010-06-171-2/+4
| | | | | | | | Each library libfoo or plugin foo has a variable FOO_VERSION_INFO with a value passed as -version-info to libtool. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955672 13f79535-47bb-0310-9956-ffa450edef68
* Cluster + SecurityMichael Goulish2010-05-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------- * initial observation of a problem was a 2% failure rate in perftests of 20,000 messages against a cluster with security enabled. Problem was occasional receit of encrypted frames before the security codec had been enabled. This is fixed with locking in cluster code (no new locks in broker code) and a callback that is fired by broker::ConnectionHandler::Handler to tell the cluster code when the opening handshake has finished. This was never a problem in the non-clustered broker before because everything happened in a single thread. * the brokers that "shadow" the connection must not have null authenticators rather than real ones, so that they go through all the motions but don't do anythig. Only the directly-connected broker can perform the security handshake. * once the directly-connected broker receives the real user ID from its callback, it mcasts that ID to all other brokers. Otherwise the shadowing brokers will al think that the user ID is "anonymous". Check this by doing a substantial perftest, and using qpid-stat -c localhost:PORT to confirm that the brokers all have the same userID for the same connection. * the user ID, negotiated during the Sasl security startup, is communicated from the directly connected broker to all other cluster brokers. * If security is *not* being used, then this code should *not* tell the brokers anything about the userID -- or it will step on the value that is being set by other code pathways. * test program at cpp/src/tests/cluster_authentication_soak is not yet fully automated -- run it with something like "sudo ./cluster_authentication_soak 500" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@944158 13f79535-47bb-0310-9956-ffa450edef68
* Replace PeriodicTimer with ClusterTimer, which inherits from Timer.Alan Conway2010-01-291-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@904656 13f79535-47bb-0310-9956-ffa450edef68
* Cluster implementation of PeriodicTimer.Alan Conway2010-01-271-0/+2
| | | | | | | | | The cluster implementation multicast periodic-timer controls and executes the task when those controls are delivered, which is in the cluster delivery thread context and so consistent across the cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@903867 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2266: error sending update: Enqueue capacity threshold exceededAlan Conway2009-12-111-0/+1
| | | | | | | | | Fix for the problem with a test to verify that messages going to the store have the same headers and content-size for an updatee or a broker that receives the publish directly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@889813 13f79535-47bb-0310-9956-ffa450edef68
* Support for restarting a persistent cluster.Alan Conway2009-11-241-1/+3
| | | | | | | | | | | Option --cluster-size=N: members wait for N members before recovering store. Stores marked as clean/dirty. Automatically recover from clean store on restart. Stores marked with UUID to detect errors. Not yet implemented: consistency checks, manual recovery from all dirty stores. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@883842 13f79535-47bb-0310-9956-ffa450edef68
* Integrated InitialStatusMap into cluster code.Alan Conway2009-11-171-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@881423 13f79535-47bb-0310-9956-ffa450edef68
* cluster::InitialStatusMap and unit tests, support for improved cluster join ↵Alan Conway2009-11-171-0/+2
| | | | | | protocol. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@881420 13f79535-47bb-0310-9956-ffa450edef68
* Removed LatencyTracker from cluster.Alan Conway2009-10-011-2/+1
| | | | | | | Turned out not to be very useful. Better to use profiling tools like systemtap. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@820796 13f79535-47bb-0310-9956-ffa450edef68
* Watchdog feature to remove unresponsive cluster nodes.Alan Conway2009-08-101-0/+9
| | | | | | | | | | | | | | | | | In some intstances (e.g. while resolving an error) it's possible for a hung process to hang the entire cluster as they wait for its response. The cluster can handle terminated processes but hung processes present a problem. If the watchdog plugin is loaded and --watchdog-interval is set then the broker forks a child process that runs a very simple watchdog program, and starts a timer in the broker process to signal the watchdog every interval/2 seconds. The watchdog kills its parent if it does not receive a signal for interval seconds. This allows a stuck broker to be removed from the cluster so other cluster members can continue. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@802927 13f79535-47bb-0310-9956-ffa450edef68
* Fixes for make distcheckGordon Sim2009-07-201-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@795743 13f79535-47bb-0310-9956-ffa450edef68
* Fix members joining cluster while cluster is handling client errors.Alan Conway2009-07-011-0/+2
| | | | | | | | | | | Previously cluster members could abort if a new member joins while existing members are handling a client error. Now if an update offer arrives while an error is in progress, the offering broker retracts the offer and the newcomer must try again. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@790163 13f79535-47bb-0310-9956-ffa450edef68
* Fixes to get qpid to build with gcc4.4 with optimisationAndrew Stitcher2009-05-281-0/+1
| | | | | | | Fix for non thread safe use of inet_ntoa(). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@779757 13f79535-47bb-0310-9956-ffa450edef68
* LatenchTracker: a tool for measuring latencies.Alan Conway2009-05-041-1/+2
| | | | | | | Added measurement points to cluster code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@771392 13f79535-47bb-0310-9956-ffa450edef68
* Improved & simplified cluster output algorithm.Alan Conway2009-04-291-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@769914 13f79535-47bb-0310-9956-ffa450edef68
* src/cluster.mk: removed non-existent file.Alan Conway2009-04-141-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@764813 13f79535-47bb-0310-9956-ffa450edef68
* Fix issues when cluster is run with persistence enabled.Alan Conway2009-04-111-0/+3
| | | | | | | | | | - Handle partial failures (e.g. due to disk error): failing brokers shut down, others continue. - Enable persistence in cluster tests. - Correct message status in DeliveryRecord updates. - Remove qpid.update queue when update complete - avoid it becoming persistent git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@764204 13f79535-47bb-0310-9956-ffa450edef68
* Fixed race conditions in cluster.Alan Conway2009-03-081-2/+3
| | | | | | | | Execute all cluster logic in frameDeliverQueue thread, decoding only in eventDeliverQueue thread. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@751557 13f79535-47bb-0310-9956-ffa450edef68
* cluster: fix delivery-property.exchange-name set on updated messages.Alan Conway2009-03-051-0/+1
| | | | | | | | | Logging improvements, useful for debugging: - qpid/SessionState.cpp: show frame bodies with command IDs. - assign cluster-wide id number to each Event. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@750456 13f79535-47bb-0310-9956-ffa450edef68
* Replicate connection decoder fragments to new members.Alan Conway2009-03-021-4/+0
| | | | | | | | | | | | Refactoring: - Merge Decoder into ConnectionMap. - Process cluster controls in event queue thread. - Use counter not pointer for connection ID, avoid re-use. - Do all processing in event queue thread to avoid races (temporary pending performance measurements) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@749473 13f79535-47bb-0310-9956-ffa450edef68
* Fix header name in sources.Gordon Sim2009-02-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@747721 13f79535-47bb-0310-9956-ffa450edef68
* Fixed issue with producer flow control in a cluster.Alan Conway2009-02-241-0/+1
| | | | | | | | | | | | | | | | | | Producer flow control uses a Timer and other clock-based calculations to send flow control commands. These commands are not predictably ordered from the clusters point of view. Added getClusterOrderProxy() to SessionState. In a cluster it returns a proxy that defers sending a command to the client until it is multicast to the cluster. In a stand alone broker it is just the normal proxy. Updated producer flow control to use this proxy. Cluster flow control is turned off in shadow connections. Only the directly connected node does flow control calculations and multicasts the commands to send. All nodes sending of the commands thru SessionState to ensure consistent session state (e.g. command numbering.) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@747528 13f79535-47bb-0310-9956-ffa450edef68
* Cluster security support:Alan Conway2009-02-121-0/+1
| | | | | | | | - Set correct user ID on update connections. - Allow configuration of user, pass and mechanism used for update connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@743839 13f79535-47bb-0310-9956-ffa450edef68
* Remove unused class and clean up some FIXME comments.Alan Conway2009-02-101-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@743131 13f79535-47bb-0310-9956-ffa450edef68
* Cluster support for message time-to-live.Alan Conway2009-02-091-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@742774 13f79535-47bb-0310-9956-ffa450edef68
* Remove non-existent qpid/cluster/Updatee.h from cluster.mk.Alan Conway2009-02-051-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@741135 13f79535-47bb-0310-9956-ffa450edef68
* Fix for race conditions in cluster join.Alan Conway2009-02-031-1/+7
| | | | | | | | | - ConnectionDecoder: separated from Connection. - cluster/PollableQueue: stop processing frames if PollableQueue is stopped. - move state checks in event-queue handler to frame-queue handler. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@740459 13f79535-47bb-0310-9956-ffa450edef68
* cluster/EventFrame.cpp: Add operator<< for EventFrameAlan Conway2009-01-271-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@738107 13f79535-47bb-0310-9956-ffa450edef68
* Cluster rename: dump -> update, newbie -> joinerAlan Conway2009-01-271-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@737971 13f79535-47bb-0310-9956-ffa450edef68
* cluster: Add sequence number to events & framesAlan Conway2009-01-271-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@737968 13f79535-47bb-0310-9956-ffa450edef68
* cluster: Pipeline decoding. About 10% improvement in latency and throughput.Alan Conway2009-01-211-10/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@736409 13f79535-47bb-0310-9956-ffa450edef68
* cluster refactor: separate out dispatch strategy, implement poller and ↵Alan Conway2009-01-161-22/+26
| | | | | | thread dispatch. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@735151 13f79535-47bb-0310-9956-ffa450edef68
* Added ASF license to makefilesGordon Sim2008-12-151-0/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@726710 13f79535-47bb-0310-9956-ffa450edef68
* cluster: refactor multicast concerns into separate Multicaster class with ↵Alan Conway2008-12-111-0/+3
| | | | | | separate locking. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@725853 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: separated connection map lock to reduce contention.Alan Conway2008-12-081-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@724371 13f79535-47bb-0310-9956-ffa450edef68
* Add missing DIST rules.Alan Conway2008-11-201-3/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@719400 13f79535-47bb-0310-9956-ffa450edef68
* Optional cluster integration with cman quorum service.Alan Conway2008-11-181-5/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@718693 13f79535-47bb-0310-9956-ffa450edef68
* Remove all cluster targets if configured --without-cpg.Alan Conway2008-11-141-3/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@714112 13f79535-47bb-0310-9956-ffa450edef68
* Remove dummy cluster.so library, no longer needed & confusing.Alan Conway2008-11-141-4/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@714051 13f79535-47bb-0310-9956-ffa450edef68
* broker: Fixed incorrect pass-by-reference of Queue::shared_ptr in several files.Alan Conway2008-10-071-1/+3
| | | | | | | | cluster: added FailoverExchange - send cluster membership to clients. client: added FailoverListener - receive cluster updates from failover exchange. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@702552 13f79535-47bb-0310-9956-ffa450edef68
* Cluster join & brain-dumps working.Alan Conway2008-10-031-7/+1
| | | | | | | | | cluster: improved join protocol, fixed race conditions. client/ConnectionHandler,ConnectionImpl: fixed connection close race causing client hang. src/qpid/sys/PollableQueue.h: fixed incorrect use of startWatch/stopWatch. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@701532 13f79535-47bb-0310-9956-ffa450edef68
* Refactor Cluster logic into separate handlers for Joining & Member modes.Alan Conway2008-09-181-1/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@696657 13f79535-47bb-0310-9956-ffa450edef68
* Added ClusterMap and test. Moved PollableCondition, PollableQueue to sys.Alan Conway2008-09-121-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@694758 13f79535-47bb-0310-9956-ffa450edef68
* Moved PollableCondition, PollableQueue and to sys. Fixed cluster shutdown ↵Alan Conway2008-09-111-3/+0
| | | | | | | | | | | | | | issues. sys/PollableCondition: is a generic mechansim to poll for non-IO events in the Poller. sys/PollableQueue: is a thread-safe queue template that can be dispatched from the Poller when there are items on the queue. It uses PollableCondition. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@694243 13f79535-47bb-0310-9956-ffa450edef68
* Refactored c++ client library to allow multiple protocols to beAndrew Stitcher2008-09-111-4/+6
| | | | | | | | | | | | | | | used simultaneously: - Added in capability for client library plugins: Client library will load in plugin modules from the client library module directory on library load. - Add protocol option into the standard client command line options - Split plugin module load area into daemon and client; default daemon module directory is now <libdir>/qpid/daemon, default client module directory is <libdir>/qpid/client. - Changed names of plugins to leave out libqpid prefix git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@694113 13f79535-47bb-0310-9956-ffa450edef68
* Cluster support for copying shared broker state to new members.Alan Conway2008-09-101-2/+4
| | | | | | | | | | | | cluster/DumpClient: Copies broker shared state to a new broker via AMQP. broker/*Registry, Queue, QueueBindings: Added iteration functions for DumpClient broker/SemanticState.cpp: Allow DumpClient to sidestep setting of delivery-properties.exchange. client/Connection.h: Added Connection::open(Url) overload. client/SessionImpl: Added send(AMQBody, FrameSet) overload for forwarding broker messages. tests/cluster_test.cpp: Added test for DumpClient copying shared state between brokers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@693918 13f79535-47bb-0310-9956-ffa450edef68
* Fixed cluster membership notification.Alan Conway2008-09-051-1/+3
| | | | | | | | | Cluster events with RefCountedBuffers for queueing. PollableQueue clears bacth immediately. Improved perfdist: clients hit multiple brokers in a cluster. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@692521 13f79535-47bb-0310-9956-ffa450edef68
* Refactored cluster to intercept at ConnectionCode, using sys:: interfaces ↵Alan Conway2008-08-291-6/+8
| | | | | | | | | rather than boost functions. Use framing::Operations and Invoker to dispatch cluster methods. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@690358 13f79535-47bb-0310-9956-ffa450edef68
* Pre-buffering output strategy for cluster.Alan Conway2008-08-211-1/+5
| | | | | | | Additional hooks in broker code, should not affect standalone broker. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@687813 13f79535-47bb-0310-9956-ffa450edef68