qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-3417) Support for timestamping messages on arrival at the broker.
Date Wed, 12 Oct 2011 16:17:13 GMT

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

jiraposter@reviews.apache.org 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:dev-subscribe@qpid.apache.org


Mime
View raw message