Commit Graph

51 Commits

Author SHA1 Message Date
Michael Klishin 9c79ad8d55 More missed license header updates #9969 2024-02-05 12:26:25 -05:00
David Ansari e10247feee Reduce CPU usage of rabbit_framing_amqp_0_9_1:decode_method_fields/2
This diff will generate module rabbit_framing_amqp_0_9_1 with
re-ordered clauses of function decode_method_fields/2.

After this change, basic class will be at the top of the function
clauses. That's better because for example basic.publish and basic.ack
are called far more often than for example methods of class connection,
channel or exchange.

Note that "the compiler does not rearrange clauses that match binaries."
See https://www.erlang.org/doc/efficiency_guide/functions.html#pattern-matching

Measurement taken on an Ubuntu 20.04 VM before and after this change:
1. Install latest Erlang from master (i.e. Erlang 25)
2. RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="+JPperf true +S 1" make run-broker
   (Single scheduler makes the flame graph easier to read.)
3. Run rabbitmq-perf-test without any parameters
4. sudo perf record -g -F 9999 -p <pid> -- sleep 5
   where <pid> is the output of 'os:getpid().' (in the Erlang shell).
   This samples CPU stack traces via frame pointers of
   rabbitmq-server at 9999 Hertz for 5 seconds.
5. Generate a differential flame graph as described in
   https://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html

Before this change, stack frame rabbit_framing_amqp_0_9_1:decode_method_fields/2
was 1.57% present in all stack trackes, most of the time (> 1%) running
on the CPU, i.e. directly consuming CPU cycles.
This does not sound like a lot, but is actually quite a lot for a single
function!

The diffential flame graph depicts a single dark blue frame: function decode_method_fields
with a reduction of ~0.85%.
2021-12-31 02:26:21 +01:00
Jean-Sébastien Pédron c1bbb9969c Update copyright (year 2020) 2020-03-10 15:38:30 +01:00
Michael Klishin a6b7dc7626 Merge branch 'master' into master 2020-01-04 03:18:14 +03:00
Michael Klishin d0fcef099a Merge branch 'master' into queue-name 2020-01-04 03:16:12 +03:00
Gavin M. Roy eaba3aa665 Use the message-count domain 2020-01-03 17:26:57 -05:00
Gavin M. Roy a5929d76f0 Use the queue-name domain 2020-01-03 15:08:47 -05:00
Gavin M. Roy b437f6c1a6 Change exchange from shortstr to the exchange-name domain 2020-01-03 15:01:46 -05:00
Arnaud Cogoluègnes 75c44c3371 Set new-secret type to longstr
Short strings are limited to 256 characters and tokens can easily be
longer than this.
2019-06-25 14:29:28 +02:00
Michael Klishin f1b04ace78 Introduce connection.update-secret[-ok] methods
So that clients with expiring credentials/secrets,
such as those using JWT/OAuth 2.0 tokens, would have
a chance to provide updated credentials (e.g.
a new JWT token) to the server without reconnecting.

Pair: @gerhard.

