Skip to content

Commit 2c31dbc

Browse files
committed
Rename index file to manifest file
1 parent 9df9cf0 commit 2c31dbc

File tree

3 files changed

+30
-30
lines changed

3 files changed

+30
-30
lines changed

src/Index.zig

+8-8
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,10 @@ fn loadSegments(self: *Self) !u64 {
155155
self.segments_lock.lock();
156156
defer self.segments_lock.unlock();
157157

158-
const segment_ids = filefmt.readIndexFile(self.dir, self.allocator) catch |err| {
158+
const segment_ids = filefmt.readManifestFile(self.dir, self.allocator) catch |err| {
159159
if (err == error.FileNotFound) {
160160
if (self.options.create) {
161-
try self.updateIndexFile(self.file_segments.segments.value);
161+
try self.updateManifestFile(self.file_segments.segments.value);
162162
return 0;
163163
}
164164
return error.IndexNotFound;
@@ -212,7 +212,7 @@ fn doCheckpoint(self: *Self) !bool {
212212

213213
file_segments_update.appendSegment(target);
214214

215-
try self.updateIndexFile(file_segments_update.segments.value);
215+
try self.updateManifestFile(file_segments_update.segments.value);
216216

217217
// commit updated lists
218218

@@ -259,18 +259,18 @@ fn stopCheckpointThread(self: *Self) void {
259259
self.checkpoint_thread = null;
260260
}
261261

262-
fn updateIndexFile(self: *Self, segments: *FileSegmentList) !void {
263-
var ids = try segments.getInfos(self.allocator);
264-
defer ids.deinit(self.allocator);
262+
fn updateManifestFile(self: *Self, segments: *FileSegmentList) !void {
263+
const infos = try segments.getInfos(self.allocator);
264+
defer self.allocator.free(infos);
265265

266-
try filefmt.writeIndexFile(self.dir, ids.items);
266+
try filefmt.writeManifestFile(self.dir, infos);
267267
}
268268

269269
fn maybeMergeFileSegments(self: *Self) !bool {
270270
var upd = try self.file_segments.prepareMerge(self.allocator) orelse return false;
271271
defer self.file_segments.cleanupAfterUpdate(self.allocator, &upd);
272272

273-
try self.updateIndexFile(upd.segments.value);
273+
try self.updateManifestFile(upd.segments.value);
274274

275275
self.segments_lock.lock();
276276
defer self.segments_lock.unlock();

src/filefmt.zig

+17-17
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ test "check writeVarint32" {
9292

9393
pub const max_file_name_size = 64;
9494
const segment_file_name_fmt = "{x:0>16}-{x:0>8}.data";
95-
pub const index_file_name = "index.dat";
95+
pub const manifest_file_name = "manifest";
9696

9797
pub fn buildSegmentFileName(buf: []u8, info: SegmentInfo) []u8 {
9898
assert(buf.len == max_file_name_size);
@@ -487,26 +487,26 @@ test "writeFile/readFile" {
487487
}
488488
}
489489

490-
const index_header_magic_v1: u32 = 0x49445831; // "IDX1" in big endian
490+
const manifest_header_magic_v1: u32 = 0x49445831; // "IDX1" in big endian
491491

492-
const IndexFileHeader = struct {
493-
magic: u32 = index_header_magic_v1,
492+
const ManifestFileHeader = struct {
493+
magic: u32 = manifest_header_magic_v1,
494494

495495
pub fn msgpackFormat() msgpack.StructFormat {
496496
return .{ .as_map = .{ .key = .field_index } };
497497
}
498498
};
499499

500-
pub fn writeIndexFile(dir: std.fs.Dir, segments: []const SegmentInfo) !void {
501-
log.info("writing index file {s}", .{index_file_name});
500+
pub fn writeManifestFile(dir: std.fs.Dir, segments: []const SegmentInfo) !void {
501+
log.info("writing manifest file {s}", .{manifest_file_name});
502502

503-
var file = try dir.atomicFile(index_file_name, .{});
503+
var file = try dir.atomicFile(manifest_file_name, .{});
504504
defer file.deinit();
505505

506506
var buffered_writer = std.io.bufferedWriter(file.file.writer());
507507
const writer = buffered_writer.writer();
508508

509-
try msgpack.encode(IndexFileHeader{}, writer);
509+
try msgpack.encode(ManifestFileHeader{}, writer);
510510
try msgpack.encode(segments, writer);
511511

512512
try buffered_writer.flush();
@@ -516,23 +516,23 @@ pub fn writeIndexFile(dir: std.fs.Dir, segments: []const SegmentInfo) !void {
516516
try file.finish();
517517

518518
log.info("wrote index file {s} (segments = {})", .{
519-
index_file_name,
519+
manifest_file_name,
520520
segments.len,
521521
});
522522
}
523523

524-
pub fn readIndexFile(dir: std.fs.Dir, allocator: std.mem.Allocator) ![]SegmentInfo {
525-
log.info("reading index file {s}", .{index_file_name});
524+
pub fn readManifestFile(dir: std.fs.Dir, allocator: std.mem.Allocator) ![]SegmentInfo {
525+
log.info("reading manifest file {s}", .{manifest_file_name});
526526

527-
var file = try dir.openFile(index_file_name, .{});
527+
var file = try dir.openFile(manifest_file_name, .{});
528528
defer file.close();
529529

530530
var buffered_reader = std.io.bufferedReader(file.reader());
531531
const reader = buffered_reader.reader();
532532

533-
const header = try msgpack.decodeLeaky(IndexFileHeader, null, reader);
534-
if (header.magic != index_header_magic_v1) {
535-
return error.InvalidIndexfile;
533+
const header = try msgpack.decodeLeaky(ManifestFileHeader, null, reader);
534+
if (header.magic != manifest_header_magic_v1) {
535+
return error.InvalidManifestFile;
536536
}
537537

538538
return try msgpack.decodeLeaky([]SegmentInfo, allocator, reader);
@@ -548,9 +548,9 @@ test "readIndexFile/writeIndexFile" {
548548
.{ .version = 4, .merges = 0 },
549549
};
550550

551-
try writeIndexFile(tmp.dir, &segments);
551+
try writeManifestFile(tmp.dir, &segments);
552552

553-
const segments2 = try readIndexFile(tmp.dir, std.testing.allocator);
553+
const segments2 = try readManifestFile(tmp.dir, std.testing.allocator);
554554
defer std.testing.allocator.free(segments2);
555555

556556
try testing.expectEqualSlices(SegmentInfo, &segments, segments2);

src/segment_list.zig

+5-5
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ pub fn SegmentList(Segment: type) type {
100100
}
101101
}
102102

103-
pub fn getInfos(self: Self, allocator: Allocator) Allocator.Error!std.ArrayListUnmanaged(SegmentInfo) {
104-
var ids = try std.ArrayListUnmanaged(SegmentInfo).initCapacity(allocator, self.nodes.items.len);
105-
for (self.nodes.items) |node| {
106-
ids.appendAssumeCapacity(node.value.info);
103+
pub fn getInfos(self: Self, allocator: Allocator) Allocator.Error![]SegmentInfo {
104+
var infos = try allocator.alloc(SegmentInfo, self.nodes.items.len);
105+
for (self.nodes.items, 0..) |node, i| {
106+
infos[i] = node.value.info;
107107
}
108-
return ids;
108+
return infos;
109109
}
110110

111111
pub fn search(self: Self, hashes: []const u32, results: *SearchResults, deadline: Deadline) !void {

0 commit comments

Comments
 (0)