https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=36350

--- Comment #65 from Jonathan Druart <[email protected]> ---
1.
diff --git a/Koha/ILL/Requests.pm b/Koha/ILL/Requests.pm

-use base qw(Koha::Objects::Mixin::ExtendedAttributes Koha::Objects);
+use base qw(Koha::Objects);

This does not seem correct.

2.

diff --git a/Koha/Object.pm b/Koha/Object.pm

@@ -1017,6 +1017,9 @@ sub AUTOLOAD {
         my $accessor = sub {
             my $self = shift;
             if (@_) {
+                if ($self->isa("Koha::Object::CachedExpiration")) {
+                    $self->_objects_cache_expire();

diff --git a/Koha/Object/CachedExpiration.pm b/Koha/Object/CachedExpiration.pm
+sub _objects_cache_expire {
+    my ($self) = @_;
+    if ($self->_result->in_storage) {
+        my @primary_keys = $self->_result->id;
+        my $ids_cache_key = $self->_objects_cache_cache_key('find',
@primary_keys);
+        $self->_objects_cache_clear($ids_cache_key);
+    }
+}

Isn't it going to add one fetch for each insert/update statement?

3. _objects_cache_expire is unnecessary called when we store a new object (not
blocker)

4. very quick benchmark to give an idea:
```
use Benchmark qw(:all);
my $count = 10000;
my $t = timeit($count, sub {
    my $l = Koha::Library->new({branchcode => 'foo', branchname =>
'foo'})->store;
    $l->branchname('bar')->store;
    $l->delete;
});
say timestr($t);
```
with the patches:
139 wallclock secs (59.03 usr +  5.42 sys = 64.45 CPU) @ 155.16/s (n=10000)
without the patches:
133 wallclock secs (54.21 usr +  5.13 sys = 59.34 CPU) @ 168.52/s (n=10000)

```
use Benchmark qw(:all);
my $count = 10000;
my $i;                                                                          
my $t = timeit($count, sub {                                                    
    my $id = "foo" . $i++;                                                      
    my $l = Koha::Library->new({branchcode => $id, branchname => $id})->store;  
    $l->branchname('bar')->store;                                               
});
```
with the patches:
100 wallclock secs (45.76 usr +  4.15 sys = 49.91 CPU) @ 200.36/s (n=10000)
without the patches:
98 wallclock secs (44.62 usr +  3.95 sys = 48.57 CPU) @ 205.89/s (n=10000)      
say timestr($t);  

=> it's going to be slightly slower for inserts in bulk.

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to