summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* comment typeoMatthew Sackman2009-06-191-1/+1
|
* get_cache_info ==> cache_info.Matthew Sackman2009-06-191-5/+5
| | | | | | | | An even better test (see parent commit message) is: rabbitmq-java-client/build/dist$ sh runjava.sh com/rabbitmq/examples/MulticastMain -y 50 -r 100 -s 1048576 -m 100 -z 120 Rabbit will now happily just sit there and work away (again, run reduce_memory_footprint twice first) even though it's seeing 100MB new a second which is going to 50 consumers, so 5GB a second. Needless to say, go back a few revisions, and it blows up within seconds.
* Just added a means to get the ets:info out for the cache. Testing shows that ↵Matthew Sackman2009-06-191-2/+8
| | | | | | | | | | | | | | | | | | | it does seem to get emptied successfully. So, using this revision, if you run: rabbitmq-java-client/build/dist$ sh runjava.sh com/rabbitmq/examples/MulticastMain -y 10 -r 50 -s 1048576 -m 100 -z 120 then over the two mins, I see beam take between about 30% and 45% of my memory, once it's up and running. Using the revision right after the API change, i.e. 9f0ee0399838, the same test tries to take between about 45% and 60% of my memory. Don't forget to run: rabbitmq-server$ ./scripts/rabbitmqctl reduce_memory_footprint rabbitmq-server$ ./scripts/rabbitmqctl reduce_memory_footprint before running the above test.
* fixesMatthew Sackman2009-06-191-2/+3
|
* Added caching layer using ets which, when a message is shared between ↵Matthew Sackman2009-06-191-10/+61
| | | | multiple queues, eliminates the need for multiple reads, provided the /next/ copy of the message is requested before the previous copy of the message has been acked. Should reduce memory pressure.
* Altered API so that the disk_queue understands about #basic_message. This ↵Matthew Sackman2009-06-194-79/+109
| | | | means that the mixed_queue avoids unnecessary term_to_binary calls. Tests adjusted and whole test suite still passes
* removing two usused functions: publish_with_seq and tx_commit_with_seqMatthew Sackman2009-06-181-28/+2
|
* just merging in identical change from defaultMatthew Sackman2009-06-180-0/+0
|\
| * TMPDIR should be honoured by MakefileMatthew Sackman2009-06-181-2/+6
| |
* | fixing up my issues with tmp dir, hopefully once and for all. TMPDIR is a ↵Matthew Sackman2009-06-181-2/+6
| | | | | | | | standard unix variable which should be honoured
* | removal of two unused functions from disk_queue. There are two more unused ↵Matthew Sackman2009-06-172-19/+8
| | | | | | | | functions which I can't work out what to do about... Also cosmetic
* | preemptive tidyingMatthew Sackman2009-06-171-18/+12
| |
* | sorted out specs.Matthew Sackman2009-06-176-9/+62
| |
* | commentMatthew Sackman2009-06-171-1/+2
| |
* | FunAcc0 ==> FunAccMatthew Sackman2009-06-171-6/+6
| |
* | merging in defaultMatthew Sackman2009-06-177-22/+23
|\ \ | |/
| * Added tag rabbitmq_v1_6_0 for changeset 1588df06f913Matthias Radestock2009-06-160-0/+0
| |
| * add package changelog entries for 1.6.0 releaserabbitmq_v1_6_0Matthias Radestock2009-06-162-0/+9
| |
| * merge bug20961 into defaultMatthias Radestock2009-06-161-8/+8
| |\
| | * Fixing up escaping of commandline argumentsTim Clark2009-06-141-11/+1
| | |
| | * Attempt to fix regexp in PortfileTim Clark2009-06-121-4/+4
| | |
| | * Changes to version and checksumsTim Clark2009-06-121-4/+4
| | |
| * | emergency merge of bug20958 into defaultMatthias Radestock2009-06-161-11/+1
| |\ \ | | | | | | | | | | | | further qa is still required
| | * | FIx for escaping of argumentsTim Clark2009-06-141-11/+1
| | | |
| * | | merge bug20979 into defaultMatthias Radestock2009-06-162-2/+2
| |\ \ \
| | * | | cleandb is now an rm -rf and build depends not on mnesiaMatthew Sackman2009-06-122-2/+2
| | | |/ | | |/|
| * | | merge bug20976 into defaultMatthias Radestock2009-06-162-2/+4
| |\ \ \ | | |/ / | |/| |
| | * | Altered dependencies and added comment to the appMatthew Sackman2009-06-122-2/+4
| |/ /
* | | more renaming and mnesia change to bat fileMatthew Sackman2009-06-173-17/+18
| | |
* | | Renaming variables. All tests still passMatthew Sackman2009-06-173-99/+95
| | |
* | | added batching for autoacks for general run_message_queueMatthew Sackman2009-06-171-16/+15
| | |
* | | adjusted HO-ness in deliver queue beautifully. Thus in the ↵Matthew Sackman2009-06-171-42/+45
| | | | | | | | | | | | deliver_from_queue case, we now reduce n calls to mixed_queue:is_empty to 1 call and pass around the remaining count as the acc. l33t
* | | More tidyingMatthew Sackman2009-06-174-23/+19
| | |
* | | further discussionMatthew Sackman2009-06-171-18/+19
| | |
* | | post case/if discussionMatthew Sackman2009-06-171-9/+6
| | |
* | | mainly if ==> case in suitable places, but also some formattingMatthew Sackman2009-06-175-69/+88
| | |
* | | tabs and line lengthMatthew Sackman2009-06-171-2/+3
| | |
* | | fixed line lengthsMatthew Sackman2009-06-1710-116/+177
| | |
* | | Removing the failed experiment that was the odbc db queueMatthew Sackman2009-06-172-476/+0
| | |
* | | just removing tabsMatthew Sackman2009-06-174-219/+219
| | |
* | | Yep, as I'd thought, the next_seq_id field was totally unused for anything ↵Matthew Sackman2009-06-121-81/+54
| | | | | | | | | | | | useful. The code is thus now a good bit simpler.
* | | Made mixed_queue track its length by itself. This avoids synchronous calls ↵Matthew Sackman2009-06-124-81/+106
| | | | | | | | | | | | | | | | | | to the disk_queue when operating in disk only mode and seems to have substantially improved performance (in addition to avoiding a sync call, repeated lasting for the length of a queue (erlang stdlib) with a million+ items in it can't have been cheap). It now seems to be very much the case that when coming out of disk only mode, huge back logs are recovered reliably. Also, added reduce_memory_footprint and increase_memory_footprint to control. Both can be run twice and alter whether the disk_queue changes mode or the individual queues.
* | | merging in from defaultMatthew Sackman2009-06-113-152/+140
|\ \ \ | |/ /
| * | merging in bug20943Matthew Sackman2009-06-111-129/+120
| |\ \
| | * | refactoring: rename "round robin" to "active consumers"Matthias Radestock2009-06-101-27/+31
| | | |
| | * | proper round-robining even when blockingMatthias Radestock2009-06-101-124/+111
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This involved some substantial changes to the queue internal data structures - mostly by choice; the new design is cleaner: - We no longer keep a list of consumers in the channel records. Now the channel records just contain a consumer count instead, and that's only there for efficiency so we can more easily tell when we need to register/unregister with the limiter. - We now keep *two* consumer queues - one of active consumers (that's the one we've always had) and one of blocked consumers. We round-robin on the first one as before, and move things between the two queues when blocking/unblocking channels. When doing so the relative order of a channel's consumers is preserved, so the effects of any round-robining the active consumers get carried through to the blocked consumers when they get blocked and then back to the active consumers when they get unblocked.
| * | emergency merge of bug20958 into defaultMatthias Radestock2009-06-102-2/+2
| |\ \ | | |/ | | | | | | | | | | | | We point to the macports files of the default branch from our web site and they got broken with the merge of bug20333. This hopefully fixes that, but further qa is required.
| | * Removed default shell, changed wrapper to work without default shelltimc@afallen.home2009-06-102-2/+2
| | |
| | * Creates rabbitmq user with a default shell and uses correct arguments to the ↵timc@afallen.home2009-06-102-3/+3
| | | | | | | | | | | | os x su command
* | | And suddenly it works. Testing showed that removing the crude limit ↵Matthew Sackman2009-06-113-14/+17
| | | | | | | | | | | | UNSENT_MESSAGE_LIMIT made performance better. This then made me wonder if the unblock and notify_sent messages weren't getting through fast enough, and sure enough, using pcast is much better there. Also, turning on dbg:tpl showed that the common path in mixed_queue was to call publish_delivered (i.e. the message has been delivered to a consumer, we just need to record this fact). Making sure everything in there for the non-persistent, non-durable but disk-only mode is asynchronous also helped performance massively.