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:
parent
b4580bff5b
commit
4bf033c6d6
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue