summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster
Commit message (Collapse)AuthorAgeFilesLines
* Merged out from trunkQPID-2519Stephen D. Huston2011-10-2128-417/+696
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1187375 13f79535-47bb-0310-9956-ffa450edef68
* Undo bad merge from trunk - merged at wrong level.Stephen D. Huston2011-10-2128-696/+417
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1187150 13f79535-47bb-0310-9956-ffa450edef68
* Merge trunk to QPID-2519 branchStephen D. Huston2011-10-2028-417/+696
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1186990 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3002: Configurable threshold alerts for queuesGordon Sim2011-02-151-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1070913 13f79535-47bb-0310-9956-ffa450edef68
* QPID-529: Priority queue implementationGordon Sim2011-02-103-0/+14
| | | | | | | | | | QPID-2104: LVQ enhancement These both required some refactoring of the Queue class to allow cleaner implementation of different types of behaviour. The in-memory storage of messages is now abstracted out behind an interface specified by qpid::broker::Messages which qpid::broker::Queue uses. Different implementations of that are available for the standard FIFO queue, priority queues and LVQ (I have also separated out the 'legacy' implementation of LVQ from the new version driven by QPID-2104). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1069322 13f79535-47bb-0310-9956-ffa450edef68
* Added design note comment to qpid/cpp/src/qpid/cluster/ClusterTimer.cppAlan Conway2011-02-091-1/+20
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1069029 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3007: Don't hold on to consumer shared-pointers in ↵Alan Conway2011-02-012-5/+4
| | | | | | | | | | | | UpdateClient::consumerNumbering Holding shared pointers in UpdateClient::consumerNumbering can hold consumers in memory and delete them out of sync with other cluster members. Made it hold plain pointers instead since we don't actually need to ensure object liveness, we're just doing an address/number correspondence. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1066217 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2982 Bug 669452 - Creating a route and using management tools can crash ↵Alan Conway2011-01-185-6/+63
| | | | | | | | | | | | cluster members. Cluster update did not include federation link and bridge objects. Fixed update to include them. Management linkUp and linkDown events were generated only on the broker receiving the link. Suppressed these events in a cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1060568 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2982: Fix discrepancy in management object and deleted object counts.Alan Conway2011-01-131-2/+1
| | | | | | | | | | | | | | | cluster_tests.test_management was showing discrepancy in management object and deleted object count after a new member update. In ManagementAgent.cpp, code to move deleted objects into pendingDeletedObjs was duplicated in 2 places. Moved duplicated code into a function moveDeletedObjectsLH() Call moveDeletedObjectsLH from clusterUpdate to correct discrepancy in object count around update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1058664 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2982: Improved cluster/management logging and automated test for log ↵Alan Conway2011-01-075-37/+54
| | | | | | | | | | | consistency. The cluster_tests.py test_management test is augmented to compare broker logs after the test completes. Any inconsistency in the logs causes the test to fail. This check is currently disabled as it is failing due to known issues. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1056378 13f79535-47bb-0310-9956-ffa450edef68
* Bug 662765 - Management broker ID should be the same for members of a cluster.Alan Conway2010-12-154-20/+24
| | | | | | | Replicate management UUID and name to members of a cluster. See https://bugzilla.redhat.com/show_bug.cgi?id=662765. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1049566 13f79535-47bb-0310-9956-ffa450edef68
* Defer update of managaement agent to end of update process.Alan Conway2010-12-085-45/+36
| | | | | | | | | | | Move updating of the management agent to the very end of the update process, after all objects used by the update process itself have been deleted. Before the fix deletions from the update process itself (deleting the qpid.cluster-update queue and its binding to the default exchange) were sporadically appearing as extra delete messages on the updatees management agent and causing inconsistency. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1043621 13f79535-47bb-0310-9956-ffa450edef68
* Modified cluster_tests causes broker shut down with invalid-argument error.Alan Conway2010-12-016-29/+221
| | | | | | | | | | Described in https://bugzilla.redhat.com/show_bug.cgi?id=655078. The management agent's deleted-object list was not being replicated to new members joining the cluster, so management generated fewer deleted object notifications on the newer member, causing it to fail with an invalid-argument error. The list is now being replicated correctly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1041181 13f79535-47bb-0310-9956-ffa450edef68
* Enable cluster-safe assertions on transition to CATCHUPAlan Conway2010-12-011-2/+4
| | | | | | | | | Delaying until READY was causing multiple clientConnect management events to be raised, because broker::Connection::setUserId relies on sys::isCluster to avoid producing duplicate events with cluster::Connection::announce git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1041179 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2956: cluster broker exits with "error deliveryRecord no update message."Alan Conway2010-11-222-9/+14
| | | | | | | | | The following sequence of events was causing a broker joining the cluster to shutdown: - a client acquires or browses a message with TTL set. - the message expires. - a new broker joins before the client has acknowledged the message. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1037763 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2874 Clustered broker crashes in assertion in cluster/ExpiryPolicy.cppAlan Conway2010-11-182-11/+51
| | | | | | | | | | | | | | - Added missing lock to ExpiryPolicy - 1-N mapping for expiry ID to mapping when receiving an update. - Regression test. A fan-out message (sent to multiple queues e.g. by fanout or topic exchange) is a single message on multiple queues with a single expiry ID. During an update however each instance is sent as a separate message so we need to allow 1-N mapping of expiry ID to message during update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1036589 13f79535-47bb-0310-9956-ffa450edef68
* cluster/Numbering.h: Removed unused and incorrect function contains()Alan Conway2010-11-171-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1036214 13f79535-47bb-0310-9956-ffa450edef68
* Moved new cluster design docs into cpp/design.Alan Conway2010-11-013-932/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1029671 13f79535-47bb-0310-9956-ffa450edef68
* Updates to new cluster design docs.Alan Conway2010-11-012-108/+113
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1029670 13f79535-47bb-0310-9956-ffa450edef68
* Updates to new cluster design.Alan Conway2010-10-271-3/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1028082 13f79535-47bb-0310-9956-ffa450edef68
* Revert experimental cluster code, too close to 0.8 release.Alan Conway2010-10-2714-903/+3
| | | | | | | | | Reverts revisions: r1023966 "Introduce broker::Cluster interface." r1024275 "Fix compile error: outline set/getCluster fucntions on Broker." r1027210 "New cluster: core framework and initial implementation of enqueue logic." git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1028055 13f79535-47bb-0310-9956-ffa450edef68
* Updates to new cluster design.Alan Conway2010-10-273-1/+19
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1028006 13f79535-47bb-0310-9956-ffa450edef68
* Add missing Apache licences to cluster files.Alan Conway2010-10-263-1/+53
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1027749 13f79535-47bb-0310-9956-ffa450edef68
* Updates to new cluster design docs regarding active-passive mode.Alan Conway2010-10-263-3/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1027714 13f79535-47bb-0310-9956-ffa450edef68
* Initial design document on implementing active/passive clustering.Alan Conway2010-10-251-0/+39
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1027211 13f79535-47bb-0310-9956-ffa450edef68
* New cluster: core framework and initial implementation of enqueue logic.Alan Conway2010-10-2516-25/+920
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1027210 13f79535-47bb-0310-9956-ffa450edef68
* Introduce broker::Cluster interface.Alan Conway2010-10-182-0/+442
| | | | | | | | | See cpp/src/qpid/cluster/new-cluster-design.txt and new-cluster-plan.txt. qpid/cpp/src/tests/BrokerClusterCalls.cpp is a unit test that verifies the broker makes the expected calls on broker::Cluster in various situations. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1023966 13f79535-47bb-0310-9956-ffa450edef68
* Code cleanup in broker directory.Alan Conway2010-10-141-5/+5
| | | | | | | | - Removed un-necessary #includes for broker/Queue.h - Removed "using std::string" in header files. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1022679 13f79535-47bb-0310-9956-ffa450edef68
* Registers the amq.failover exchange in the management exchange.Jonathan Robie2010-10-083-11/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1005908 13f79535-47bb-0310-9956-ffa450edef68
* Update new cluster design: no longer planning to use MessageStore interface.Alan Conway2010-10-071-36/+26
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1005472 13f79535-47bb-0310-9956-ffa450edef68
* new-cluster-design.txt: added note on async replication.Alan Conway2010-09-281-6/+21
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1002171 13f79535-47bb-0310-9956-ffa450edef68
* Update new-cluster-design.txt, clarifications & notes.Alan Conway2010-09-241-13/+19
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1001052 13f79535-47bb-0310-9956-ffa450edef68
* Update new-cluster-design.txt: improvements to new members joining cluster.Alan Conway2010-09-241-3/+82
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1001022 13f79535-47bb-0310-9956-ffa450edef68
* Design note on proposed new cluster design.Alan Conway2010-09-221-0/+277
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1000234 13f79535-47bb-0310-9956-ffa450edef68
* Break deadlock caused when ClusterTimer::drop is called concurrently with ↵Alan Conway2010-09-091-1/+0
| | | | | | Timer::add. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995426 13f79535-47bb-0310-9956-ffa450edef68
* Give timer tasks a name for logging purposes.Alan Conway2010-08-262-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@989925 13f79535-47bb-0310-9956-ffa450edef68
* Check for and abort invalid catchup connections.Alan Conway2010-08-234-3/+14
| | | | | | | Detect attempt to make a catch-up connection while we are not expecting an update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@988312 13f79535-47bb-0310-9956-ffa450edef68
* Fixed memory management error in cluster::Quorum causing problems with ↵Alan Conway2010-08-092-4/+5
| | | | | | | | | | --cluster-cman. Sometimes caused brokers using --cluster-cman to fail with a "no permission" or "bad file-descriptor" error. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@983786 13f79535-47bb-0310-9956-ffa450edef68
* Fix crash on exit with --cluster-cman.Alan Conway2010-08-051-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@982698 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2702 --max-connections does not work when using cluster.Alan Conway2010-07-231-2/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@967215 13f79535-47bb-0310-9956-ffa450edef68
* Race condition in cluster+management, inconsistent errors like:Alan Conway2010-07-232-23/+46
| | | | | | | | | | | | "confirmed < (2097+0) but only sent < (2096+0)" Management messages are generated if a managed objects properties have changed since the last update. Properties of the cluster object (members and status) were sometimes being changed outside the delivery context which could create inconsistencies in the cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@966933 13f79535-47bb-0310-9956-ffa450edef68
* Fix bug in cluster with authentication: nodes exit with "unauthorized-access"Alan Conway2010-07-204-1/+16
| | | | | | | | | | Adding a node to a cluster on which authentication is enabled and on which there are existing connections authenticated with mechanisms other than anonymous, may result in nodes exiting the cluster with inconsistent authorisation errors. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@965979 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in ~Connection.Alan Conway2010-07-081-0/+6
| | | | | | | | Don't trigger cluster-safe asserts in broker::~Connection as it can be called from an IO threads during broker shutdown. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@961814 13f79535-47bb-0310-9956-ffa450edef68
* Defer delivery of messages in cluster-unsafe context.Alan Conway2010-07-052-3/+42
| | | | | | | | | | | | | | | Messages enqueued in a cluster-safe context are synchronized across the cluster. However some messages are delivered in a cluster-unsafe context, for example raising a link established event occurs the connection thread of the establishing connection. This fix deferrs such messages by multicasting them so they can be re-delived in a cluster safe context. See https://bugzilla.redhat.com/show_bug.cgi?id=611543 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@960681 13f79535-47bb-0310-9956-ffa450edef68
* Fix sporadic cluster core on exit.Alan Conway2010-07-012-1/+1
| | | | | | | | Fix a race condition that allows a cluster::Connection to be deleted via the Cluster's local map before it was fully initialized. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@959752 13f79535-47bb-0310-9956-ffa450edef68
* Fix regression in r956882, sporadic failures of ↵Alan Conway2010-06-242-15/+10
| | | | | | client_test.cpp:testBadClientData git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957640 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster broker crashes when management is active.Alan Conway2010-06-224-26/+49
| | | | | | | | | | | | Cluser brokers were exiting with errors "modified cluster state outside cluster context" and "confirmed < (50+0) but only sent < (49+0)" Fix was to: - delay completion of incoming update till update connection closes. - delay addding new connections to managment until connection is announced. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@956882 13f79535-47bb-0310-9956-ffa450edef68
* Bug 603835 - cluster_tests.test_management failing.Alan Conway2010-06-165-33/+48
| | | | | | | | | | | Clean up connections causing extra connection objects in the mangement agent map. - update connection was not being closed. - connections belonging to members that left the cluster were not fully cleaned up Also fixed test errors making failover_soak fail sporadically. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@955370 13f79535-47bb-0310-9956-ffa450edef68
* This change is a partial fix for the problem of long cluster failovers. ↵Michael Goulish2010-06-151-1/+3
| | | | | | | | | | | This change addresses part of that problem: long newbie-broker catchup times. At this time, it looks as though there are two distinct mechanisms causing these long catchup times. They roughly divide into a population of times less than 20 seconds, and a population of much longer times (up to hundreds of seconds). This fix addresses only the shorter times. In a test of 25 failovers before and after the change, it reduced those times by an average of nearly 50%. A T-test on the times indicates that the likelihood of the observed change happening randomly is less than 2%. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954895 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in connection negotiation.Alan Conway2010-06-091-0/+2
| | | | | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=602347. In a cluster, raise the management connect event when processing cluster.announce. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@953147 13f79535-47bb-0310-9956-ffa450edef68