package octez-internal-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/irmin_pack_unix/Irmin_pack_unix/File_manager/Make/Suffix/index.html
Module Make.Suffix
Source
Abstraction for a chunked suffix. It is functionally equivalent to Append_only_file
but with a chunked implementation that is parameterized by
start_idx
forcreate_rw
to know the starting file name, andstart_idx
andchunk_num
for the open functions to know the starting file name and how many files there are.
Abstraction for irmin-pack's append only files (i.e. suffix and dict).
type open_error = [
| Io.open_error
| `Closed
| `Invalid_argument
| `Inconsistent_store
| `Read_out_of_bounds
]
type add_new_error = [
| open_error
| Io.close_error
| `Pending_flush
| `File_exists of string
| `Multiple_empty_chunks
]
val create_rw :
root:string ->
start_idx:int ->
overwrite:bool ->
auto_flush_threshold:int ->
auto_flush_procedure:Ao.auto_flush_procedure ->
(t, [> create_error ]) Stdlib.result
val open_rw :
root:string ->
appendable_chunk_poff:Optint.Int63.t ->
start_idx:int ->
chunk_num:int ->
dead_header_size:int ->
auto_flush_threshold:int ->
auto_flush_procedure:Ao.auto_flush_procedure ->
(t, [> open_error ]) Stdlib.result
val open_ro :
root:string ->
appendable_chunk_poff:Optint.Int63.t ->
dead_header_size:int ->
start_idx:int ->
chunk_num:int ->
(t, [> open_error ]) Stdlib.result
val add_chunk :
auto_flush_threshold:int ->
auto_flush_procedure:Ao.auto_flush_procedure ->
t ->
(unit, [> add_new_error ]) Stdlib.result
appendable_chunk_poff t
is the number of bytes of the chunk file that is currently appendable. It does not perform IO.
RW mode
It also counts the bytes not flushed yet.
RO mode
This information originates from the latest reload of the control file. Calling refresh_appendable_chunk_poff t
updates appendable_chunk_poff
.
val refresh_appendable_chunk_poff :
t ->
Optint.Int63.t ->
(unit, [> `Rw_not_allowed ]) Stdlib.result
Ingest the new end offset of the appendable chunk file. Typically happens in RO mode when the control file has been re-read.
RW mode
Always returns Error `Rw_not_allowed
.
end_soff t
is the end offset for the chunked suffix. The valid range of offsets is 0 <= off < end_soff. Therefore, end_soff
also represents the length of the chunked suffix.