Re: [PATCH 00/13] Adding a cache subsystem



Hello,

in general I am not sure about the idea of grilo doing cache of the
media. Doing cache of local content makes no sense in most cases and for
internet content we have GrlNet relying on libsoup caching and the http
protocol support.

The question is: isn't this good enough?

Notice that the use case with the UPnP plugin that triggered this work
from Jussi was quite specific, so I would not take that as a reason to
conclude that Grilo itself should provide specific means to deal with
content caching to apps / plugins.

Right now I think we should wait until we have feedback from our users
demanding improved caching support to consider adding it, but for now I
am not aware of that need, so I think we should hold our horses on this
topic for now.

Also, even if we decide to add cache support, I think we should first
discuss if we should add it as an utility (as you did here) or if we
should add the support in grilo itself making caching 100% transparent
to plugin developers or maybe some combination of both. We should also
discuss how we would configure the parameters of this caching system,
and what these parameters would actually be, etc But let's postpone that
debate until we are sure that adding cache support in Grilo makes sense
and solves a real problem for someone.

Iago

El mar, 15-02-2011 a las 19:07 +0100, Juan A. Suarez Romero escribió:
> Hi.
> 
> This new set of patches adds a new feature to Grilo: the choice of caching
> media content.
> 
> This work is motivated by a previous work Jussi did in UPnP (which was not
> merged at the end).
> 
> http://mail.gnome.org/archives/grilo-list/2011-January/msg00198.html
> 
> Roughly speaking, this set adds a new object, GrlMediaCache, a cache system
> that both clients and plugins can use to cache GrlMedia content and to retrieve
> it later.
> 
> Some of the features it has are:
> 
> - Cache can be temporal (default) or persistent, allowing applications to
>   recover later the cached content.
> - Allows to create relations parent-children in the cached content.
> - Allows to perform flexible searches in cached content, using a syntax similar
>   to SQL (see documentation for more information).
> 
> As an example of the search, one can search all cached content that contains a
> specific string in the "artist" field, or content with a duration greater than
> a specific value (or a combination of both).
> 
> While current API is problably enough for most use-cases, I don't mind to
> extend it if its worth. The point is that I tried to keep it as simple as
> possible.
> 
> Finally, I started this work as part of Grilo core, but later (last patch) I
> separated it from the core (as GrlNet utility is). Rationale is that while it
> can be very useful, I think it is not an essential part of the core, and also
> it introduces a new dependency (sqlite3) that I would like to keep separated
> from the core.
> 
> As usual, comments are welcomed.
> 
>    J.A.
> 
> 
> 
> Juan A. Suarez Romero (13):
>   cache: Add cache subsystem
>   cache: Create persistent named cache
>   cache: Make cache truly temporary
>   cache: Add function to remove persistent cache
>   cache: Load persistent cache
>   cache: Specify special keys when creating a cache
>   cache: Add API to search content in cache.
>   cache: Use transactions to perform cache changes
>   cache: Initialize log domain
>   cache: Add function to remove content from cache
>   cache: Get rid of dispose() method
>   cache: Document cache API
>   cache: Move cache for its own library.
> 
>  Makefile.am                         |    4 +
>  configure.ac                        |   11 +
>  grilo-media-cache-0.1.pc.in         |   15 +
>  grilo-media-cache-uninstalled.pc.in |   15 +
>  libs/Makefile.am                    |    6 +-
>  libs/media-cache/Makefile.am        |   71 +++
>  libs/media-cache/grl-media-cache.c  |  943 +++++++++++++++++++++++++++++++++++
>  libs/media-cache/grl-media-cache.h  |  114 +++++
>  src/grl-error.h                     |    4 +-
>  9 files changed, 1181 insertions(+), 2 deletions(-)
>  create mode 100644 grilo-media-cache-0.1.pc.in
>  create mode 100644 grilo-media-cache-uninstalled.pc.in
>  create mode 100644 libs/media-cache/Makefile.am
>  create mode 100644 libs/media-cache/grl-media-cache.c
>  create mode 100644 libs/media-cache/grl-media-cache.h
> 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]