[ https://issues.apache.org/jira/browse/QPID-3346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109504#comment-13109504 ]
jirapos...@reviews.apache.org commented on QPID-3346: ----------------------------------------------------- ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1980/#review1995 ----------------------------------------------------------- It would be good to verify latency as well. qpid-cpp-benchmark will measure both together. what is the purpose of the new queue-query management method? e-move to message groups? Some useful code documentation added, and code simplified in several places good job. Looks good, a few comments & questions. /trunk/qpid/cpp/src/qpid/broker/MessageAllocator.cpp <https://reviews.apache.org/r/1980/#comment4496> Shouldn't this return false if the message has already been acquired by some other consumer? /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.h <https://reviews.apache.org/r/1980/#comment4497> This looks a lot like the new cluster interface. There's definitely room for convergence of the "broker activity watchers" - but that's another JIRA. /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp <https://reviews.apache.org/r/1980/#comment4498> The style guide for constants is CAPITAL_UNDERSCORES. /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp <https://reviews.apache.org/r/1980/#comment4499> I don't like the #ifdef with different code on each branch. You could say: assert(freegroups.find(qm.position) == freegroups.end()); freeGroups[qm.position] = &state; /trunk/qpid/cpp/src/qpid/broker/Queue.cpp <https://reviews.apache.org/r/1980/#comment4501> Are you sure it is thread safe to split this lock scope apart? /trunk/qpid/cpp/src/qpid/broker/Queue.cpp <https://reviews.apache.org/r/1980/#comment4505> Is there a comment somewhere outlining the locking rules? E.g. must call acquired inside the messasgeLock, may call dequeue outside. While it's fresh in your mind ;) /trunk/qpid/cpp/src/qpid/broker/Queue.cpp <https://reviews.apache.org/r/1980/#comment4507> This pattern of loop shows up a lot. Would be good to encapsulate it in some short-hand but I'm not sure how. /trunk/qpid/cpp/src/qpid/broker/Queue.cpp <https://reviews.apache.org/r/1980/#comment4502> Shouldn't need a cast here. /trunk/qpid/cpp/src/qpid/broker/QueueObserver.h <https://reviews.apache.org/r/1980/#comment4504> Suggest not introducing new terms here but using terms from the code, so the states would be: "enqueued", "acquired", "dequeued" These match the names of the corresponding events below which is a good thing. /trunk/qpid/cpp/src/qpid/broker/QueueObserver.h <https://reviews.apache.org/r/1980/#comment4503> Should be "acquired" to be consistent with the naming in the code. - Alan On 2011-09-20 15:14:26, Kenneth Giusti wrote: bq. bq. ----------------------------------------------------------- bq. This is an automatically generated e-mail. To reply, visit: bq. https://reviews.apache.org/r/1980/ bq. ----------------------------------------------------------- bq. bq. (Updated 2011-09-20 15:14:26) bq. bq. bq. Review request for qpid, Alan Conway and Gordon Sim. bq. bq. bq. Summary bq. ------- bq. bq. This implements QPID-3346. I'd like to get this onto trunk. bq. bq. This patch does not include optimizations I have made - I'll be reviewing & submitting these separately as they involve more intrusive changes to the Queue API. Ignore for now the TODO comments in the MessageGroups source files. bq. bq. Performance testing suggests that this patch has negligible effect on legacy traffic performance (non-grouped traffic): bq. bq. current trunk: bq. [kgiusti@mrg42 tests]$ ./qpid-perftest -b 20.0.10.43 --iterations 5 --count 500000 --npubs=1 --nsubs=1 --qt=1 --summary bq. 58096.5 56556.7 113124 110.473 bq. 62659.7 62195.4 124381 121.466 bq. 54278.2 54136.2 108265 105.728 bq. 55506.3 55501 110505 107.915 bq. 62176.8 58019.1 115500 112.793 bq. Averages: bq. 58543.5 57281.7 114355 111.675 bq. bq. + this patch: bq. [kgiusti@mrg42 tests]$ ./qpid-perftest -b 20.0.10.43 --iterations 5 --count 500000 --npubs=1 --nsubs=1 --qt=1 --summary bq. 58346.1 55008.2 110510 107.92 bq. 59309.8 58747.5 117482 114.729 bq. 61323.3 58222.1 116436 113.707 bq. 57603 57600.4 115193 112.493 bq. 56091.8 56086.4 111667 109.05 bq. Averages: bq. 58534.8 57132.9 114258 111.58 bq. bq. bq. This addresses bug qpid-3346. bq. https://issues.apache.org/jira/browse/qpid-3346 bq. bq. bq. Diffs bq. ----- bq. bq. /trunk/qpid/cpp/src/CMakeLists.txt 1172628 bq. /trunk/qpid/cpp/src/Makefile.am 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/Broker.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/Consumer.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/MessageAllocator.h PRE-CREATION bq. /trunk/qpid/cpp/src/qpid/broker/MessageAllocator.cpp PRE-CREATION bq. /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.h PRE-CREATION bq. /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp PRE-CREATION bq. /trunk/qpid/cpp/src/qpid/broker/Messages.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/Queue.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/QueueEvents.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/QueueObserver.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/SemanticState.h 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/broker/ThresholdAlerts.h 1172628 bq. /trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1172628 bq. /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1172628 bq. /trunk/qpid/cpp/src/tests/CMakeLists.txt 1172628 bq. /trunk/qpid/cpp/src/tests/Makefile.am 1172628 bq. /trunk/qpid/cpp/src/tests/QueueTest.cpp 1172628 bq. /trunk/qpid/cpp/src/tests/cluster_tests.py 1172628 bq. /trunk/qpid/cpp/src/tests/msg_group_test.cpp PRE-CREATION bq. /trunk/qpid/cpp/src/tests/qpid-send.cpp 1172628 bq. /trunk/qpid/cpp/src/tests/run_msg_group_tests PRE-CREATION bq. /trunk/qpid/cpp/src/tests/run_msg_group_tests_soak PRE-CREATION bq. /trunk/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java 1172628 bq. /trunk/qpid/specs/management-schema.xml 1172628 bq. /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py 1172628 bq. bq. Diff: https://reviews.apache.org/r/1980/diff bq. bq. bq. Testing bq. ------- bq. bq. new unit tests & tools added. Built cpp & java on Windows & various linux distros. bq. bq. bq. Thanks, bq. bq. Kenneth bq. bq. > Support message grouping with stricted sequence consumption across multiple > consumers. > -------------------------------------------------------------------------------------- > > Key: QPID-3346 > URL: https://issues.apache.org/jira/browse/QPID-3346 > Project: Qpid > Issue Type: New Feature > Components: C++ Broker > Affects Versions: 0.12 > Reporter: Ken Giusti > Assignee: Ken Giusti > Fix For: 0.14 > > Attachments: UI.txt, msg_groups_0.2.txt > > > This feature is described in the attached QIP as Policy #2: Sequenced > Consumers. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org