Module bitcask_fileops

Basic file i/o operations for bitcask.

Description

Basic file i/o operations for bitcask.

Data Types

key_fold_fun()

key_fold_fun() = fun((binary(), integer(), {integer(), integer()}, any()) -> any())

key_fold_mode()

key_fold_mode() = datafile | hintfile | default | recovery

Function Index

check_write/4
close/1Use when done writing a file.
close_all/1Use when closing multiple files.
close_for_writing/1Close a file for writing, but leave it open for reads.
create_file/3Open a new file for writing.
data_file_tstamps/1
delete/1Use only after merging, to permanently delete a data file.
file_tstamp/1
filename/1
fold/3
fold_keys/3
fold_keys/4
hintfile_name/1
is_file/1
mk_filename/2
open_file/1Open an existing file for reading.
open_file/2
read/3Given an Offset and Size, get the corresponding k/v from Filename.
read_file_info/1
sync/1Call the OS's fsync(2) system call on the cask and hint files.
un_write/1
write/4Write a Key-named binary data field ("Value") to the Filestate.
write_file_info/2

Function Details

check_write/4

check_write(Filestate::fresh | #filestate{}, Key::binary(), ValSize::non_neg_integer(), MaxSize::integer()) -> fresh | wrap | ok

close/1

close(State::#filestate{} | fresh | undefined) -> ok

Use when done writing a file. (never open for writing again)

close_all/1

close_all(FileStates::[#filestate{} | fresh | undefined]) -> ok

Use when closing multiple files. (never open for writing again)

close_for_writing/1

close_for_writing(State::#filestate{} | fresh | undefined) -> #filestate{} | ok

Close a file for writing, but leave it open for reads.

create_file/3

create_file(Dirname::string(), Opts::[any()], Keydir::reference()) -> {ok, #filestate{}} | {error, term()}

Open a new file for writing. Called on a Dirname, will open a fresh file in that directory.

data_file_tstamps/1

data_file_tstamps(Dirname::string()) -> [{integer(), string()}]

delete/1

delete(Filestate::#filestate{}) -> ok | {error, atom()}

Use only after merging, to permanently delete a data file.

file_tstamp/1

file_tstamp(Filestate::#filestate{} | string()) -> integer()

filename/1

filename(Filestate::#filestate{}) -> string()

fold/3

fold(Filestate::fresh | #filestate{}, Fun::fun((binary(), binary(), integer(), {list(), integer(), integer(), integer()}, any()) -> any()), Acc::any()) -> any() | {error, any()}

fold_keys/3

fold_keys(State::fresh | #filestate{}, Fun::key_fold_fun(), Acc::any()) -> any() | {error, any()}

fold_keys/4

fold_keys(State::fresh | #filestate{}, Fun::key_fold_fun(), Acc::any(), Mode::key_fold_mode()) -> any() | {error, any()}

hintfile_name/1

hintfile_name(Filename::string() | #filestate{}) -> string()

is_file/1

is_file(File) -> any()

mk_filename/2

mk_filename(Dirname::string(), Tstamp::integer()) -> string()

open_file/1

open_file(Filename::string()) -> {ok, #filestate{}} | {error, any()}

Open an existing file for reading. Called with fully-qualified filename.

open_file/2

open_file(Filename, X2) -> any()

read/3

read(Filename::string() | #filestate{}, Offset::integer(), Size::integer()) -> {ok, Key::binary(), Value::binary()} | {error, bad_crc} | {error, atom()}

Given an Offset and Size, get the corresponding k/v from Filename.

read_file_info/1

read_file_info(FileName) -> any()

sync/1

sync(Filestate::#filestate{}) -> ok

Call the OS's fsync(2) system call on the cask and hint files.

un_write/1

un_write(Filestate) -> any()

write/4

write(Filestate::#filestate{}, Key::binary(), Value::binary(), Tstamp::integer()) -> {ok, #filestate{}, Offset::integer(), Size::integer()} | {error, read_only}

Write a Key-named binary data field ("Value") to the Filestate.

write_file_info/2

write_file_info(FileName, Info) -> any()


Generated by EDoc