From ad281240644ee370c75d95b35ad7833863257286 Mon Sep 17 00:00:00 2001 From: "Eric Wong (Contractor, The Linux Foundation)" Date: Mon, 19 Mar 2018 08:14:34 +0000 Subject: v2writable: support "barrier" operation to avoid reforking Stopping and starting a bunch of processes to look up duplicates or removals is inefficient. Take advantage of checkpointing in "git fast-import" and transactions in Xapian and SQLite. --- lib/PublicInbox/Import.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/Import.pm') diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm index 664bec69..8406c9e2 100644 --- a/lib/PublicInbox/Import.pm +++ b/lib/PublicInbox/Import.pm @@ -133,7 +133,6 @@ sub check_remove_v1 { (undef, $cur); } -# used for v2 (maybe) sub checkpoint { my ($self) = @_; return unless $self->{pid}; @@ -141,6 +140,15 @@ sub checkpoint { undef; } +sub progress { + my ($self, $msg) = @_; + return unless $self->{pid}; + print { $self->{out} } "progress $msg\n" or wfail; + $self->{in}->getline eq "progress $msg\n" or die + "progress $msg not received\n"; + undef; +} + # used for v2 sub get_mark { my ($self, $mark) = @_; -- cgit v1.2.3-24-ge0c7