summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Cluster.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-2266: error sending update: Enqueue capacity threshold exceededAlan Conway2009-12-111-0/+2
| | | | | | | | | 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/qpid@889813 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2253 - Cluster node shuts down with inconsistent error.Alan Conway2009-12-091-5/+4
| | | | | | | | | | Add a missing memberUpdate on the transition to CATCHUP mode. The inconsistent error was caused because the newly updated member did not have its membership updated and so was missing an failover update message that the existing members sent to a new client. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@888874 13f79535-47bb-0310-9956-ffa450edef68
* Cluster consistency: check for no clean store condition.Alan Conway2009-11-261-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@884612 13f79535-47bb-0310-9956-ffa450edef68
* Consistency checks for persistent cluster startup.Alan Conway2009-11-251-21/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@884226 13f79535-47bb-0310-9956-ffa450edef68
* Verify stored cluster-id matches agreed cluster-id when joining a persistent ↵Alan Conway2009-11-241-20/+28
| | | | | | cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@883910 13f79535-47bb-0310-9956-ffa450edef68
* Support for restarting a persistent cluster.Alan Conway2009-11-241-35/+101
| | | | | | | | | | | 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/qpid@883842 13f79535-47bb-0310-9956-ffa450edef68
* Added cluster option --cluster-size.Alan Conway2009-11-181-5/+4
| | | | | | | | --cluster-size=N means that during start-up the cluster waits to have N members before accepting any clients. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881839 13f79535-47bb-0310-9956-ffa450edef68
* Integrated InitialStatusMap into cluster code.Alan Conway2009-11-171-47/+71
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881423 13f79535-47bb-0310-9956-ffa450edef68
* cluster::InitialStatusMap and unit tests, support for improved cluster join ↵Alan Conway2009-11-171-3/+14
| | | | | | protocol. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881420 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1899: Applied patch from Ken Giusti to tie in SASL enctryption to the ↵Gordon Sim2009-11-091-4/+17
| | | | | | handling of the --require-encrypted option git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834108 13f79535-47bb-0310-9956-ffa450edef68
* Reduce redundancy in cluster log output.Alan Conway2009-10-281-5/+1
| | | | | | | start_cluster: Use PID in cluster name to avoid name clashes with multiple tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@830696 13f79535-47bb-0310-9956-ffa450edef68
* Cluster shuts down broker via SignalHandler to fix memory errors on exit.Alan Conway2009-10-081-1/+2
| | | | | | | | The SignalHandler holds a global reference to the broker which needs to be reset otherwise there are problems when the broker by a global destructor. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@823258 13f79535-47bb-0310-9956-ffa450edef68
* Removed LatencyTracker from cluster.Alan Conway2009-10-011-16/+3
| | | | | | | 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/qpid@820796 13f79535-47bb-0310-9956-ffa450edef68
* Set cluster version number from SVN revision.Alan Conway2009-10-011-2/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@820788 13f79535-47bb-0310-9956-ffa450edef68
* Revert "Batch multiple events into a single CPG multicast."Alan Conway2009-08-141-5/+3
| | | | | | | This reverts svn revision 803713: Batch multiple events into a single CPG multicast. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@804206 13f79535-47bb-0310-9956-ffa450edef68
* Batch multiple events into a single CPG multicast.Alan Conway2009-08-121-3/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@803713 13f79535-47bb-0310-9956-ffa450edef68
* Fix cman integration to exit immediately on loss of quorum.Alan Conway2009-08-061-16/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@801740 13f79535-47bb-0310-9956-ffa450edef68
* Fixes for cluster code to compile with new stricter corosync header filesAndrew Stitcher2009-08-041-6/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@800921 13f79535-47bb-0310-9956-ffa450edef68
* Fix race condition in cluster error handling.Alan Conway2009-07-311-12/+9
| | | | | | | | | If different errors occured almost simultaneously on two different nodes in a cluster, there was a race condition that could cause the cluster to hang. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799687 13f79535-47bb-0310-9956-ffa450edef68
* Provide more informative cluster logging at notice levelAlan Conway2009-07-291-19/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799124 13f79535-47bb-0310-9956-ffa450edef68
* Minor cluster optimizations.Alan Conway2009-07-141-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793917 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-7/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster handling of multiple errors.Alan Conway2009-07-101-1/+2
| | | | | | | | | | If an error occured while there were frames on the error queue from a previous error, the enqueued frames were not being processed for the new error, which could lead to error-check or config-change frames being missed. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792991 13f79535-47bb-0310-9956-ffa450edef68
* Minor improvement to cluster logging.Alan Conway2009-07-091-3/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792677 13f79535-47bb-0310-9956-ffa450edef68
* Fix members joining cluster while cluster is handling client errors.Alan Conway2009-07-011-27/+52
| | | | | | | Completes the previous incomplete fix in r790163. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@790397 13f79535-47bb-0310-9956-ffa450edef68
* Fix members joining cluster while cluster is handling client errors.Alan Conway2009-07-011-21/+88
| | | | | | | | | | | 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/qpid@790163 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster race condition with connections closed by broker while in use.Alan Conway2009-06-301-11/+33
| | | | | | | | | | | | | | | | If a client is using a connection that is closed at the broker end because of an error, there is a race condition that allows the connection to be incorrectly re-created on replica brokers which can cause those brokers to exit with an error that does not occur on the directly connected broker. The fix: explicitly announce new connections, shadow connections are no longer implicitly created on first use. Make error-check a cluster control so it can be handled independently of the lifecycle of the connection where an error initially occured. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@789947 13f79535-47bb-0310-9956-ffa450edef68
* Make error-check a cluster-connection control rather than a cluster control.Alan Conway2009-06-181-15/+2
| | | | | | | | | Fixes bug if an error occurs during update. As cluster controls, error-checks were being processed out of sequence with the connection data they referred to. Making them connection controls ensures they are processed in the proper order. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@786294 13f79535-47bb-0310-9956-ffa450edef68
* Handle invalid AMPQ data to a cluster by closing the offending connection.Alan Conway2009-06-171-2/+12
| | | | | | | Prior to this fix, invalid data shut down the whole cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@785788 13f79535-47bb-0310-9956-ffa450edef68
* Performance improvements in AggregateOutput and SemanticState.Alan Conway2009-06-161-3/+6
| | | | | | | | | | | | | | Replaced AggregateOutput hierarchy with a flat list per connection holding only the OutputTasks that are potentially active. Tasks are droped from the list as soon as they return false, and added back when they may have output. Inlined frequently-used SequenceNumber functions. Replace std::list in QueueListeners with std::vector. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@785408 13f79535-47bb-0310-9956-ffa450edef68
* Added missing locks in cluster code.Alan Conway2009-05-271-3/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@779235 13f79535-47bb-0310-9956-ffa450edef68
* Add missing null body check in ErrorCheckAlan Conway2009-05-201-5/+11
| | | | | | | | Make error checking optional. This is temporary until all issues with it are worked out. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@776799 13f79535-47bb-0310-9956-ffa450edef68
* Instrumentation for measuring latencies.Alan Conway2009-05-191-6/+15
| | | | | | | Compiled out of normal builds, enable with -DQPID_LATENCY_TRACKER. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@776463 13f79535-47bb-0310-9956-ffa450edef68
* Undo change from r774809.Alan Conway2009-05-151-63/+3
| | | | | | | | | | This fix is incorrect. The timer will go off in each member, and each one will send a response message which is replicated, resulting in a response from each member being enqueued rather than a single response. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@775182 13f79535-47bb-0310-9956-ffa450edef68
* Fix for unpredictable enqueues by timer-triggered management code in a cluster.Alan Conway2009-05-141-3/+131
| | | | | | | | | ManagementAgent uses Broker::getClusterMessageHandler() (if non-0) to enqueue timer-triggered messages. Cluster provides handler that enqueues via cluster multicast. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@774809 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1843 - Cleaned up the interface to the broker's internal management agent.Ted Ross2009-05-111-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@773570 13f79535-47bb-0310-9956-ffa450edef68
* Fix leak of Decoder map entries.Alan Conway2009-05-111-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@773552 13f79535-47bb-0310-9956-ffa450edef68
* Remove useless qpid/shared_ptr.h wrapper.Alan Conway2009-05-061-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772294 13f79535-47bb-0310-9956-ffa450edef68
* LatenchTracker: a tool for measuring latencies.Alan Conway2009-05-041-7/+14
| | | | | | | Added measurement points to cluster code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@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/qpid@769914 13f79535-47bb-0310-9956-ffa450edef68
* Cleaned up some un-necessary #include dependencies.Alan Conway2009-04-151-3/+0
| | | | | | | Removed un-used LatencyMetric hack. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@765285 13f79535-47bb-0310-9956-ffa450edef68
* Fix regression: close shadow connections belonging to brokers that have left ↵Alan Conway2009-04-141-2/+2
| | | | | | the cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@764783 13f79535-47bb-0310-9956-ffa450edef68
* Fix issues when cluster is run with persistence enabled.Alan Conway2009-04-111-11/+47
| | | | | | | | | | - 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/qpid@764204 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: fix exception handling if updater fails to connect to updatee.Alan Conway2009-04-061-7/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@762370 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster TTL: replicte expiry information to newcomers.Alan Conway2009-03-091-8/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751760 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1721: Fixes for replication between clusters when new members are addedGordon Sim2009-03-091-1/+3
| | | | | | | | | | * suppress event generation during node catch up * ensure sequence counters used for duplicate detection are synchronised in both primary and dr clusters when new members join * connect queue with the event manager within queue registry rather than adapter as the latter path is not used for catchup git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751719 13f79535-47bb-0310-9956-ffa450edef68
* Fixed race conditions in cluster.Alan Conway2009-03-081-78/+100
| | | | | | | | Execute all cluster logic in frameDeliverQueue thread, decoding only in eventDeliverQueue thread. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751557 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: restore separate event/frame threads.Alan Conway2009-03-051-48/+39
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750574 13f79535-47bb-0310-9956-ffa450edef68
* cluster: fix delivery-property.exchange-name set on updated messages.Alan Conway2009-03-051-21/+40
| | | | | | | | | 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/qpid@750456 13f79535-47bb-0310-9956-ffa450edef68
* Replicate connection decoder fragments to new members.Alan Conway2009-03-021-60/+78
| | | | | | | | | | | | 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/qpid@749473 13f79535-47bb-0310-9956-ffa450edef68