[Koha-devel] Cache::Memory must be removed (21955)

Jonathan Druart jonathan.druart at bugs.koha-community.org
Fri Dec 21 16:51:01 CET 2018


I have stolen this existing page and wrote some info about our cache mechanism:
https://wiki.koha-community.org/wiki/Cache_handling_in_Koha

Feel free to ask if you need more info or if something is still not
clear enough.

Cheers,
Jonathan

Le mer. 19 déc. 2018 à 05:33, Paul Poulain <paul.poulain at biblibre.com> a écrit :
>
> Hi Jonathan,
>
> I'd be very happy if you could wrote something on the wiki, I'm a little
> bit confused by all those cache...
>
> Le 07/12/2018 à 16:36, Jonathan Druart a écrit :
> > I talked with Ere on IRC, but prefer to let a note here as well.
> >
> > Enabling Cache::Memory if Plack is not running will not help as we
> > have the L1 (in memory) cache, which is used in any cases (and flushed
> > under Plack before a request is made).
> >
> > I do not know how is our caching system understood by the team. I can
> > try and write something on the wiki if it can help. Hint: there is no
> > black magic :)
> >
> > Cheers,
> > Jonathan
> >
> > Le ven. 7 déc. 2018 à 04:55, Ere Maijala <ere.maijala at helsinki.fi> a écrit :
> >> I'm a bit hesitant on this. I understand running without a cache makes
> >> things like tests easier, but Cache::Memory is actually a pretty useful
> >> fallback. There's a lot of code in Koha that does redundant fetches of
> >> e.g. framework data, and without caching I'm afraid it will slow down
> >> significantly. Cache::Memory is very handy when developing stuff to
> >> speed up execution of e.g. batch utilities when you don't want to mess
> >> with constantly flushing Memcached.
> >>
> >> I would like to propose another approach for considerarion: disable
> >> Cache::Memory only if running under Plack.
> >>
> >> --Ere
> >>
> >> David Cook kirjoitti 7.12.2018 klo 1.52:
> >>> I’ve noticed some caching issues but haven’t had time to investigate too
> >>> deeply. I wonder if this relates to what I’ve encountered.
> >>>
> >>>
> >>>
> >>> In any case, +1!
> >>>
> >>>
> >>>
> >>> David Cook
> >>>
> >>> Systems Librarian
> >>>
> >>> Prosentient Systems
> >>>
> >>> 72/330 Wattle St
> >>>
> >>> Ultimo, NSW 2007
> >>>
> >>> Australia
> >>>
> >>>
> >>>
> >>> Office: 02 9212 0899
> >>>
> >>> Direct: 02 8005 0595
> >>>
> >>>
> >>>
> >>> *From:*koha-devel-bounces at lists.koha-community.org
> >>> [mailto:koha-devel-bounces at lists.koha-community.org] *On Behalf Of
> >>> *Tomas Cohen Arazi
> >>> *Sent:* Friday, 7 December 2018 2:44 AM
> >>> *To:* Jonathan Druart <jonathan.druart at bugs.koha-community.org>
> >>> *Cc:* koha-devel <koha-devel at lists.koha-community.org>
> >>> *Subject:* Re: [Koha-devel] Cache::Memory must be removed (21955)
> >>>
> >>>
> >>>
> >>> Get rid of it!
> >>>
> >>>
> >>>
> >>> +1
> >>>
> >>>
> >>>
> >>> El mié., 5 dic. 2018 a las 16:20, Jonathan Druart
> >>> (<jonathan.druart at bugs.koha-community.org
> >>> <mailto:jonathan.druart at bugs.koha-community.org>>) escribió:
> >>>
> >>>      Hi devs,
> >>>
> >>>      I am still recovering from my holidays and I think I caught a quite
> >>>      big fish.
> >>>
> >>>      After an interesting track game I will explain why I am suggesting to
> >>>      remove Cache::Memory that is currently used as fallback for the L2
> >>>      cache.
> >>>
> >>>      What I tried to fix:
> >>>      Jenkins is complaining about selenium tests (regressions.t) failing on
> >>>      18.05, it is a succession of events and bugs that were not linked at
> >>>      first glance.
> >>>
> >>>      Here are the different steps I went though:
> >>>      - On bug 21426 we noticed that USE_MEMCACHED was not taken into
> >>>      account. If set to "no" the default memcached config was defined in
> >>>      the koha-config.xml file anyway
> >>>      - A new regression selenium test was added on bug 21777 to catch the
> >>>      presence of an audio alert on the circulation page
> >>>      - Investigating the failing tests I noticed that koha-testing-docker
> >>>      was not setting the memcached config on the 18.05 branches (I guess
> >>>      the image has not been rebuilt yet)
> >>>      search_utf8.t output "Warning: script running in daemon mode, without
> >>>      recommended caching system (memcached)."
> >>>      - I also find that [% Koha.Preference('AudioAlerts') %] did not return
> >>>      the value set by the tests, but the value that the DB has before the
> >>>      tests were launched
> >>>      => It is a cache issue!
> >>>      - ...but only when memcached is not set...
> >>>      - Reading Koha::Cache->new we can notice that Cache::Memory is used
> >>>      for the L2 cache when memcached is not defined in the config
> >>>
> >>>      And so we have the problem: If a value is set in the cache by a Plack
> >>>      worker, it will not be available from another one, as the L2 cache is
> >>>      not shared (!)
> >>>
> >>>      To recreate easily the problem you can:
> >>>      - remove the memcached config
> >>>      - edit intranet-bottom.inc and add
> >>>      ===[% Koha.Preference('AudioAlerts') %]===
> >>>      - restart plack
> >>>      - Modify the value of AudioAlerts (using the UI)
> >>>      - Reload the page (reload several times if the value is still correct,
> >>>      it will depend on which worker will serve the request)
> >>>
> >>>      Solution:
> >>>      I am considering removing Cache::Memory unless somebody else has a
> >>>      better idea
> >>>      Bug 21955 - Cache::Memory should not be used as L2 cache
> >>>
> >>>      Note that it should not affect a lot of people as everybody is
> >>>      supposed to have memcached configured and working correctly!
> >>>
> >>>      Cheers,
> >>>      Jonathan
> >>>      _______________________________________________
> >>>      Koha-devel mailing list
> >>>      Koha-devel at lists.koha-community.org
> >>>      <mailto:Koha-devel at lists.koha-community.org>
> >>>      http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> >>>      website : http://www.koha-community.org/
> >>>      git : http://git.koha-community.org/
> >>>      bugs : http://bugs.koha-community.org/
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>>
> >>> Tomás Cohen Arazi
> >>>
> >>> Theke Solutions (http://theke.io <http://theke.io/>)
> >>> ✆+54 9351 3513384
> >>> GPG: B2F3C15F
> >>>
> >>>
> >>> _______________________________________________
> >>> Koha-devel mailing list
> >>> Koha-devel at lists.koha-community.org
> >>> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> >>> website : http://www.koha-community.org/
> >>> git : http://git.koha-community.org/
> >>> bugs : http://bugs.koha-community.org/
> >>>
> >> --
> >> Ere Maijala
> >> Kansalliskirjasto / The National Library of Finland
> >>
> >> _______________________________________________
> >> Koha-devel mailing list
> >> Koha-devel at lists.koha-community.org
> >> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> >> website : http://www.koha-community.org/
> >> git : http://git.koha-community.org/
> >> bugs : http://bugs.koha-community.org/
> > _______________________________________________
> > Koha-devel mailing list
> > Koha-devel at lists.koha-community.org
> > http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> > website : http://www.koha-community.org/
> > git : http://git.koha-community.org/
> > bugs : http://bugs.koha-community.org/
>
> --
> Paul Poulain, Associé-gérant / co-owner
> BibLibre, Services en logiciels libres pour les bibliothèques
> BibLibre, Open Source software and services for libraries
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel at lists.koha-community.org
> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> website : http://www.koha-community.org/
> git : http://git.koha-community.org/
> bugs : http://bugs.koha-community.org/


More information about the Koha-devel mailing list