Bugzilla – Attachment 5537 Details for
Bug 6193
Use memcached cache koha-conf.xml configuration variables
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Signed-off patch
0001-Bug-6193-Use-memcached-cache-koha-conf.xml-configura.patch (text/plain), 4.55 KB, created by
Federico Rinaudo
on 2011-09-22 13:04:39 UTC
(
hide
)
Description:
Signed-off patch
Filename:
MIME Type:
Creator:
Federico Rinaudo
Created:
2011-09-22 13:04:39 UTC
Size:
4.55 KB
patch
obsolete
>From e628dc302153354a0c6b6d958ba70d81ff443abd Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@gmail.com> >Date: Thu, 14 Apr 2011 14:40:21 -0300 >Subject: [PATCH] [SIGNED-OFF] Bug 6193 - Use memcached cache koha-conf.xml configuration variables > >Basically I add some code to Context.pm so it stores koha-conf.xml config vars >in memcached server. It is arguable whether this is an improvement or not, >tests are needed to conclude something about this. > >Error handling was an issue with Cache::Memcached, I tried to do it the >simplest I could. > >Note: As it was pointless to read the xml file to get the memcached >server info for accessing them for retreiving the info in the koha-conf.xml >file... I passed those values through apache's SetEnv. These variables >are set acordingly through the install scripts and commented out if koha >was setup not to use it. > >Bug 6193 - Properly comment the code > >Required by slef. > >Regards >To+ > >Signed-off-by: Federico Rinaudo <frinaudo@infocpt.com.ar> >--- > C4/Context.pm | 43 +++++++++++++++++++++++++++++++++++++++---- > etc/koha-httpd.conf | 4 ++++ > 2 files changed, 43 insertions(+), 4 deletions(-) > >diff --git a/C4/Context.pm b/C4/Context.pm >index 85d1c18..eed9270 100644 >--- a/C4/Context.pm >+++ b/C4/Context.pm >@@ -18,7 +18,7 @@ package C4::Context; > > use strict; > use warnings; >-use vars qw($VERSION $AUTOLOAD $context @context_stack); >+use vars qw($VERSION $AUTOLOAD $context @context_stack $servers $memcached $ismemcached); > > BEGIN { > if ($ENV{'HTTP_USER_AGENT'}) { >@@ -78,6 +78,22 @@ BEGIN { > $main::SIG{__DIE__} = \&CGI::Carp::confess; > } > } # else there is no browser to send fatals to! >+ >+ # Check if there are memcached servers set >+ $servers = $ENV{'MEMCACHED_SERVERS'}; >+ if ($servers) { >+ # Load required libraries and create the memcached object >+ require Cache::Memcached; >+ $memcached = Cache::Memcached->new({ >+ servers => [ $servers ], >+ debug => 0, >+ compress_threshold => 10_000, >+ namespace => $ENV{'MEMCACHED_NAMESPACE'} || 'koha' >+ }); >+ # Verify memcached available (set a variable and test the output) >+ $ismemcached = $memcached->set('ismemcached','1'); >+ } >+ > $VERSION = '3.00.00.036'; > } > >@@ -229,6 +245,11 @@ Returns undef in case of error. > > sub read_config_file { # Pass argument naming config file to read > my $koha = XMLin(shift, keyattr => ['id'], forcearray => ['listen', 'server', 'serverinfo'], suppressempty => ''); >+ >+ if ($ismemcached) { >+ $memcached->set('kohaconf',$koha); >+ } >+ > return $koha; # Return value: ref-to-hash holding the configuration > } > >@@ -274,6 +295,10 @@ Allocates a new context. Initializes the context from the specified > file, which defaults to either the file given by the C<$KOHA_CONF> > environment variable, or F</etc/koha/koha-conf.xml>. > >+It saves the koha-conf.xml values in the declared memcached server(s) >+if currently available and uses those values until them expire and >+re-reads them. >+ > C<&new> does not set this context as the new default context; for > that, use C<&set_context>. > >@@ -308,10 +333,20 @@ sub new { > return undef; > } > } >- # Load the desired config file. >- $self = read_config_file($conf_fname); >- $self->{"config_file"} = $conf_fname; > >+ if ($ismemcached) { >+ # retreive from memcached >+ $self = $memcached->get('kohaconf'); >+ if (not defined $self) { >+ # not in memcached yet >+ $self = read_config_file($conf_fname); >+ } >+ } else { >+ # non-memcached env, read from file >+ $self = read_config_file($conf_fname); >+ } >+ >+ $self->{"config_file"} = $conf_fname; > warn "read_config_file($conf_fname) returned undef" if !defined($self->{"config"}); > return undef if !defined($self->{"config"}); > >diff --git a/etc/koha-httpd.conf b/etc/koha-httpd.conf >index bf8cdc7..2b986ac 100644 >--- a/etc/koha-httpd.conf >+++ b/etc/koha-httpd.conf >@@ -17,6 +17,8 @@ > # TransferLog __LOG_DIR__/koha-opac-access_log > SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml" > SetEnv PERL5LIB "__PERL_MODULE_DIR__" >+ SetEnv MEMCACHED_SERVERS "__MEMCACHED_SERVERS__" >+ SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" > > <IfModule mod_gzip.c> > mod_gzip_on yes >@@ -107,6 +109,8 @@ > # TransferLog __LOG_DIR__/koha-access_log > SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml" > SetEnv PERL5LIB "__PERL_MODULE_DIR__" >+ SetEnv MEMCACHED_SERVERS "__MEMCACHED_SERVERS__" >+ SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" > Options +FollowSymLinks > > ErrorDocument 400 /cgi-bin/koha/errors/400.pl >-- >1.7.2.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 6193
:
3926
|
3927
|
5045
|
5537
|
5559
|
6971
|
7630