diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-11 16:32:50 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-11 16:32:50 +0100 |
commit | 88d97300ed6d604f5cbe426bb8c5e2fd52762518 (patch) | |
tree | 1d8889ac8e2cc21bed5149d66a3e1a5121cf6503 /examples/maildirresource/maildirresource.cpp | |
parent | da89ac85482997cabd48a2c996c619529f256283 (diff) | |
download | sink-88d97300ed6d604f5cbe426bb8c5e2fd52762518.tar.gz sink-88d97300ed6d604f5cbe426bb8c5e2fd52762518.zip |
Use a single transaction to append all messages generated during a sync.
This get's a sync of 4890 mails from 55s to less than 10s.
Diffstat (limited to 'examples/maildirresource/maildirresource.cpp')
-rw-r--r-- | examples/maildirresource/maildirresource.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index 0ddd8f8..05fcbb6 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp | |||
@@ -167,6 +167,7 @@ void MaildirResource::synchronizeMails(Sink::Storage::Transaction &transaction, | |||
167 | } | 167 | } |
168 | ); | 168 | ); |
169 | 169 | ||
170 | mSynchronizerQueue.startTransaction(); | ||
170 | int count = 0; | 171 | int count = 0; |
171 | while (entryIterator->hasNext()) { | 172 | while (entryIterator->hasNext()) { |
172 | count++; | 173 | count++; |
@@ -196,6 +197,7 @@ void MaildirResource::synchronizeMails(Sink::Storage::Transaction &transaction, | |||
196 | 197 | ||
197 | createOrModify(transaction, synchronizationTransaction, *mMailAdaptorFactory, bufferType, remoteId, mail); | 198 | createOrModify(transaction, synchronizationTransaction, *mMailAdaptorFactory, bufferType, remoteId, mail); |
198 | } | 199 | } |
200 | mSynchronizerQueue.commit(); | ||
199 | const auto elapsed = time->elapsed(); | 201 | const auto elapsed = time->elapsed(); |
200 | Trace() << "Synchronized " << count << " mails in " << listingPath << Sink::Log::TraceTime(elapsed) << " " << elapsed/qMax(count, 1) << " [ms/mail]"; | 202 | Trace() << "Synchronized " << count << " mails in " << listingPath << Sink::Log::TraceTime(elapsed) << " " << elapsed/qMax(count, 1) << " [ms/mail]"; |
201 | 203 | ||