Bug 21955: Remove Cache::Memory as fallback for L2 cache

If Plack is running with several workers we must not use Cache::Memory
as L2 cache.

If a value is set from a worker, it will not be available from other
workers as the Cache::Memory instance is not shared (of course!)

Moreover we now have Koha::Cache::Memory::Lite that does the same job,
so we should not expect performance regressions by removing it.

See also the email sent to koha-devel for more info
http://lists.koha-community.org/pipermail/koha-devel/2018-December/045004.html

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2018-12-05 16:39:02 -03:00 committed by Nick Clemens
parent b4580bff5b
commit 4bf033c6d6
2 changed files with 0 additions and 41 deletions

View File

@ -267,11 +267,6 @@ our $PERL_DEPS = {
'required' => '0',
'min_ver' => '1.34'
},
'Cache::Memory' => {
'usage' => 'Caching',
'required' => '0',
'min_ver' => '2.04'
},
'Net::LDAP::Filter' => {
'usage' => 'LDAP Interface Feature',
'required' => '0',

View File

@ -103,15 +103,6 @@ sub new {
$self->{'cache'} = $self->{'fastmmap_cache'};
}
# Unless memcache or fastmmap has already been picked, use memory_cache
unless ( defined( $self->{'cache'} ) ) {
if ( can_load( modules => { 'Cache::Memory' => undef } )
&& _initialize_memory($self) )
{
$self->{'cache'} = $self->{'memory_cache'};
}
}
$ENV{DEBUG} && carp "Selected caching system: " . ($self->{'cache'} // 'none');
return
@ -177,33 +168,6 @@ sub _initialize_fastmmap {
return $self;
}
sub _initialize_memory {
my ($self) = @_;
# Default cache time for memory is _always_ short unless it's specially
# defined, to allow it to work reliably in a persistent environment.
my $cache = Cache::Memory->new(
'namespace' => $self->{'namespace'},
'default_expires' => "$self->{'timeout'} sec" || "10 sec",
);
$self->{'memory_cache'} = $cache;
# Memory cache can't handle complex types for some reason, so we use its
# freeze and thaw functions.
$self->{ref($cache) . '_set'} = sub {
my ($key, $val, $exp) = @_;
# Refer to set_expiry in Cache::Entry for why we do this 'sec' thing.
$exp = "$exp sec" if defined $exp;
# Because we need to use freeze, it must be a reference type.
$cache->freeze($key, [$val], $exp);
};
$self->{ref($cache) . '_get'} = sub {
my $res = $cache->thaw(shift);
return unless defined $res;
return $res->[0];
};
return $self;
}
=head2 is_cache_active
Routine that checks whether or not a default caching method is active on this