From 531e685706655795e4b8a6e19fb33232d48ef175 Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Mon, 12 Apr 2010 00:56:19 +0200 Subject: [PATCH] Bug 6019 : Adding memoize_memcached to speed up performance perf enhancement Lyon3 --- C4/Biblio.pm | 5 ++++- C4/Branch.pm | 16 ++++++++++++++++ C4/Context.pm | 16 ++++++++++++++++ C4/Koha.pm | 19 ++++++++++++++++++- 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index a0e06f6..93dbb5c 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -136,7 +136,10 @@ eval { servers => [$servers], key_prefix => C4::Context->config('memcached_namespace') || 'koha', }; - memoize_memcached( 'GetMarcStructure', memcached => $memcached, expire_time => 600 ); #cache for 10 minutes + memoize_memcached( 'GetMarcStructure', memcached => $memcached, expire_time => 60000 ); #cache for 1000 minutes + memoize_memcached( 'GetAuthorisedValueDesc', memcached => $memcached, expire_time => 60000 ); #cache for 1000 minutes + memoize_memcached( 'GetMarcFromKohaField', memcached => $memcached, expire_time => 60000 ); #cache for 1000 minutes + memoize_memcached( 'get_biblio_authorised_values', memcached => $memcached, expire_time => 60000 ); #cache for 1000 minutes } }; diff --git a/C4/Branch.pm b/C4/Branch.pm index 1f26e35..f300ad5 100644 --- a/C4/Branch.pm +++ b/C4/Branch.pm @@ -24,6 +24,22 @@ use C4::Koha; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +eval { + my $servers = C4::Context->config('memcached_servers'); + if ($servers) { + require Memoize::Memcached; + import Memoize::Memcached qw(memoize_memcached); + + my $memcached = { + servers => [ $servers ], + key_prefix => C4::Context->config('memcached_namespace') || 'koha', + }; + + memoize_memcached('GetBranches',memcached => $memcached, expire_time => 600000); + memoize_memcached('GetBranchName',memcached => $memcached, expire_time => 600000); + } +}; + BEGIN { # set the version for version checking $VERSION = 3.02; diff --git a/C4/Context.pm b/C4/Context.pm index 484d4e1..22cde8c 100644 --- a/C4/Context.pm +++ b/C4/Context.pm @@ -20,6 +20,22 @@ use strict; use warnings; use vars qw($VERSION $AUTOLOAD $context @context_stack); +eval { + my $servers = C4::Context->config('memcached_servers'); + if ($servers) { + require Memoize::Memcached; + import Memoize::Memcached qw(memoize_memcached); + + my $memcached = { + servers => [ $servers ], + key_prefix => C4::Context->config('memcached_namespace') || 'koha', + }; + + memoize_memcached('preference', memcached => $memcached, expire_time => 600000); #cache for 10 minutes + memoize_memcached('marcfromkohafield', memcached => $memcached, expire_time => 600000); #cache for 10 minutes + } +}; + BEGIN { if ($ENV{'HTTP_USER_AGENT'}) { require CGI::Carp; diff --git a/C4/Koha.pm b/C4/Koha.pm index 0836669..7db2eb8 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -73,7 +73,24 @@ BEGIN { } # expensive functions -memoize('GetAuthorisedValues'); + +eval { + my $servers = C4::Context->config('memcached_servers'); + if ($servers) { + require Memoize::Memcached; + import Memoize::Memcached qw(memoize_memcached); + + my $memcached = { + servers => [ $servers ], + key_prefix => C4::Context->config('memcached_namespace') || 'koha', + }; + + memoize_memcached('GetKohaAuthorisedValues',memcached => $memcached, expire_time => 600000); + memoize_memcached('GetAuthorisedValues',memcached => $memcached, expire_time => 600000); + memoize_memcached('GetItemTypes',memcached => $memcached, expire_time => 600000); + memoize_memcached('getitemtypeimagelocation',memcached => $memcached, expire_time => 600000); + } +}; =head1 NAME -- 1.7.1