summaryrefslogtreecommitdiff
path: root/src/gm.erl
Commit message (Collapse)AuthorAgeFilesLines
* Sleep briefly, and explain why.Simon MacMullen2014-10-201-0/+8
|
* Rename GM:terminate/2 to GM:handle_terminate/2 so that it doesn't conflict ↵Simon MacMullen2014-09-171-4/+4
| | | | with the same callback in gen_server.
* Improve self-documentingness.bug26286Simon MacMullen2014-07-151-2/+11
|
* Revert bug26171, and ignore messages before the initial catchup.Simon MacMullen2014-07-141-31/+46
|
* Remove some unreachable code - members_state will be filled once we have ↵bug26171Simon MacMullen2014-06-271-17/+0
| | | | joined, and now we join immediately at startup.
* Merge bug24929.Simon MacMullen2014-06-231-27/+30
|\
| * Merge in bug24929Simon MacMullen2014-06-021-27/+30
| |\
| | * Abstract the initial catchup into its own function. Make sure we call ↵Simon MacMullen2014-05-121-21/+20
| | | | | | | | | | | | check_neighbours beforehand, since that sets left and right.
| | * Short-circuit the initial catchup message from the left, so that we are sure ↵Simon MacMullen2014-05-121-15/+19
| | | | | | | | | | | | we receive it before we consider ourselves joined.
* | | Add instrumenting for monitors and Mnesia transactions. It actually all ↵Simon MacMullen2014-06-231-2/+14
|/ / | | | | | | seems to work now.
* | Merge in stableSimon MacMullen2014-06-021-7/+8
|\ \
| * | Small refactorSimon MacMullen2014-06-021-7/+7
| | |
| * | Silence warningSimon MacMullen2014-06-021-1/+1
| | |
* | | Don't be so intrusive into gm.erl.Simon MacMullen2014-06-021-59/+37
| | |
* | | Instrument certain calls to gs2:call/3 and gs2:cast/2, and allow PropEr to ↵Simon MacMullen2014-05-291-38/+59
|/ / | | | | | | determine when they proceed. That makes things a lot more deterministic (although not fully) and lets us reproduce bug 26171 (small whoop).
* | Don't prioritise DOWNs from the left. Also explain why we prioritise in ↵bug26210Simon MacMullen2014-05-291-1/+14
|/ | | | various ways.
* Fix broken invocation.bug26173Simon MacMullen2014-05-121-1/+2
|
* blank members_state before maybe_erase_aliasesbug26084Matthias Radestock2014-04-231-7/+6
| | | | | | | | | | thus reverting b01e5808866d We are the only member left. So our usual alias erasure condition of "acks = pubs" needs to go since otherwise erasure could be deferred indefintely, waiting for acks to arrive that never will. Blanking the members_state effectively sets acks = pubs for all aliases, thus enabling their unconditional erasure.
* don't erase aliases quite so eagerly on DOWNbug26119Matthias Radestock2014-04-231-8/+9
| | | | | since that can result in completely forgetting about a member when there are still acks making their way around the right.
* maintain gm ?GROUP_TABLE abstractionMatthias Radestock2014-04-221-3/+3
| | | | in yet another place
* refactor: extract gm view change handlingMatthias Radestock2014-04-211-29/+18
|
* cosmetic: consistencyMatthias Radestock2014-04-211-11/+12
|
* make gm record_new_member_in_group tx side effect freeMatthias Radestock2014-04-211-22/+14
|
* refactor: tweak and push through gm read_group abstractionMatthias Radestock2014-04-211-10/+13
|
* simplify: get rid of tmp varMatthias Radestock2014-04-211-57/+50
|
* enforce gm GROUP_TABLE abstractionMatthias Radestock2014-04-211-21/+17
| | | | | | ...by using mnesia:write/3 instead of /1 and generally abstract mnesia reading/writing and make it dirty reads obvious.
* blank members_state after maybe_erase_aliasesMatthias Radestock2014-04-211-7/+9
| | | | since the latter operates on the former
* refactor: simplify gm:internal_broadcastMatthias Radestock2014-04-211-19/+12
| | | | eliminate branching
* go back to from members_changed/4 to /3Matthias Radestock2014-04-171-7/+5
|
* less lazy death notificationsMatthias Radestock2014-04-131-21/+9
| | | | | | | | | | | When we receive a DOWN, it's possible that there are no messages from the dead member floating around anyway. So rather than waiting for some other activity to occur first, it is perfectly safe enough to always call maybe_erase_aliases. That way we get slightly less lazy death notification in this case (i.e. we can then be certain that either the dead member is fully removed immediately or there must still be messages from the dead member floating around. No other possibility exists).
* ensure callback_view_changed is called whenever the view may have changedMatthias Radestock2014-04-131-8/+8
| | | | | | We had missed a case here. Ditto for check_neighbours.
* Update copyright for 2014bug25940Simon MacMullen2014-03-171-1/+1
|
* stable to defaultSimon MacMullen2014-01-171-36/+70
|\
| * Avoid "Absurdly large distribution output data buffer" death.Simon MacMullen2014-01-161-36/+70
| |
* | Revert changes to add proc_name via gen_server2, instead do it explicitly ↵bug25910Simon MacMullen2014-01-101-2/+2
| | | | | | | | with a helper macro.
* | Merge in defaultSimon MacMullen2014-01-101-1/+2
|\ \ | |/ |/|
| * Add queue_coordinator / queue_syncer / gm. Shift to getting gen_server2 to ↵Simon MacMullen2013-12-101-1/+2
| | | | | | | | store the name in most cases.
* | simplify even furtherMatthias Radestock2014-01-101-4/+4
| |
* | simplify, remove redundant codeMatthias Radestock2014-01-101-7/+4
|/
* More consistent naming.Simon MacMullen2013-09-111-1/+1
|
* Take GM's view of the live members each time we have a death message; don't ↵Simon MacMullen2013-09-021-5/+7
| | | | assume the master will always be able to write updates to Mnesia.
* Refresh branch from stableEmile Joubert2013-07-311-2/+27
|\
| * Merge bug25670Simon MacMullen2013-07-291-1/+3
| |\
| | * Don't roll over to a lower GM view version than we have ourselvesbug25671Emile Joubert2013-07-191-1/+3
| | |
| * | Slaves detect stale master pids on startupEmile Joubert2013-07-191-1/+24
| |/
* | s/VMware/GoPivotal/gSimon MacMullen2013-07-011-2/+2
|/
* Merge in defaultSimon MacMullen2013-01-301-3/+9
|\
| * Update copyright 2013bug25343Emile Joubert2013-01-231-1/+1
| |
| * reduce wrongnessbug25340Matthias Radestock2012-12-041-2/+1
| |
| * Send messages immediately if we are not busy.Simon MacMullen2012-12-041-2/+9
| |