Per discussion with @acogoluegnes.
2019-06-19 19:30:01 +03:00
Spring Operator 1f4f304f4d URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://www.twiststandards.org/index.php?option=com_docman&task=cat_view&gid=28&&Itemid=90 (301) with 2 occurrences could not be migrated:
   ([https](https://www.twiststandards.org/index.php?option=com_docman&task=cat_view&gid=28&&Itemid=90) result SSLHandshakeException).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://github.com/tonyg/json-shapes with 2 occurrences migrated to:
  https://github.com/tonyg/json-shapes ([https](https://github.com/tonyg/json-shapes) result 200).
* http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 1 occurrences migrated to:
  https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* http://pypi.python.org/pypi/simplejson with 1 occurrences migrated to:
  https://pypi.python.org/pypi/simplejson ([https](https://pypi.python.org/pypi/simplejson) result 301).
* http://www.mozilla.org/MPL/ with 2 occurrences migrated to:
  https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
2019-03-20 03:13:25 -05:00
Michael Klishin 507076ab44 Update (c) info 2016-01-01 12:59:16 +03:00
Simon MacMullen f5e2c19697 Merge bug25191 2013-08-06 15:31:51 +01:00
Simon MacMullen 4dd13bb41b s/VMware/GoPivotal/g 2013-07-01 10:49:11 +01:00
Simon MacMullen 5b63a46547 Move credit to an extension. 2013-04-26 13:38:53 +01:00
Simon MacMullen 00f16875b3 Move credit to an extension. 2013-04-26 13:38:53 +01:00
Simon MacMullen 116c2e1f2b Merge default 2013-04-16 11:53:57 +01:00
Matthias Radestock 8abc21e1bb merge bug23749 into default 2013-03-22 19:01:46 +00:00
Simon MacMullen cef00bed1a Now we don't need that any more either. 2013-01-29 14:03:44 +00:00
Simon MacMullen 93417eeccf Simplify: convert basic.credit_state to basic.credit_drained, which implicitly asserts that credit is 0, length 0 and drain is true, and tells you how much credit was discarded rather than the new delivery count (so we can soon remove all delivery count code from the broker). 2013-01-29 13:56:52 +00:00
Emile Joubert 5131c2efd4 Update copyright 2013 2013-01-23 11:27:10 +00:00
Michael Klishin 66f1a85221 Add connection.blocked and connection.unblocked extension methods 2013-01-09 18:10:05 +00:00
Simon MacMullen 08de6606b4 I'm slightly paranoid that people will use these. Putting them at the end and making their IDs not possible to express with the codec might help. 2013-01-09 12:23:52 +00:00
Emile Joubert 9d6d1c6c78 Update copyright 2012 2012-02-02 12:51:57 +00:00
Simon MacMullen 2312640129 Merge in default. 2011-07-22 15:52:57 +01:00
Steve Powell 742f5b6aeb Changed "name": "server properties" to "name": "server-properties" in both json files. 2011-03-09 11:55:23 +00:00
Michael Bridgen 6c96330489 Add count as a base for credit. This means messages in flight can be accounted for -- the sender of basic.credit may not have received all the messages the queue has delivered. 2011-02-09 16:26:29 +00:00
Simon MacMullen 70bac1aa88 Remove redundant fields from credit-ok. 2011-02-03 15:49:05 +00:00
Simon MacMullen f5440b22b2 Change mind again on how this should work - have a synchronous reply method, and an async method for spontaneous notification. 2011-02-03 13:38:05 +00:00
Simon MacMullen 97c44175d0 In fact this should *not* be synchronous. 2011-02-03 13:03:59 +00:00
Simon MacMullen d75743e953 Mark basic.credit as synchronous, so that clients can interpret the credit-state as the reply. I *think* this is non-evil. 2011-02-03 11:44:18 +00:00
Simon MacMullen 841cfb164e Credit needs to be per ctag. 2011-02-02 12:03:58 +00:00
Simon MacMullen f7679c8e72 First pass at channel.credit. 2011-02-01 14:49:58 +00:00
Matthew Sackman ace7ee4c37 Correct all copyright notices 2011-01-19 14:00:43 +00:00
Simon MacMullen aa844322a9 Merge with default 2011-01-14 13:14:22 +00:00
Simon MacMullen e2a84111e1 m-x untabify 2011-01-14 13:12:22 +00:00
Rob Harrop dc7e06aa39 Removed tabs from basic.nack section 2011-01-12 09:33:33 +00:00
Rob Harrop 960c9af7f2 Added requeue flag to basic.nack 2011-01-12 09:19:50 +00:00
Rob Harrop 1b1dd38e6e Merge default 2011-01-11 17:07:06 +00:00
Simon MacMullen 6ec9ba9e32 Merge bug23656 into default 2011-01-11 15:59:00 +00:00
Rob Harrop 7de63185ac Added basic.nack to the JSON protocol definition 2011-01-11 15:31:14 +00:00
Matthias Radestock 4f13afcb88 default queue name to "" everywhere
since the MRDQ feature operates everywhere
2011-01-07 17:56:42 +00:00
Alexandru Scvortov a2e0b9b68a remove confirm.select{multiple} 2010-12-30 00:01:35 +00:00
Alexandru Scvortov fc48c15f9a merge default into bug20284 2010-10-18 18:13:49 +01:00
Matthias Radestock 302b1e1eb7 cosmetic 2010-09-27 19:34:03 +01:00
Alexandru Scvortov f48768127c merge default into bug20284 2010-09-22 16:27:43 +01:00
Matthew Sackman 046ea717ca exchange.unbind has nowait 2010-09-12 17:35:12 +01:00
Matthew Sackman a4fa7fd893 Implement exchange-to-exchange bindings 2010-09-11 23:46:30 +01:00
Alexandru Scvortov 48303cb310 moved confirm extension into 0-9-1 json 2010-09-03 10:45:53 +01:00
Matthias Radestock b8ec5273b8 rename basic.consume's 'filter' arg to 'arguments', as per the 0-9-1 spec 2010-09-01 06:42:53 +01:00