fix(ds): Improve typespecs and descriptions in storage_layer

This commit is contained in:
ieQu1 2024-07-01 01:01:03 +02:00
parent 71dad0242e
commit eb80402ccb
No known key found for this signature in database
GPG Key ID: 488654DF3FED6FDE
1 changed files with 18 additions and 1 deletions

View File

@ -290,7 +290,9 @@
emqx_ds:time(), emqx_ds:time(),
_IsCurrentGeneration :: boolean() _IsCurrentGeneration :: boolean()
) -> ) ->
{ok, DeleteIterator, _NDeleted :: non_neg_integer(), _IteratedOver :: non_neg_integer()} | emqx_ds:error(_). {ok, DeleteIterator, _NDeleted :: non_neg_integer(), _IteratedOver :: non_neg_integer()}
| {ok, end_of_stream}
| emqx_ds:error(_).
-callback handle_event(shard_id(), generation_data(), emqx_ds:time(), CustomEvent | tick) -> -callback handle_event(shard_id(), generation_data(), emqx_ds:time(), CustomEvent | tick) ->
[CustomEvent]. [CustomEvent].
@ -313,6 +315,8 @@
drop_shard(Shard) -> drop_shard(Shard) ->
ok = rocksdb:destroy(db_dir(Shard), []). ok = rocksdb:destroy(db_dir(Shard), []).
%% @doc This is a convenicence wrapper that combines `prepare' and
%% `commit' operations.
-spec store_batch( -spec store_batch(
shard_id(), shard_id(),
[{emqx_ds:time(), emqx_types:message()}], [{emqx_ds:time(), emqx_types:message()}],
@ -329,6 +333,15 @@ store_batch(Shard, Messages, Options) ->
Error Error
end. end.
%% @doc Transform a batch of messages into a "cooked batch" that can
%% be stored in the transaction log or transfered over the network.
%%
%% Important: the caller MUST ensure that timestamps within the shard
%% form a strictly increasing monotonic sequence through out the whole
%% lifetime of the shard.
%%
%% The underlying storage layout MAY use timestamp as a unique message
%% ID.
-spec prepare_batch( -spec prepare_batch(
shard_id(), shard_id(),
[{emqx_ds:time(), emqx_types:message()}], [{emqx_ds:time(), emqx_types:message()}],
@ -361,6 +374,10 @@ prepare_batch(Shard, Messages = [{Time, _} | _], Options) ->
prepare_batch(_Shard, [], _Options) -> prepare_batch(_Shard, [], _Options) ->
ignore. ignore.
%% @doc Commit cooked batch to the storage.
%%
%% The underlying storage layout must guarantee that this operation is
%% idempotent.
-spec commit_batch( -spec commit_batch(
shard_id(), shard_id(),
cooked_batch(), cooked_batch(),