Module cloudi_write_ahead_logging

CloudI Write Ahead Logging (WAL)

File storage for transaction logging done by cloudi_service_queue.

Copyright © 2014 Michael Truog

Version: 1.3.2 Dec 20 2014 18:28:44 ------------------------------------------------------------------------

Authors: Michael Truog (mjtruog [at] gmail (dot) com).

Description

CloudI Write Ahead Logging (WAL)

File storage for transaction logging done by cloudi_service_queue. No disk index is maintained, but an in-memory index is kept.

Data Types

non_neg_integer_64bit()

non_neg_integer_64bit() = 0..18446744073709551615

pos_integer_64bit()

pos_integer_64bit() = 1..18446744073709551615

Function Index

erase/2
erase_retry/4
fetch_keys/1
new/2
size/1
size_free/1
store_end/3
store_fail/2
store_start/2
update/3

Function Details

erase/2

erase(ChunkId::cloudi_service:trans_id(), State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request(), #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

erase_retry/4

erase_retry(ChunkId::cloudi_service:trans_id(), RetryMax::non_neg_integer(), RetryF::fun((cloudi_service_queue:request()) -> {ok, cloudi_service:trans_id()} | {error, any()}), State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

fetch_keys/1

fetch_keys(State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> [cloudi_service:trans_id()]

new/2

new(FilePath::string() | binary(), RetryF::fun((cloudi_service_queue:request()) -> {ok, cloudi_service:trans_id()} | {error, any()})) -> #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

size/1

size(State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

size_free/1

size_free(State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

store_end/3

store_end(ChunkId::cloudi_service:trans_id(), Chunk::#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

store_fail/2

store_fail(Chunk::#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

store_start/2

store_start(ChunkRequest::cloudi_service_queue:request(), State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

update/3

update(ChunkId::cloudi_service:trans_id(), UpdateF::fun((cloudi_service_queue:request()) -> {cloudi_service:trans_id(), cloudi_service_queue:request()} | undefined), State::#state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request() | undefined, #state{file = undefined | binary() | string(), position = undefined | non_neg_integer(), chunks = dict(), chunks_free = [#chunk{size = undefined | pos_integer_64bit(), position = undefined | non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}


Generated by EDoc, Dec 20 2014, 18:28:44.