@@ -222,12 +222,7 @@ fn doCheckpoint(self: *Self) !bool {
222
222
self .memory_segments .commitUpdate (& memory_segments_update );
223
223
self .file_segments .commitUpdate (& file_segments_update );
224
224
225
- if (self .file_segments .needsMerge ()) {
226
- log .debug ("too many file segments, scheduling merging" , .{});
227
- if (self .file_segment_merge_task ) | task | {
228
- self .scheduler .scheduleTask (task );
229
- }
230
- }
225
+ self .maybeScheduleFileSegmentMerge ();
231
226
232
227
return true ;
233
228
}
@@ -319,8 +314,27 @@ pub fn open(self: *Self, create: bool) !void {
319
314
log .info ("index loaded" , .{});
320
315
}
321
316
317
+ fn maybeScheduleMemorySegmentMerge (self : * Self ) void {
318
+ if (self .memory_segments .needsMerge ()) {
319
+ log .debug ("too many memory segments, scheduling merging" , .{});
320
+ if (self .memory_segment_merge_task ) | task | {
321
+ self .scheduler .scheduleTask (task );
322
+ }
323
+ }
324
+ }
325
+
326
+ fn maybeScheduleFileSegmentMerge (self : * Self ) void {
327
+ if (self .file_segments .needsMerge ()) {
328
+ log .debug ("too many file segments, scheduling merging" , .{});
329
+ if (self .file_segment_merge_task ) | task | {
330
+ self .scheduler .scheduleTask (task );
331
+ }
332
+ }
333
+ }
334
+
322
335
fn maybeScheduleCheckpoint (self : * Self ) void {
323
336
if (self .memory_segments .segments .value .getFirst ()) | first_node | {
337
+ log .debug ("the first memory segment is too big, scheduling checkpoint" , .{});
324
338
if (first_node .value .getSize () >= self .options .min_segment_size ) {
325
339
if (self .checkpoint_task ) | task | {
326
340
self .scheduler .scheduleTask (task );
@@ -363,12 +377,8 @@ pub fn updateInternal(self: *Self, changes: []const Change, commit_id: ?u64) !vo
363
377
364
378
self .memory_segments .commitUpdate (& upd );
365
379
366
- if (self .memory_segments .needsMerge ()) {
367
- log .debug ("too many memory segments, scheduling merging" , .{});
368
- if (self .memory_segment_merge_task ) | task | {
369
- self .scheduler .scheduleTask (task );
370
- }
371
- }
380
+ self .maybeScheduleMemorySegmentMerge ();
381
+ self .maybeScheduleCheckpoint ();
372
382
}
373
383
374
384
pub fn acquireReader (self : * Self ) IndexReader {
0 commit comments