| 13 hours ago | Matthew Sackman | Reworked. Because the disk->mixed transition doesn't eat up any ram, there is no need for the emergency tokens, nor any need for the weird doubling. So it's basically got much simpler. bug20980 tip | changeset | files |
| 20 hours ago | Matthew Sackman | report memory: bug20980 | changeset | files |
| 37 hours ago | Matthew Sackman | wip, dnc. bug20980 | changeset | files |
| 37 hours ago | Matthew Sackman | cosmetic bug20980 | changeset | files |
| 37 hours ago | Matthew Sackman | well if we're going to not actually pull messages off disk when going to mixed mode, we may as well do it really lazily and not bother with any communication with the disk_queue. We just have a token in the queue which indicates how many messages we are expecting to get from the disk queue. This makes disk -> mixed almost instantaneous. This also means that performance is not initially brilliant. Maybe we need some way of the queue knowing that both it and the disk_queue are idle and deciding to prefetch. Even batching could work well. It's an endless trade off between getting operations to happen quickly and being able to get good performance. Dunno what the third thing is, probably not necessary, as you can't even have both of those, let alone pick 2 from 3! bug20980 | changeset | files |
| 38 hours ago | Matthew Sackman | Sorted out the timer versus hibernate binary backoff. The trick is to use apply_after, not apply interval, and then after reporting memory use, don't set a new timer going (but do set a new timer going on every other message (other than timeouts)). This means that if nothing is going on, after a memory report, the process can wait as long as it needs to before the hibernate timeout fires. bug20980 | changeset | files |
| 39 hours ago | Matthew Sackman | merge in from 21087. Behaviour is now broken because the timeout can get > 10seconds which means the memory_report timer will always fire and reset the timeout - thus the queue process will never hibernate. bug20980 | changeset | files |
| 40 hours ago | Matthew Sackman | Done. In order to keep the code simple, the detection of naptime is done in reply and noreply functions. This means that the now() value there includes computation relating to the last message in. This is maybe not desirable, but the alternative is to wrap all of handle_cast, handle_call and handle_info. Nevertheless, testing shows this works: bug21087 | changeset | files |
| 2 days ago | Matthew Sackman | When converting to disk mode, use tx_publish and tx_commit instead of publish. This massively reduces the number of sync calls to disk_queue, potentially to one, if every message in the queue is non persistent (or the queue is non durable). bug20980 | changeset | files |
| 2 days ago | Matthew Sackman | Well after all that pain, simply doing the disk queue tests first seems to solve the problems. I don't quite buy this though, as all I was doing was stopping and starting the app so I don't understand why this was affecting the clustering configuration or causing issues _much_ further down the test line. But still, it seems to be repeatedly passing for me atm. bug20980 | changeset | files |
| 2 days ago | Matthias Radestock | merge bug21060 into default default | changeset | files |
| 2 days ago | Matthias Radestock | better exception tag bug21060 | changeset | files |
| 2 days ago | Matthias Radestock | fix another off-by-one error bug21060 | changeset | files |
| 2 days ago | Matthias Radestock | fold bug21060 | changeset | files |
| 2 days ago | Tony Garnock-Jones | Fix off-by-one error (discovered by Matthias) bug21060 | changeset | files |
| 2 days ago | Matthias Radestock | cosmetic bug21060 | changeset | files |
| 3 days ago | Matthew Sackman | merge, but it still doesn't work. Sometimes it blows up on clustering with "All replicas on diskfull nodes are not active yet". bug20980 | changeset | files |
| 3 days ago | Matthew Sackman | Well, this seems to work. bug19662 | changeset | files |
| 3 days ago | Matthew Sackman | and now clustering seems to work again... bug19662 | changeset | files |
| 3 days ago | Matthew Sackman | changed disk -> mixed mode so that messages stay on disk and don't get read. This means the conversion is much faster than it was which is a good thing, at the cost of slower initial delivery. bug20980 | changeset | files |
| 3 days ago | Matthew Sackman | just adding timing to the dump test bug20980 | changeset | files |
| 12 days ago | Essien Ita Essien | timeout() is now built in. Redefinition is deprecated bug19356 | changeset | files |
| 12 days ago | Essien Ita Essien | Merge with upstream bug19356 | changeset | files |
| 7 weeks ago | Essien Ita Essien | Merge with upstream bug19356 | changeset | files |
| 3 days ago | Matthew Sackman | doh! bug20980 | changeset | files |
| 4 days ago | Matthew Sackman | mmmm. It maybe sort of works. Needs work though bug20980 | changeset | files |
| 7 days ago | Matthew Sackman | merging in from 20470 bug20980 | changeset | files |
| 7 days ago | Matthew Sackman | Had been thinking about this optimisation for a while but someone mentioned it to me yesterday at the Erlang Factory conference. bug20470 | changeset | files |
| 9 days ago | Tony Garnock-Jones | Merge default into amqp_0_9_1 amqp_0_9_1 | changeset | files |
| 9 days ago | Matthew Sackman | some more scaffolding for tokens bug20980 | changeset | files |
| 9 days ago | Matthew Sackman | Changed reports so that we get bytes gained and lost since the last report. bug20980 | changeset | files |
| 9 days ago | Matthew Sackman | memory size tracking was wrong on startup in disk mode for mixed_queue (and actually for mixed mode too, given that mixed mode starts up in disk mode, then converts, which maintains the same size). bug20980 | changeset | files |
| 9 days ago | Matthew Sackman | merging in from 19662 bug20980 | changeset | files |
| 9 days ago | Matthew Sackman | Removed the dumb timer:sleep, and after testing, properly sorted out the mnesia clustering details. This means that wait_for_tables now waits for _all_ tables which means the bug that was requiring the timer:sleep has gone away. bug19662 | changeset | files |
| 10 days ago | Matthew Sackman | merging in fix from 20470 bug20980 | changeset | files |
| 10 days ago | Matthew Sackman | Failed to either watch the logs or remember that the timer is cancelled on disk_queue exit bug20470 | changeset | files |
| 10 days ago | Matthew Sackman | merging in the recent non-tx performance fix in bug20470 bug20980 | changeset | files |
| 10 days ago | Matthew Sackman | Right, whilst tx_commits were being coalesced, this was not done properly protect non-tx publishes from unnecessary syncs. As a result, performance, of say: bug20470 | changeset | files |
| 10 days ago | Matthew Sackman | merging in bug19662 with reduced reverses bug20980 | changeset | files |
| 10 days ago | Matthew Sackman | acktags in ack or tx_commit do not need to be ordered. Messages in tx_cancel do not need to be ordered either. Hence removal of quite a lot of lists:reverse. bug19662 | changeset | files |
| 10 days ago | Matthew Sackman | merging from bug19662 bug20980 | changeset | files |
| 10 days ago | Matthew Sackman | without this, rabbit_disk_queue seems to refuse to start up if there are messages to be recovered, due to mnesia not being running fast enough. bug19662 | changeset | files |
| 10 days ago | Matthew Sackman | only reduce memory size when messages are acked, not when they're delivered. bug20980 | changeset | files |
| 10 days ago | Matthew Sackman | Tidying up before starting to play with tokens. bug20980 | changeset | files |
| 11 days ago | Matthew Sackman | whoops, missed off a priority pcast. bug20980 | changeset | files |
| 11 days ago | Matthew Sackman | Added ability to manually set queue modes. Also altered manager so that if 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 bug20980 | changeset | files |
| 11 days ago | Tim Clark | Uses openssl for md5 calculation so that script is portable between unix and os x bug20911 | changeset | files |
| 11 days ago | Matthew Sackman | Added a time interval so that we report at a maximum of once per second. I 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. bug20980 | changeset | files |
| 11 days ago | Matthew Sackman | Switched to tracking memory size of the queue at all times. Removed use of 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. bug20980 | changeset | files |
| 11 days ago | Matthew Sackman | These two fixes were done in 20980 but should really be in this branch. bug19662 | changeset | files |
| 11 days ago | Matthew Sackman | annoying bug which appeared ages ago and has only just been squashed. Meant queues were being started up in the wrong mode when in the "middle" mode... bug20980 | changeset | files |
| 11 days ago | Tim Clark | Packages port files into tar archive bug20911 | changeset | files |
| 11 days ago | Tim Clark | Portfile replaced by Portfile.in, Portfile created by makefile which substitutes version and check sums bug20911 | changeset | files |
| 11 days ago | Matthew Sackman | merging in from bug19662 bug20980 | changeset | files |
| 11 days ago | Matthew Sackman | substantially bulked up the tests for this bug. All tests pass. bug19662 | changeset | files |
| 11 days ago | Matthew Sackman | fixed. bug19662 | changeset | files |
| 11 days ago | Tony Garnock-Jones | Convenience rabbit_basic functions. bug21060 | changeset | files |
| 13 days ago | Matthew Sackman | A test. The problem really does exist. Not worked out how to fix it yet. bug19662 | changeset | files |
| 13 days ago | Matthew Sackman | fixed bug documented in preceeding comment bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Quite a horrendous merge of 19662. All tests pass. bug20980 | changeset | files |
| 2 weeks ago | Matthew Sackman | comment typeo bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | get_cache_info ==> cache_info. bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Just added a means to get the ets:info out for the cache. Testing shows that it does seem to get emptied successfully. bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | fixes bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Added caching layer using ets which, when a message is shared between 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. bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Altered API so that the disk_queue understands about #basic_message. This means that the mixed_queue avoids unnecessary term_to_binary calls. Tests adjusted and whole test suite still passes bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Reworked reporting of memory requests so that the queues are proactive about 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. bug20980 | changeset | files |
| 2 weeks ago | Matthew Sackman | wiring things up bug20980 | changeset | files |
| 2 weeks ago | Matthew Sackman | exercise tiny area of the code to try and suggest it might be a zero-sum game. bug20980 | changeset | files |
| 2 weeks ago | Matthew Sackman | initial work making the mixed_queue keep track of some number vaguely 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 bug20980 | changeset | files |
| 2 weeks ago | Matthew Sackman | cosmetic bug20470 | changeset | files |
| 2 weeks ago | Tim Clark | Updated portfile for 1.6.0 release | changeset | files |
| 2 weeks ago | Matthias Radestock | tabs -> spaces | changeset | files |
| 2 weeks ago | Matthew Sackman | stop the commit timer if we're no longer dirty. This means it should no 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.... bug20470 | changeset | files |
| 2 weeks ago | Matthew Sackman | Done. Problem was needing to reply instantly if we're not dirty. bug20470 | changeset | files |
| 2 weeks ago | Matthew Sackman | well, I think it works, but it's now much much slower. bug20470 | changeset | files |
| 2 weeks ago | Matthew Sackman | removing two usused functions: publish_with_seq and tx_commit_with_seq bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | just merging in identical change from default bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | TMPDIR should be honoured by Makefile | changeset | files |
| 2 weeks ago | Matthew Sackman | fixing up my issues with tmp dir, hopefully once and for all. TMPDIR is a standard unix variable which should be honoured bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | removal of two unused functions from disk_queue. There are two more unused functions which I can't work out what to do about... Also cosmetic bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | preemptive tidying bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | sorted out specs. bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | comment bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | FunAcc0 ==> FunAcc bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | merging in default bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | more renaming and mnesia change to bat file bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | Renaming variables. All tests still pass bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | added batching for autoacks for general run_message_queue bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | adjusted HO-ness in deliver queue beautifully. Thus in the 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 bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | More tidying bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | further discussion bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | post case/if discussion bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | mainly if ==> case in suitable places, but also some formatting bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | tabs and line length bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | fixed line lengths bug19662 | changeset | files |
| 2 weeks ago | Matthias Radestock | Added tag rabbitmq_v1_6_0 for changeset 1588df06f913 | changeset | files |
| 2 weeks ago | Matthias Radestock | add package changelog entries for 1.6.0 release rabbitmq_v1_6_0 | changeset | files |
| 2 weeks ago | Matthew Sackman | Removing the failed experiment that was the odbc db queue bug19662 | changeset | files |
| 2 weeks ago | Matthew Sackman | just removing tabs bug19662 | changeset | files |
| 2 weeks ago | Matthias Radestock | merge bug20961 into default | changeset | files |
| 3 weeks ago | Emile Joubert | merge default into bug19984 bug19984 | changeset | files |
| 2 weeks ago | Matthias Radestock | emergency merge of bug20958 into default | changeset | files |
| 2 weeks ago | Matthias Radestock | merge bug20979 into default | changeset | files |
| 2 weeks ago | Matthias Radestock | merge bug20976 into default | changeset | files |
| 2 weeks ago | Tim Clark | FIx for escaping of arguments bug20958 | changeset | files |
| 2 weeks ago | Tim Clark | Fixing up escaping of commandline arguments bug20961 | changeset | files |
| 2 weeks ago | Vlad Ionescu | merging bug19911 into junk junk | changeset | files |
| 2 weeks ago | Vlad Ionescu | merging bug19911 into junk bug19911 | changeset | files |
| 3 weeks ago | Vlad Ionescu | fixing dialyzer error in rabbitmq-erlang-client bug19911 | changeset | files |
| 3 weeks ago | Matthew Sackman | cleandb is now an rm -rf and build depends not on mnesia bug20979 | changeset | files |
| 3 weeks ago | Matthew Sackman | Altered dependencies and added comment to the app bug20976 | changeset | files |
| 3 weeks ago | Matthew Sackman | Yep, as I'd thought, the next_seq_id field was totally unused for anything useful. The code is thus now a good bit simpler. bug19662 | changeset | files |
| 3 weeks ago | Tim Clark | Attempt to fix regexp in Portfile bug20961 | changeset | files |
| 3 weeks ago | Tim Clark | Changes to version and checksums bug20961 | changeset | files |
| 3 weeks ago | Matthew Sackman | Made mixed_queue track its length by itself. This avoids synchronous calls 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. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | merging in from default bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | merging in bug20943 | changeset | files |
| 3 weeks ago | Matthew Sackman | And suddenly it works. Testing showed that removing the crude limit 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. bug19662 | changeset | files |
| 3 weeks ago | Matthias Radestock | refactoring: rename "round robin" to "active consumers" bug20943 | changeset | files |
| 3 weeks ago | Matthias Radestock | proper round-robining even when blocking bug20943 | changeset | files |
| 3 weeks ago | Matthew Sackman | well, I've made the acking for messages which are on disk but are not persistent/durable async, and it has improved some issues. But, if you switch to disk only mode, then allow, say 10k messages to build up (use MulticastMain) then switch back to ram mode, then it won't recover - the receive rate will stay very low, and rabbitmqctl list_queues will continue to grow insanely. This is very very odd, because querying the disk_queue directly for the queue length shows it drops to 0, but at least one CPU is maxed out at 100% use, messages continue to arrive, but the delivery rate never goes back up. Mysterious. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | Took advantage of the gen_server2 priorities. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | Added means to alter all queues and switch to disk_only mode in the disk queue. bug19662 | changeset | files |
| 3 weeks ago | Matthias Radestock | emergency merge of bug20958 into default | changeset | files |
| 3 weeks ago | timc | Removed default shell, changed wrapper to work without default shell bug20958 | changeset | files |
| 3 weeks ago | timc | Creates rabbitmq user with a default shell and uses correct arguments to the os x su command bug20958 | changeset | files |
| 3 weeks ago | Matthew Sackman | just merging in default. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | merge in bug20955 | changeset | files |
| 3 weeks ago | Matthew Sackman | Two things have happened here. Firstly, the mixed_queue now functions correctly when being run in disk_only mode. This is _much_ more complicated than I had thought because of the fact that the presence of a message on disk has nothing to do with whether it is persistent or not. As a result early acking is required and requeuing operations are horrendous to say the least. bug19662 | changeset | files |
| 3 weeks ago | Matthias Radestock | respect channel blocking when adding consumers bug20955 | changeset | files |
| 3 weeks ago | Hubert Plociniczak | Merge bug20801 into default | changeset | files |
| 3 weeks ago | Hubert Plociniczak | Merge two default branches into one. | changeset | files |
| 3 weeks ago | Matthias Radestock | fix off-by-one error | changeset | files |
| 3 weeks ago | Hubert Plociniczak | Use dist macro for building correct distribution versions. bug20801 | changeset | files |
| 3 weeks ago | timc | Merge from bug20333 post verification | changeset | files |
| 3 weeks ago | Matthias Radestock | cosmetic | changeset | files |
| 3 weeks ago | Matthias Radestock | merge bug20940 into default | changeset | files |
| 3 weeks ago | Matthias Radestock | cosmetic bug20940 | changeset | files |
| 3 weeks ago | Matthew Sackman | just committing as need to work from home tomorrow. Code in "interesting" state of flux. disk mode to mixed mode in the mixed_queue is annoyingly hard. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | Made can_send/2 into can_send/3. bug20940 | changeset | files |
| 3 weeks ago | Matthew Sackman | Using delayed_write batches together small writes and reduces the number of OS calls. This is a good thing and makes writing to disk much faster. However, we can have the situation where we are trying to read a message off disk before that message has been fully written out to disk. Therefore, we need to fsync at choice times. Because fsync is quite expensive, we want to call fsync no more than absolutely necessary. Thus we now have a 'dirty' flag which tracks whether the current file has been written to sinc the last fsync, and we call fsync whenever is dirty and the file to read from is the current file. This has also had some similar changes elsewhere in the disk queue. In short however, it seems this does work as I'm no longer able to reproduce reads of messages which return all blanks. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | Logic failure which only came to light when trying to run the consumers as documented in bug 20470 bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | can now switch the mixed queue between modes bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | tiny refactor bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | refactorings and code cleanup bug19662 | changeset | files |
| 3 weeks ago | Ben Hood | Removed check for durable queues on transient exchanges amqp_0_9_1 | changeset | files |
| 3 weeks ago | Ben Hood | Merged default back into amqp_0_9_1 amqp_0_9_1 | changeset | files |
| 3 weeks ago | Matthew Sackman | idiot bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | tiny refactorings bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | merge in default, post the bug20782 merge. All the tests still pass and the test in comment #4 of bug20782 also has correct behaviour. bug19662 | changeset | files |
| 3 weeks ago | Matthew Sackman | merging in bug20782 | changeset | files |
| 4 weeks ago | Matthew Sackman | was just watching the logs go by when running tests and saw an explosion. Pretty basic typeo which hadn't been caught so far. bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | need to leave the disk queue running so that the rest of the tests go through bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | All tests pass. Including clustering tests. "ram-nodes" in clustering now have mnesia schemas, but the tables are created as ram tables (other than the disk_queue, which does its own thing and is either disc_copies or disc_only_copies, but that table is also local_content - we don't want to try and duplicate that state across nodes). bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | all java tests now pass. tiny (but significant!) bug in the mixed_queue startup post disk_queue startup. bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | Java functional tests now pass. bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | merge from default, which was more effort than I'd expected. Also, started working through the java functional tests, discovered one bug in the mixed_queue (cancel not observing durable flag) and one bug in the amqqueue_process (not committing txns if there's no consumer pid). bug19662 | changeset | files |
| 4 weeks ago | Matthias Radestock | clean up tx records in queues when a transaction's channel dies bug20782 | changeset | files |
| 4 weeks ago | Matthias Radestock | refactoring: bundle up all the data for a publish bug20782 | changeset | files |
| 4 weeks ago | Matthew Sackman | Queue recovery on startup now works. bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | added dump_queue to the disk queue. This spits out a list of the queue contents from the current read pointer to the end of the queue (i.e. messages for which we are waiting for acks will not be included). Of course, at startup, all the read pointers are at the start of the queue (i.e. not waiting for any acks) so this grabs everything. Some minor refactoring was involved in the addition of this function. Also, I needed to change my definition of unfold so that it's now both simultaneously an anamorphism and a catamorphism instead of just an anamorphism (i.e. the accumulator / 'initial' value is spat out at the end). This could be a hylomorphism. Can't remember... bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | sorted out the disk_queue tests which had been left behind with the last set of API changes. By fixing them, discovered a bug in the disk queue. Also made the tests a little more rigorous, and discovered a the rdq_stress_gc test was not doing anything like what I'd wanted. Fixed. bug19662 | changeset | files |
| 4 weeks ago | Tony Garnock-Jones | Split out internal_declare/2. | changeset | files |
| 4 weeks ago | Matthew Sackman | removed the persister and modified guid generation to use a persisted serial id stored on disk bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | only write out persistent messages sent to a durable queue bug19662 | changeset | files |
| 4 weeks ago | Matthew Sackman | merge bug20633 into default | changeset | files |
| 5 weeks ago | Matthew Sackman | (just for testing - switch to disk only mode) bug19662 | changeset | files |
| 4 weeks ago | Matthias Radestock | merge bug20877 into default | changeset | files |
| 4 weeks ago | Matthias Radestock | align bug20877 | changeset | files |
| 4 weeks ago | Tony Garnock-Jones | Change from number to atom. bug20877 | changeset | files |
| 4 weeks ago | Tony Garnock-Jones | merge default into amqp_0_9_1 amqp_0_9_1 | changeset | files |
| 4 weeks ago | Tony Garnock-Jones | merge bug20654 into default | changeset | files |
| 4 weeks ago | Tony Garnock-Jones | merger bug20654 | changeset | files |
| 5 weeks ago | Tony Garnock-Jones | merge default into bug20654 bug20654 | changeset | files |
| 5 weeks ago | Tony Garnock-Jones | merge v1_5 into default | changeset | files |
| 4 weeks ago | Matthias Radestock | make delete_binding return an error when the binding does not exist bug20633 | changeset | files |
| 5 weeks ago | Matthias Radestock | fix typo bug20654 | changeset | files |
| 5 weeks ago | Matthew Sackman | gen_server -> gen_server2, delete_queue calls purge_queue first in order to try and reduce horrible inefficient mnesia_match_object call. Also some refactoring and tidying. bug19662 | changeset | files |
| 5 weeks ago | Matthew Sackman | just merging in default branch bug19662 | changeset | files |
| 5 weeks ago | Matthew Sackman | Brought out starting the persister to rabbit.erl. Also, reduced the file size limit to 25MB. The reason is that it was observed that start up was taking a long time simply because the files were large (100MB). Given that the file being written to is never GC'd, reducing the file size limit forces new files to be created more frequently, thus increasing the use of GC and thereby keeping file utilisation higher. As a result, less time is wasted at startup scanning over delivered but not-yet-GC'd messages. bug19662 | changeset | files |
| 5 weeks ago | Matthew Sackman | ugh, managed to forget the need to compile before running dialyzer, hence just committed broken code... bug19662 | changeset | files |
| 5 weeks ago | Matthew Sackman | o) fix up -specs bug19662 | changeset | files |
| 5 weeks ago | Matthew Sackman | preemptive refactoring bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | duh! bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Yup, basically, same bug in three places. Fixed. It all works. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Well, it /tends/ to work, but sometimes falls over, apparently trying to read a message which has been erased from mnesia. Mysterious! bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | IT WORKS! (for SendString and simpleconsumer) bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | It compiles. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Tiny changes to amqqueue_process, but mainly getting the mixed_queue api into proper shape. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | just a couple more comments / TODO items. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Still WIP + DNC. However, deliver_queue is now rather funky, pretty much incorporating a HO fold. This does rather simplify matters as it means we get told inadvance that we need to produce a message only when we have a consumer for it, and at the same time we get told about whether this message is going to get an explicit ack, and we get an accumulator to play with as well. Pretty nifty - has simplified code elsewhere. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | WIP, DNC. However, I think the basic control flow is right, although there are a lot of bugs. One of the bigger remaining issues is the correct routing of AckTags around, and no doubt there will be assumptions I've made which are wrong, but I think it's getting there... bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Made deliver (in its various guises) also return the number of remaining messages bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Added is_empty and length functions. bug19662 | changeset | files |
| 6 weeks ago | Matthew Sackman | Formatting only. Only just realised emacs was using tabs. Fixed. bug19662 | changeset | files |
| 6 weeks ago | Matthias Radestock | helper method for not_found errors | changeset | files |
| 6 weeks ago | Matthias Radestock | rename UME to AE bug20654 | changeset | files |
| 6 weeks ago | Matthias Radestock | break ume cycles bug20654 | changeset | files |
| 6 weeks ago | Matthias Radestock | carry 'mandatory' and 'immediate' flags through to UMEs bug20654 | changeset | files |
| ... |