diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-04-12 13:55:20 -0500 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-04-12 13:55:20 -0500 |
commit | 5b6583a382e1bb5bce1560d14ded580438d0f633 (patch) | |
tree | f44df41d06ddd058008e0a442d846152b2c942eb | |
parent | 20c1846fe0db79fee53cf554497b1235356eef9b (diff) | |
download | couchdb-5b6583a382e1bb5bce1560d14ded580438d0f633.tar.gz |
Garbage commit
-rw-r--r-- | src/fabric/src/fabric2.hrl | 48 | ||||
-rw-r--r-- | src/fabric/src/fabric2_fdb.erl | 72 | ||||
-rw-r--r-- | src/fabric/src/fabric2_sup.erl | 4 | ||||
-rw-r--r-- | src/fabric/src/fabric2_util.erl | 22 |
4 files changed, 75 insertions, 71 deletions
diff --git a/src/fabric/src/fabric2.hrl b/src/fabric/src/fabric2.hrl index d63d35064..da62f5eba 100644 --- a/src/fabric/src/fabric2.hrl +++ b/src/fabric/src/fabric2.hrl @@ -14,3 +14,51 @@ -define(uint2bin(I), binary:encode_unsigned(I, little)). -define(bin2uint(I), binary:decode_unsigned(I, little)). +% This will eventually be the `\xFFmetadataVersion` key that is +% currently only available in FoundationDB master. +% +% https://forums.foundationdb.org/t/a-new-tool-for-managing-layer-metadata/1191 +% +% Until then we'll fake the same behavior using a randomish +% key for tracking metadata changse. Once we get to the +% new feature this will be more performant by updating +% this define. +-define(METADATA_VERSION_KEY, <<"$metadata_version_key$">>). + + +% Prefix Definitions + +-define(CLUSTER_CONFIG, 0). +-define(ALL_DBS, 1). +-define(DBS, 15). +-define(TX_IDS, 255). + +-define(DB_CONFIG, 16). +-define(DB_STATS, 17). +-define(DB_ALL_DOCS, 18). +-define(DB_CHANGES, 19). +-define(DB_REVS, 20). +-define(DB_DOCS, 21). +-define(DB_LOCAL_DOCS, 22). + + +% Versions + +-define(CURR_REV_FORMAT, 0). + + +% Misc constants + +-define(PDICT_DB_KEY, '$fabric_db_handle'). +-define(PDICT_LAYER_CACHE, '$fabric_layer_id'). +-define(PDICT_TX_ID_KEY, '$fabric_tx_id'). +-define(PDICT_TX_RES_KEY, '$fabric_tx_result'). +-define(COMMIT_UNKOWN_RESULT, 1021). + + +% Various utility macros + +-define(REQUIRE_TX(Db), {erlfdb_transaction, _} = maps:get(tx, Db)). +-define(REQUIRE_CURRENT(Db), true = is_current(Db)). + +-define(UNSET_VS, {versionstamp, 16#FFFFFFFFFFFFFFFF, 16#FFFF}). diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl index 549e94feb..9b148a360 100644 --- a/src/fabric/src/fabric2_fdb.erl +++ b/src/fabric/src/fabric2_fdb.erl @@ -18,6 +18,8 @@ transactional/3, transactional/2, + sweep_tx_ids/2, + create/2, open/2, delete/1, @@ -44,7 +46,10 @@ fold_docs/4, fold_changes/5, - get_changes/2 + get_changes/2, + + debug_cluster/0, + debug_cluster/2 ]). @@ -52,56 +57,6 @@ -include("fabric2.hrl"). -% This will eventually be the `\xFFmetadataVersion` key that is -% currently only available in FoundationDB master. -% -% https://forums.foundationdb.org/t/a-new-tool-for-managing-layer-metadata/1191 -% -% Until then we'll fake the same behavior using a randomish -% key for tracking metadata changse. Once we get to the -% new feature this will be more performant by updating -% this define. --define(METADATA_VERSION_KEY, <<"$metadata_version_key$">>). - - -% Prefix Definitions - --define(CLUSTER_CONFIG, 0). --define(ALL_DBS, 1). --define(DBS, 15). --define(TX_IDS, 255). - --define(DB_CONFIG, 16). --define(DB_STATS, 17). --define(DB_ALL_DOCS, 18). --define(DB_CHANGES, 19). --define(DB_REVS, 20). --define(DB_DOCS, 21). --define(DB_LOCAL_DOCS, 22). - - -% Versions - --define(CURR_REV_FORMAT, 0). - - -% Misc constants - --define(PDICT_DB_KEY, '$fabric_db_handle'). --define(PDICT_LAYER_CACHE, '$fabric_layer_id'). --define(PDICT_TX_ID_KEY, '$fabric_tx_id'). --define(PDICT_TX_RES_KEY, '$fabric_tx_result'). --define(COMMIT_UNKOWN_RESULT, 1021). - - -% Various utility macros - --define(REQUIRE_TX(Db), {erlfdb_transaction, _} = maps:get(tx, Db)). --define(REQUIRE_CURRENT(Db), true = is_current(Db)). - --define(UNSET_VS, {versionstamp, 16#FFFFFFFFFFFFFFFF, 16#FFFF}). - - transactional(Fun) when is_function(Fun, 1) -> Db = get_db_handle(), try @@ -641,6 +596,21 @@ get_changes(#{} = Db, Options) -> end, erlfdb:wait(Future)). +debug_cluster() -> + debug_cluster(<<>>, <<16#FE, 16#FF, 16#FF>>). + + +debug_cluster(Start, End) -> + transactional(fun(Tx) -> + lists:foreach(fun({Key, Val}) -> + io:format("~s => ~s~n", [ + string:pad(erlfdb_util:repr(Key), 60), + erlfdb_util:repr(Val) + ]) + end, erlfdb:get_range(Tx, Start, End)) + end). + + init(Tx, DbName, Options) -> Root = erlfdb_directory:root(), CouchDB = erlfdb_directory:create_or_open(Tx, Root, [<<"couchdb">>]), diff --git a/src/fabric/src/fabric2_sup.erl b/src/fabric/src/fabric2_sup.erl index 00eea3ed7..979f84715 100644 --- a/src/fabric/src/fabric2_sup.erl +++ b/src/fabric/src/fabric2_sup.erl @@ -38,6 +38,10 @@ init([]) -> #{ id => fabric2_server, start => {fabric2_server, start_link, []} + }, + #{ + id => fabric2_txid_cleaner, + start => {fabric2_txid_cleaner, start_link, []} } ], {ok, {Flags, Children}}. diff --git a/src/fabric/src/fabric2_util.erl b/src/fabric/src/fabric2_util.erl index 8b3a3e3dd..09ff876e4 100644 --- a/src/fabric/src/fabric2_util.erl +++ b/src/fabric/src/fabric2_util.erl @@ -15,17 +15,14 @@ -export([ revinfo_to_path/1, - find_winning_revinfo/1, + sort_revinfos/1, user_ctx_to_json/1, get_value/2, get_value/3, to_hex/1, - uuid/0, - - debug_cluster/0, - debug_cluster/2 + uuid/0 ]). @@ -122,18 +119,3 @@ nibble_to_hex(I) -> uuid() -> to_hex(crypto:strong_rand_bytes(16)). - - -debug_cluster() -> - debug_cluster(<<>>, <<16#FE, 16#FF, 16#FF>>). - - -debug_cluster(Start, End) -> - transactional(fun(Tx) -> - lists:foreach(fun({Key, Val}) -> - io:format("~s => ~s~n", [ - string:pad(erlfdb_util:repr(Key), 60), - erlfdb_util:repr(Val) - ]) - end, erlfdb:get_range(Tx, Start, End)) - end). |