Skip to content

Instantly share code, notes, and snippets.

all_nodes_parts(AndPartners) ->
{ok, PMap} = partitions(),
all_nodes_parts(PMap, AndPartners).
all_nodes_parts(PMap, AndPartners) ->
NodeParts2 =
case AndPartners of
true ->
{Nodes, _Parts} = lists:unzip(PMap),
check_nodes() ->
ErlangNodes = lists:usort([node() | erlang:nodes()]),
{ok, MemNodeList} = membership2:nodes(),
MemNodes = lists:usort(MemNodeList),
{ok, PMap} = partitions(),
{PMapNodeList, _PMapPartList} = lists:unzip(PMap),
PMapNodes = lists:usort(PMapNodeList),
case ErlangNodes =:= MemNodes andalso
ErlangNodes =:= PMapNodes andalso
MemNodes =:= PMapNodes of
#!/bin/bash
NODE1="ec2-blah1.compute-1.amazonaws.com"
NODE2="ec2-blah2.compute-1.amazonaws.com"
NODE3="ec2-blah3.compute-1.amazonaws.com"
NODE4="ec2-blah4.compute-1.amazonaws.com"
while [ $# -gt 0 ]; do
case "$1" in
"1")
%% nodeparts_for_key
handle_call({nodeparts_for_key, Key}, _From,
State = #membership{partitions=PMap}) ->
?prof(config),
Config = configuration:get_config(),
?forp(config),
?prof(hashing),
Hash = lib_misc:hash(Key),
Part = partitions:hash_to_partition(Hash, Config#config.q),
-module(membership2_load).
-include("../include/common.hrl").
-export([load_nodeparts_for_key/0, start/0, stop/0, run/0]).
-define(IDS, [config, hashing, nodes]).
load_nodeparts_for_key() ->
%% {ok, _} = membership2:start_link(a, [a,b,c,d,e,f]),
(couchdb1@boorad)33> membership2_load:run().
/Users/brad/dev/erlang/dbcore/src/dynomite/test/membership2_load.erl:19: membership can do 8259.786714444186 reqs/s
/Users/brad/dev/erlang/dbcore/src/dynomite/test/membership2_load.erl:24:
Avgs: [[],
[{config,4.0014815330505374e-5},
{hashing,4.805948734283447e-5},
{nodes,1.1756324768066407e-5}]]
grep -n -e \(gen_server\) /Users/brad/dev/erlang/dbcore/src/couchdb/*.erl /dev/null
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_batch_save.erl:15:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_config.erl:20:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_db.erl:14:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_db_updater.erl:14:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_event_sup.erl:18:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_external_manager.erl:14:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_external_server.erl:14:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_file.erl:14:-behaviour(gen_server).
/Users/brad/dev/erlang/dbcore/src/couchdb/couch_os_process.erl:14:-behaviour(gen_server).
%%-----------------------------------------------------------------
%% Func: get_supervised_procs/0
%% Purpose: This is the magic function. It finds all process in
%% the system and which modules they execute as a call_back or
%% process module.
%% This is achieved by asking the main supervisor for the
%% applications for all children and their modules
%% (recursively).
%% NOTE: If a supervisor is suspended, it isn't possible to call
%% which_children. Code change on a supervisor should be
final_key_lookup(Good, Bad, N, Const, ResolveFun, NotFoundFun, Access) ->
{NotFound, Reasons} = NotFoundFun(Bad, Const),
if
length(Good) >= Const -> {ok, ResolveFun(Good)};
NotFound -> {ok, not_found, Reasons};
true -> error_message(Good, Bad, N, Const, Access)
end.
% and
% fprof:apply(M, F, A)
% fprof:profile()
% fprof:analyse()
-module (reads_bench).
-export ([doit/2]).
doit(Conns, Reps) ->
Begin = erlang:now(),
Self = self(),