Closed Bug 311405 Opened 19 years ago Closed 19 years ago

Improve the way the ics provider handles batches

Categories

(Calendar :: Internal Components, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mvl, Assigned: mvl)

Details

Attachments

(1 file, 1 obsolete file)

The ics provider tries to prevent writing multiple times at the same time. To do
that, it has a queue of unprocessed items. But while processing that queue, it
still writes/uploads. This makes batches slow.
Attached patch patch v1 (obsolete) — — Splinter Review
Originally, writeICS was called from the observer of the memory calendar. This
was done because that we were sure that all changes were flushed to disk.
But there are only two places that can modify the memory calendar: the initial
parsing of the file and processQueue. The changes from parsing don't need to
get saved back, so writeing from processQueue is ok.
By moving the call, we can do it after the queue is empty, which reduces the
number of flushes from n to 2 (for n>2, and n is the number of changes in the
batch, for example importing) 1 flush for the first change, when the queue is
still empty, and one for all the rest. not perfect, but a lot better.
Attachment #198730 - Flags: first-review?(dmose)
Attached patch the correct patch — — Splinter Review
The previous patch has some debug stuff still in it.
Attachment #198731 - Flags: first-review?(dmose)
Attachment #198730 - Attachment is obsolete: true
Attachment #198730 - Flags: first-review?(dmose)
Comment on attachment 198731 [details] [diff] [review]
the correct patch

r=dmose
Attachment #198731 - Flags: first-review?(dmose) → first-review+
patch checked in.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
I've seen a couple of these since this patch landed:

###!!! ASSERTION: nsPipeInputStream::Seek: 'Not Reached', file
c:/s/aviary-trunk/mozilla/xpcom/io/nsPipe3.cpp, line 855
WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv)) failed, file
c:/s/aviary-trunk/mozilla/xpcom/io/nsMultiplexInputStream.cpp, line 329
************************************************************
* Call to xpconnect wrapped JSObject produced this error:  *
[Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIHttpChannel.requestSucceeded]"  nsresult:
"0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame ::
file:///C:/s/aviary-trunk/mozilla/obj-lightning/dist/xpi-stage/lightning/components/calICSCalendar.js
:: anonymous :: line 518"  data: no]
************************************************************
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: