Skip to content

Commit ab810d6

Browse files
committed
osiris_log_manifest: Make log_info() more specific
1 parent 2da75b6 commit ab810d6

File tree

2 files changed

+24
-31
lines changed

2 files changed

+24
-31
lines changed

src/osiris_log.erl

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -567,15 +567,15 @@ init(#{dir := Dir,
567567
Manifest0},
568568
current_epoch = Epoch}});
569569
#{num_segments := NumSegments,
570-
first := #{first := #chunk_info{id = FstChId,
571-
timestamp = FstTs}},
572-
last := #{file := Filename,
573-
size := Size,
574-
chunks := NumChunks,
575-
last := #chunk_info{epoch = LastEpoch,
576-
timestamp = LastTs,
577-
id = LastChId,
578-
num = LastNum}}} ->
570+
first_offset := FstChId,
571+
first_timestamp := FstTs,
572+
active_segment := #{file := Filename,
573+
size := Size,
574+
chunks := NumChunks,
575+
last := #chunk_info{epoch = LastEpoch,
576+
timestamp = LastTs,
577+
id = LastChId,
578+
num = LastNum}}} ->
579579
%% assert epoch is same or larger
580580
%% than last known epoch
581581
case LastEpoch > Epoch of
@@ -615,7 +615,7 @@ init(#{dir := Dir,
615615
current_file = filename:basename(Filename),
616616
fd = SegFd};
617617
#{num_segments := 1,
618-
first := #{file := Filename}} ->
618+
active_segment := #{file := Filename}} ->
619619
%% the empty log case
620620
{ok, SegFd} = open(Filename, ?FILE_OPTS_WRITE),
621621
{ok, _} = file:position(SegFd, ?LOG_HEADER_SIZE),
@@ -654,29 +654,22 @@ writer_manifest(#{dir := Dir} = Config) ->
654654
#{num_segments => 0,
655655
segment_offsets => []};
656656
{SegmentOffsets,
657-
#seg_info{file = FirstFile,
658-
size = FirstSize,
659-
chunks = FirstNumChunks,
660-
first = FirstFirstChunk,
661-
last = FirstLastChunk},
657+
#seg_info{first = #chunk_info{id = FirstOffset,
658+
timestamp = FirstTimestamp}},
662659
#seg_info{file = LastFile,
663660
size = LastSize,
664661
chunks = LastNumChunks,
665662
first = LastFirstChunk,
666663
last = #chunk_info{} = LastLastChunk}} ->
667-
First = #{file => FirstFile,
668-
size => FirstSize,
669-
chunks => FirstNumChunks,
670-
first => FirstFirstChunk,
671-
last => FirstLastChunk},
672-
Last = #{file => LastFile,
673-
size => LastSize,
674-
chunks => LastNumChunks,
675-
first => LastFirstChunk,
676-
last => LastLastChunk},
664+
SegInfo = #{file => LastFile,
665+
size => LastSize,
666+
chunks => LastNumChunks,
667+
first => LastFirstChunk,
668+
last => LastLastChunk},
677669
#{num_segments => length(SegmentOffsets),
678-
first => First,
679-
last => Last,
670+
first_offset => FirstOffset,
671+
first_timestamp => FirstTimestamp,
672+
active_segment => SegInfo,
680673
segment_offsets => SegmentOffsets};
681674
{[_] = SegmentOffsets,
682675
#seg_info{last = undefined,
@@ -685,8 +678,7 @@ writer_manifest(#{dir := Dir} = Config) ->
685678
SegInfo = #{file => Filename,
686679
size => Size},
687680
#{num_segments => 1,
688-
first => SegInfo,
689-
last => SegInfo,
681+
active_segment => SegInfo,
690682
segment_offsets => SegmentOffsets}
691683
end,
692684
%% The segment_opened event will create the index fd.

src/osiris_log_manifest.erl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
-type log_info() ::
1616
#{num_segments := non_neg_integer(),
1717
%% These keys may be unset if the log is empty.
18-
first => segment_info(),
19-
last => segment_info(),
18+
first_offset => osiris:offset(),
19+
first_timestamp => osiris:timestamp(),
20+
last_segment => segment_info(),
2021
%% Optional. Included by the default impls of writer_manifest/1 and
2122
%% acceptor_manifest/3 for the convenience of other impls.
2223
segment_offsets => [osiris:offset()]

0 commit comments

Comments
 (0)