[Tickets #14368] Re: Improve EAS performance with large History tables
noreply at bugs.horde.org
noreply at bugs.horde.org
Mon May 23 00:43:11 UTC 2016
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: https://bugs.horde.org/ticket/14368
------------------------------------------------------------------------------
Ticket | 14368
Updated By | Michael Rubinsky <mrubinsk at horde.org>
Summary | Improve EAS performance with large History tables
Queue | Synchronization
Version | FRAMEWORK_5_2
Type | Enhancement
-State | New
+State | Feedback
-Priority | 2. Medium
+Priority | 1. Low
Milestone |
Patch |
Owners |
------------------------------------------------------------------------------
Michael Rubinsky <mrubinsk at horde.org> (2016-05-23 00:43) wrote:
This confuses me. We filter the history query on the calendar(s) being
checked, so the current value of modSeq should be inconsequential
since the query will only return entries with higher modSeq values AND
matching the calendar. Could you clarify where you see loq modSeq
values increasing "the number of history entries that has to be
checked"?
> These lookups can be reduced if we update the sync state from time
> to time. This could be done if we override the getChanges method in
> Horde_ActiveSync_State_Sql:
>
> public function getChanges(array $options = array())
> {
> parent::getChanges($options);
> if ($this->_type == Horde_ActiveSync::REQUEST_TYPE_PING &&
> empty($this->_changes) &&
> $this->_lastSyncStamp < $this->_thisSyncStamp - 10000) {
>
> $this->_lastSyncStamp = $this->_thisSyncStamp;
> $this->_type = Horde_ActiveSync::REQUEST_TYPE_SYNC;
> $this->save();
> $this->_type = Horde_ActiveSync::REQUEST_TYPE_PING;
> }
> return $this->_changes;
> }
>
> The type change is a bit ugly, but the save method would clear the
> sync_data otherwise. That could be changed in the save method.
We can't change the request type. This would affect a number of other
things, including preventing mirroring client-sourced changes back to
the client and the handling of pending changes. It would possible
(though admittedly a very small chance) that this could overwrite any
existing pending changes in the state. Basically this changes the sync
state without changing the synckey, which we cannot do.
> The update might only be needed on collections that support modseq,
> but the connector is not available from the state. I don't know if
> it would cause problems with mail folders, every 10000 seconds would
> be 8 times per day which would be more than necessary.
More information about the bugs
mailing list