summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2019-04-12 13:55:20 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2019-04-12 13:55:20 -0500
commit5b6583a382e1bb5bce1560d14ded580438d0f633 (patch)
treef44df41d06ddd058008e0a442d846152b2c942eb
parent20c1846fe0db79fee53cf554497b1235356eef9b (diff)
downloadcouchdb-5b6583a382e1bb5bce1560d14ded580438d0f633.tar.gz
Garbage commit
-rw-r--r--src/fabric/src/fabric2.hrl48
-rw-r--r--src/fabric/src/fabric2_fdb.erl72
-rw-r--r--src/fabric/src/fabric2_sup.erl4
-rw-r--r--src/fabric/src/fabric2_util.erl22
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).