[ 
https://issues.apache.org/jira/browse/QPID-3417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13125952#comment-13125952
 ] 

[email protected] commented on QPID-3417:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2335/
-----------------------------------------------------------

(Updated 2011-10-12 16:15:37.240703)


Review request for qpid, Gordon Sim and Ted Ross.


Changes
-------

A complete patch, including additional tests.

The performance does drop as expected when enabled, but the perf when disabled 
does not appear to degenerate from current trunk.

Patch w/o timestamping enabled:

[root@mrg44 tests]# qpid-cpp-benchmark --repeat=5 --summarize --messages=5000000
send-tp         recv-tp l-min   l-max   l-avg
68834           68794   0.18    47.48   3.77
69200           69158   0.20    59.15   4.14
69116           69074   0.16    44.76   3.77
69273           69270   0.19    120.19  4.62
68360           68320   0.17    59.79   3.96

And enabled:

[root@mrg44 src]# ./qpidd -d --auth no --enable-timestamp=yes
[root@mrg44 src]# ps aux | grep qpidd
root     19248  0.0  0.0 135624  3544 ?        Ssl  11:59   0:00 
/root/kgiusti/qpid/cpp/src/.libs/lt-qpidd -d --auth no --enable-timestamp=yes
root     19259  0.0  0.0  61180   772 pts/0    S+   11:59   0:00 grep qpidd
[root@mrg44 src]# qpid-cpp-benchmark --repeat=5 --summarize --messages=5000000
send-tp         recv-tp l-min   l-max   l-avg
65561           65523   0.19    43.84   3.88
64773           64739   0.17    43.86   4.06
66266           66225   0.19    142.72  5.48
64238           64203   0.18    43.09   4.29
66369           66333   0.17    70.70   4.23


Summary
-------

A slight deviation from the design originally proposed in QPID-3417 - this 
change adds the timestamp delivery property to messages using the relatively 
simple approach as described in AMQP-0.10.

Other than the approach itself, the QMF management interface & schema changes 
seem like I could be guilty of overkill - I'd like feedback before I go too far 
down that hole...


This addresses bug qpid-3417.
    https://issues.apache.org/jira/browse/qpid-3417


Diffs (updated)
-----

  /trunk/qpid/cpp/src/qpid/broker/Broker.h 1182419 
  /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1182419 
  /trunk/qpid/cpp/src/qpid/broker/Message.h 1182419 
  /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1182419 
  /trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp 1182419 
  /trunk/qpid/cpp/src/qpid/broker/SessionState.cpp 1182419 
  /trunk/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp 1182419 
  /trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp 1182419 
  /trunk/qpid/cpp/src/tests/BrokerOptions.cpp PRE-CREATION 
  /trunk/qpid/cpp/src/tests/Makefile.am 1182419 
  /trunk/qpid/cpp/src/tests/QueueTest.cpp 1182419 
  /trunk/qpid/cpp/src/tests/acl.py 1182419 
  /trunk/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java 
1182419 
  /trunk/qpid/specs/management-schema.xml 1182419 
  /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py 1182419 

Diff: https://reviews.apache.org/r/2335/diff


Testing
-------

One unit test to verify the timestamp is being added.  No dynamic control via 
mgmt yet.  

Simple perf testing didn't seem like the hit wasn't too bad so far:

Pre patch, from trunk:
[root@mrg44 tests]# qpid-cpp-benchmark --repeat=5 --summarize --messages=5000000
send-tp         recv-tp l-min   l-max   l-avg
68428           68388   0.16    69.59   4.16
68238           68201   0.17    44.18   3.82
68622           68581   0.16    102.52  4.60
68688           68647   0.18    117.33  5.29
69142           69104   0.19    103.30  4.50


Patched, no timestamping:
[root@mrg44 src]# qpid-cpp-benchmark --repeat=5 --summarize --messages=5000000
send-tp         recv-tp l-min   l-max   l-avg
67543           67471   0.17    79.76   4.37
69069           69028   0.15    42.92   3.78
68481           68439   0.17    45.91   3.98
68674           68636   0.18    41.30   3.74
67588           67587   0.17    60.23   4.21


Patched, timestamping enabled:
[root@mrg44 src]# qpid-cpp-benchmark --repeat=5 --summarize --messages=5000000
send-tp         recv-tp l-min   l-max   l-avg
67228           67227   0.21    41.80   3.97
67697           67659   0.19    43.01   4.19
67405           67368   0.19    101.61  4.99
66515           66511   0.15    41.85   4.10
67664           67622   0.17    47.35   4.01


Thanks,

Kenneth


                
> Support for timestamping messages on arrival at the broker.
> -----------------------------------------------------------
>
>                 Key: QPID-3417
>                 URL: https://issues.apache.org/jira/browse/QPID-3417
>             Project: Qpid
>          Issue Type: New Feature
>          Components: C++ Broker
>    Affects Versions: 0.13
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Minor
>             Fix For: 0.14
>
>
> AMQP 0.10 defines an optional message delivery property of timestamp:
> name: timestamp
> type: datetime
> description: message timestamp
> (optional)  The timestamp is set by the broker on arrival of the message.
> I'd like to make use of this timestamp for a proposed debugging feature for 
> message groups.  See the message groups UI proposal in 
> https://issues.apache.org/jira/browse/QPID-3346 for details of its use.
> I think it would more useful to introduce a generic message timestamp 
> capability based on the AMQP 0.10 delivery property, rather than integrate 
> something limited only to message groups.
> Functional Model:
> The broker would support the configuration of a "timestamp interval".  This 
> interval would be expressed in millisecond units, and would represent the 
> granularity of the message timestamp.  The default setting of this interval 
> would be zero - which would be interpreted as disabled.  When enabled 
> (non-zero) the broker would maintain a time-of-day time stamp.  This time 
> stamp would be updated (resync'ed to the current time-of-day) periodically 
> based on the configured "timestamp interval".
> When enabled, each message arriving at the broker will have the "timestamp" 
> delivery property set to the current value of the broker's time stamp.
> This feature will need to be able to be turned on and off on demand, without 
> restarting the broker.  Therefore new QMF methods would be added to the 
> broker's QMF object to support run-time configuration:
>    method: getMessageTimestamp - returns the configured timestamp value for 
> the broker in milliseconds.
>    method: setMessageTimestamp - sets the broker's timestamp value (expressed 
> in milliseconds).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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:[email protected]

Reply via email to