[Koha-patches] [PATCH] Bug 6019 : Adding memoize_memcached to speed up performance
Chris Cormack
chrisc at catalyst.net.nz
Thu Mar 31 04:32:38 CEST 2011
From: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>
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
More information about the Koha-patches
mailing list