Bug 55921 - no logging during local sync
Summary: no logging during local sync
Status: RESOLVED FIXED
Alias: None
Product: SyncEvolution
Classification: Unclassified
Component: SyncEvolution (show other bugs)
Version: unspecified
Hardware: Other All
: high enhancement
Assignee: Patrick Ohly
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 55918
  Show dependency treegraph
 
Reported: 2012-10-12 13:50 UTC by Patrick Ohly
Modified: 2014-07-23 09:12 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Ohly 2012-10-12 13:50:56 UTC
The local sync in the IVI use case must not write anything to disk except for the actual data changes. This means:
- disable logging in .cache/syncevolution
- don't write sync meta data to .config/syncevolution for PBAP,
  because it always does a slow sync and needs no meta data.
Comment 1 Patrick Ohly 2012-12-04 14:47:22 UTC
(In reply to comment #0)
> - don't write sync meta data to .config/syncevolution for PBAP,
>   because it always does a slow sync and needs no meta data.

Done like this:

commit 4d9a23e8a4c8107b3664f019dcba3a155c7cacbd
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Tue Dec 4 15:38:03 2012 +0100

    PIM + sync: write less data to disk (part of FDO #55921)
    
    Avoid writing config file changes to disk by enabling a new
    "ephemeral" mode for syncing via the PIM Manager. This mode is enabled
    via the sync mode parameter of the D-Bus API and from there passed
    through to the SyncConfig and local sync helper. It cannot be enabled
    in the config files (yet?).
    
    In this mode, config file changes are not flushed resp. discarded
    directly in the config nodes. This prevents writing to .ini files in
    ~/.config.
    
    The "synthesis" binfile client files are still written, but they get
    redirected into the session directory, which can (and should) be set
    to a temp file system and get deleted again quickly.
    
    Data dumps are turned off now in the configs created by the PIM
    Manager.
Comment 2 Patrick Ohly 2012-12-04 16:14:18 UTC
(In reply to comment #0)
> The local sync in the IVI use case must not write anything to disk except
> for the actual data changes. This means:
> - disable logging in .cache/syncevolution

Instead of disabling it entirely, which may or may not be what is wanted,
better allow directing the logging to a temporary directory. I implemented two new peer properties for that.

Note that disabling it entirely is not possible at the moment, the synthesis meta information gets dumped into the session directories.

commit 4036ba701c6578c1cdbf61d047af24123a06fa30
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Tue Dec 4 17:11:21 2012 +0100

    PIM: allow configuration of session dirs (part of FDO #55921)
    
    Useful for moving the session directories to a temporary file system.
    They are essentially just useful for debugging when used as part of
    PIM Manager.
    
    - "logdir" - a directory in which directories are created with
                 debug information about sync session
    - "maxsessions" - number of sessions that are allowed to exist
                      after a sync (>= 0): 0 is special and means unlimited,
                      1 for just the latest, etc.;
                      old sessions are pruned heuristically (for example,
                      keep sessions where something changed instead of
                      some where nothing changed), so there is no hard
                      guarantee that the last n sessions are present.

Probably we need to revisit whether this functionality is good enough, so I am keeping this open.
Comment 3 Patrick Ohly 2013-09-30 11:36:00 UTC
Logging via DLT (bug #66769) should be the right solution for not writing any syncevolution-log.html files. The Synthesis binfile issue is still open.
Comment 4 Patrick Ohly 2014-07-23 09:12:13 UTC
(In reply to comment #3)
> The Synthesis binfile issue is still open.

Fixed now with libsynthesis:

commit a9d907d78ca0eba61f6796093770bdf049edb498
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Tue Jul 22 16:24:08 2014 +0200

    autotools: bump Linux/SyncEvolution sub-version for /dev/null binfiles

commit 15f4f871da86802ea24dee34e1cfea56cafb804b
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Tue Jul 22 15:59:10 2014 +0200

    binfile: /dev/null datadir path
    
    When the client already knows that it is never going to sync again or
    the next sync will have to be a slow sync anyway, then the binfile
    client files are not needed. Suppressing writing of them is useful on
    devices with flash memory to avoid flash wearout. The specific use
    case is PBAP caching in a car's head unit.
    
    When setting "/dev/null" as datadir, the platform layer will avoid
    creating the files and instead keep their content in memory. This is
    required (and sufficient) for syncing once, which will close and later
    read from some files at least once. Therefore the data cannot be
    thrown away completely.

And SyncEvolution:

commit 834c1e7a6b4d319c5853da217f3f3d0f8a944565
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Tue Jul 22 16:04:03 2014 +0200

    ephemeral sync: don't write binfile client files (FDO #55921)
    
    When doing PBAP caching, we don't want any meta data written because
    the next sync would not use it anyway. With the latest libsynthesis
    we can configure "/dev/null" as datadir for the client's binfiles and
    libsynthesis will avoid writing them.
    
    The PIM manager uses this for PBAP syncing automatically. For testing
    it can be enabled by setting the SYNCEVOLUTION_EPHEMERAL env variable.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.