[Koha-bugs] [Bug 30860] Add option for CanBookBeReserved to return all item values

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Wed Mar 22 19:58:38 CET 2023


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

--- Comment #30 from Nick Clemens <nick at bywatersolutions.com> ---
(In reply to Jonathan Druart from comment #29)
> Created attachment 148562 [details] [review]
> Bug 30860: [alternative patch] Cache CanItemBeReserved return value
> 
> Instead of hacking CanBookBeReserved this patch suggests to simply cache
> the return value of CanItemBeReserved that could be then returned *on
> demand*
> We don't want to introduce side-effects hard to catch from this simple
> change, so let's return the cache value only from the 2 scripts we are
> dealing with.

This works, and in initial testing seems to offer improvement.

I have one hesitation

Current:
code calls CanBookBeReserved, which exits on first holdable item,
then we call CanItemBeReserved for every item
Worst case, last item is holdable - for 100 items we call CanItemBeReserved 200
times

My patches:
code calls CanBookBeReserved which in turn calls CanItemBeReserved
for every item. Then we loop over the results for each item
Worst case, we call CanItemBeReserved 100 times - we do this no matter what

Alternate patches:
code calls CanBookBeReserved which exits on first holdable item
we then retrieve any alreayd calculated from cache, then we cache each result
as we go forward.
Worst case - first item is holdable - we retrieve a single value from cache,
then cache every subsequent CanItemBeReserved call and never use it - though we
still only call CanItemBeReserved 100 times max

I don't know what the actual tendency for number of items holdable, but it
feels like we can do a lot of caching that we don't necessarily need.

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list