summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merging from bug19662Matthew Sackman2009-06-231-1/+1
|\
| * without this, rabbit_disk_queue seems to refuse to start up if there are ↵Matthew Sackman2009-06-231-1/+1
| | | | | | | | messages to be recovered, due to mnesia not being running fast enough.
| * These two fixes were done in 20980 but should really be in this branch.Matthew Sackman2009-06-222-3/+3
| |
* | only reduce memory size when messages are acked, not when they're delivered.Matthew Sackman2009-06-233-57/+67
| |
* | Tidying up before starting to play with tokens.Matthew Sackman2009-06-234-100/+45
| | | | | | | | | | | | | | | | o) Removed redundant rubbish from manager o) Wired alarms straight to disk_queue (+ minor refactor) o) Removed reduce/increase_memory_footprint from control and amqqueue Testing shows that one of the reasons the memory estimates are off is because they only track messages in the queue - i.e. remove on deliver, not on ack. Watching ./scripts/rabbitmqctl list_queues name memory mode messages messages_ready messages_unacknowledged messages_uncommitted during various tests shows that acks are not getting through and so we actually need to track unacknowledged message size - i.e. remove on ack, not on deliver
* | whoops, missed off a priority pcast.Matthew Sackman2009-06-221-1/+1
| |
* | Added ability to manually set queue modes. Also altered manager so that if ↵Matthew Sackman2009-06-225-10/+39
| | | | | | | | you are in all mixed mode, and then set one queue to disk, and then call increase_memory_footprint, you will indeed set that one queue back to mixed mode. And vice versa with mixed and decrease
* | Added a time interval so that we report at a maximum of once per second. I ↵Matthew Sackman2009-06-221-4/+7
| | | | | | | | guess the only reason for keeping the other counter which is the min number of messages the process has received between reporting memory, is that it's much faster to decrement that counter and ceq0 than do the time calculation for every single message.
* | Switched to tracking memory size of the queue at all times. Removed use of ↵Matthew Sackman2009-06-222-74/+77
| | | | | | | | process_info(memory,self()) for reasons outlined in the bug comments. The annoying thing about using a 10% change as the threshold is that it means you get many many more updates when the queue is empty because the % change is much greater.
* | annoying bug which appeared ages ago and has only just been squashed. Meant ↵Matthew Sackman2009-06-221-2/+2
| | | | | | | | queues were being started up in the wrong mode when in the "middle" mode...
* | merging in from bug19662Matthew Sackman2009-06-225-22/+154
|\ \ | |/
| * substantially bulked up the tests for this bug. All tests pass.Matthew Sackman2009-06-222-48/+94
| |
| * fixed.Matthew Sackman2009-06-223-18/+53
| | | | | | | | | | | | There was a choice here of either pushing all the txn accountancy into the mixed_queue and taking it out of queue_process or just passing in all the txn pending messages to the mode switch. I chose the latter because the queue_process is already the more readable of the two modules and I didn't want to further complicate the mixed_queue. Also, this way is a smaller API change and really not that much code. Tests pass but I'm about to rewrite the test and bulk it up a bit. Also, running the previous tests - rabbitmq-java-client/build/dist$ sh runjava.sh com/rabbitmq/examples/MulticastMain -y 50 -r 100 -s 104857 -m 100 -z 120 - whilst running (reduce|increase)_memory_footprint is a good thing to do.
| * A test. The problem really does exist. Not worked out how to fix it yet.Matthew Sackman2009-06-201-0/+49
| |
| * fixed bug documented in preceeding commentMatthew Sackman2009-06-201-4/+5
| |
* | Quite a horrendous merge of 19662. All tests pass.Matthew Sackman2009-06-194-107/+192
|\ \ | |/
| * 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
* | Reworked reporting of memory requests so that the queues are proactive about ↵Matthew Sackman2009-06-193-37/+60
| | | | | | | | deciding when to report. This isn't quite good enough though because GC means the memory size fluctuates too much. Need to switch to just grabbing the size of the messages in the queue.
* | wiring things upMatthew Sackman2009-06-184-7/+33
| |
* | exercise tiny area of the code to try and suggest it might be a zero-sum game.Matthew Sackman2009-06-181-3/+7
| |
* | initial work making the mixed_queue keep track of some number vaguely ↵Matthew Sackman2009-06-181-51/+82
| | | | | | | | related to memory use when it's in disk only mode which could be used to estimate how much more memory is needed to switch to mixed mode
* | cosmeticMatthew Sackman2009-06-181-1/+1
| |
* | stop the commit timer if we're no longer dirty. This means it should no ↵Matthew Sackman2009-06-181-16/+24
| | | | | | | | longer be a repeat timer because once it's set were either going to receive the explicit sync call or we're going to timeout on message queue at which point we're no longer dirty and so we'll then cancel the timer....
* | Done. Problem was needing to reply instantly if we're not dirty.Matthew Sackman2009-06-181-20/+31
| |
* | well, I think it works, but it's now much much slower.Matthew Sackman2009-06-181-71/+100
|/
* 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
| | | |/ | | |/|