2016-08-09 16:09:29 +01:00
|
|
|
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Tag to be used on standard Riak KV objects
|
2016-10-16 15:41:09 +01:00
|
|
|
-define(RIAK_TAG, o_rkv).
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Tag to be used on K/V objects for non-Riak purposes
|
2016-10-16 15:41:09 +01:00
|
|
|
-define(STD_TAG, o).
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Tag used for secondary index keys
|
2016-10-16 15:41:09 +01:00
|
|
|
-define(IDX_TAG, i).
|
2018-02-15 16:14:46 +00:00
|
|
|
%% Tag used for head-only objects
|
|
|
|
-define(HEAD_TAG, h).
|
2016-10-16 15:41:09 +01:00
|
|
|
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Inker key type used for 'normal' objects
|
|
|
|
-define(INKT_STND, stnd).
|
2017-11-17 18:30:51 +00:00
|
|
|
|
2018-02-15 16:14:46 +00:00
|
|
|
%% Inker key type used for 'batch' objects
|
|
|
|
-define(INKT_MPUT, mput).
|
|
|
|
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Inker key type used for objects which contain no value, only key changes
|
|
|
|
%% This is used currently for objects formed under a 'retain' strategy on Inker
|
2017-11-17 18:30:51 +00:00
|
|
|
%% compaction
|
2016-10-25 23:13:14 +01:00
|
|
|
-define(INKT_KEYD, keyd).
|
2017-11-17 18:30:51 +00:00
|
|
|
|
2016-10-25 23:13:14 +01:00
|
|
|
%% Inker key type used for tombstones
|
|
|
|
-define(INKT_TOMB, tomb).
|
|
|
|
|
2017-01-23 21:45:34 +00:00
|
|
|
-define(CACHE_TYPE, skpl).
|
2017-01-21 11:38:26 +00:00
|
|
|
|
2016-08-09 16:09:29 +01:00
|
|
|
-record(sft_options,
|
|
|
|
{wait = true :: boolean(),
|
2016-11-05 11:22:27 +00:00
|
|
|
expire_tombstones = false :: boolean(),
|
|
|
|
penciller :: pid()}).
|
2016-08-09 16:09:29 +01:00
|
|
|
|
2016-10-21 21:26:28 +01:00
|
|
|
-record(level,
|
|
|
|
{level :: integer(),
|
|
|
|
is_basement = false :: boolean(),
|
2016-10-31 12:12:06 +00:00
|
|
|
timestamp :: integer()}).
|
2016-10-21 21:26:28 +01:00
|
|
|
|
2016-08-09 16:09:29 +01:00
|
|
|
-record(manifest_entry,
|
2017-07-31 19:30:29 +02:00
|
|
|
{start_key :: tuple() | undefined,
|
|
|
|
end_key :: tuple() | undefined,
|
|
|
|
owner :: pid()|list(),
|
2017-11-28 01:19:30 +00:00
|
|
|
filename :: string() | undefined,
|
2017-11-30 19:10:26 +00:00
|
|
|
bloom :: binary() | none | undefined}).
|
2016-09-07 17:58:12 +01:00
|
|
|
|
|
|
|
-record(cdb_options,
|
2017-07-31 19:53:01 +02:00
|
|
|
{max_size :: integer() | undefined,
|
|
|
|
file_path :: string() | undefined,
|
|
|
|
waste_path :: string() | undefined,
|
|
|
|
binary_mode = false :: boolean(),
|
|
|
|
sync_strategy = sync}).
|
2016-09-07 17:58:12 +01:00
|
|
|
|
|
|
|
-record(inker_options,
|
2017-07-31 19:47:58 +02:00
|
|
|
{cdb_max_size :: integer() | undefined,
|
|
|
|
root_path :: string() | undefined,
|
2017-07-31 19:58:56 +02:00
|
|
|
cdb_options :: #cdb_options{} | undefined,
|
2016-09-27 14:58:26 +01:00
|
|
|
start_snapshot = false :: boolean(),
|
2017-07-31 19:47:58 +02:00
|
|
|
source_inker :: pid() | undefined,
|
2016-10-29 00:52:49 +01:00
|
|
|
reload_strategy = [] :: list(),
|
2017-07-31 19:47:58 +02:00
|
|
|
waste_retention_period :: integer() | undefined,
|
2017-11-13 14:02:39 +00:00
|
|
|
compression_method = native :: lz4|native,
|
|
|
|
compress_on_receipt = false :: boolean(),
|
2016-10-29 00:52:49 +01:00
|
|
|
max_run_length}).
|
2016-09-08 14:21:30 +01:00
|
|
|
|
|
|
|
-record(penciller_options,
|
2017-07-31 19:39:40 +02:00
|
|
|
{root_path :: string() | undefined,
|
|
|
|
max_inmemory_tablesize :: integer() | undefined,
|
2016-09-23 18:50:29 +01:00
|
|
|
start_snapshot = false :: boolean(),
|
2017-03-06 18:42:32 +00:00
|
|
|
snapshot_query,
|
2017-07-31 19:39:40 +02:00
|
|
|
bookies_mem :: tuple() | undefined,
|
|
|
|
source_penciller :: pid() | undefined,
|
2017-04-05 09:16:01 +01:00
|
|
|
snapshot_longrunning = true :: boolean(),
|
2017-11-13 14:02:39 +00:00
|
|
|
compression_method = native :: lz4|native,
|
2017-02-27 20:23:36 +00:00
|
|
|
levelzero_cointoss = false :: boolean()}).
|
2016-09-15 10:53:24 +01:00
|
|
|
|
2016-09-27 14:58:26 +01:00
|
|
|
-record(iclerk_options,
|
2017-07-31 19:53:01 +02:00
|
|
|
{inker :: pid() | undefined,
|
|
|
|
max_run_length :: integer() | undefined,
|
|
|
|
cdb_options = #cdb_options{} :: #cdb_options{},
|
|
|
|
waste_retention_period :: integer() | undefined,
|
2017-11-13 14:02:39 +00:00
|
|
|
compression_method = native :: lz4|native,
|
2017-07-31 19:53:01 +02:00
|
|
|
reload_strategy = [] :: list()}).
|
2016-09-27 14:58:26 +01:00
|
|
|
|
2017-07-11 11:44:01 +01:00
|
|
|
-record(recent_aae, {filter :: whitelist|blacklist,
|
|
|
|
% the buckets list should either be a
|
|
|
|
% - whitelist - specific buckets are included, and
|
|
|
|
% entries are indexed by bucket name
|
|
|
|
% - blacklist - specific buckets are excluded, and
|
|
|
|
% all other entries are indexes using the special
|
|
|
|
% $all bucket
|
|
|
|
|
|
|
|
buckets :: list(),
|
|
|
|
% whitelist or blacklist of buckets to support recent
|
|
|
|
% AAE
|
2017-06-30 10:03:36 +01:00
|
|
|
|
|
|
|
limit_minutes :: integer(),
|
|
|
|
% how long to retain entries the temporary index for
|
|
|
|
% It will actually be retained for limit + unit minutes
|
|
|
|
% 60 minutes seems sensible
|
|
|
|
|
|
|
|
unit_minutes :: integer(),
|
|
|
|
% What the minimum unit size will be for a query
|
|
|
|
% e.g. the minimum time duration to be used in range
|
|
|
|
% queries of the aae index
|
|
|
|
% 5 minutes seems sensible
|
|
|
|
|
|
|
|
tree_size = small :: atom()
|
|
|
|
% Just defaulted to small for now
|
|
|
|
}).
|
|
|
|
|
2016-09-15 10:53:24 +01:00
|
|
|
-record(r_content, {
|
|
|
|
metadata,
|
|
|
|
value :: term()
|
|
|
|
}).
|
|
|
|
|
|
|
|
-record(r_object, {
|
|
|
|
bucket,
|
|
|
|
key,
|
|
|
|
contents :: [#r_content{}],
|
|
|
|
vclock,
|
|
|
|
updatemetadata=dict:store(clean, true, dict:new()),
|
|
|
|
updatevalue :: term()}).
|