[comixed-dev] Re: Cover caching.

  • From: "bareheiny" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "bareheiny" for DMARC)
  • To: comixed-dev@xxxxxxxxxxxxx
  • Date: Sun, 22 Dec 2019 10:48:34 +1300

Bad news I’m afraid - a 10k library has the same issues as a 50k one....just 
nowhere near as bad.

It takes around a minute or so to populate a library leg with 100 thumbnails 
(all cached, and resized).


For now, I think I’ll make use of the CX database, and forgot the front end for 
navigation.

On 20/12/2019, at 13:24, (Redacted sender bareheiny for DMARC) 
<dmarc-noreply@xxxxxxxxxxxxx> wrote:


More braindump:
 
I’m loading 10k comics into a clean database.  So far, I’ve noticed that the 
library page is populating really quick – maybe takes a minute to load 100 
thumbnails.  I imagine that a chunk of that time is grabbing the covers of 
un-processed comics, including some 1GB+ trades I purposefully included in my 
test directory.
 
Interestingly, more often than not the unprocessed comics have their covers 
acquired first.
 
This seems to indicate that the issues I’m experiencing are due to the number 
of comics in my library, rather than any hardware issues.  Once all 10k 
comics have been fully imported, I’ll do some navigation testing…then load 
another 5k comics and repeat.
 
Of more concern is the image caching directory…when I had 23 comics fully 
imported, the cache directory contained around 40 directories.  As I had 
opened a few comics to see how CX handled the extra work (opening a comic 
while hash generation was going on), I tested a theory.  I opened a 100+ plus 
comic that had been fully imported.  The number of directories in the cache 
increased by the same number of pages.
 
So CX appears to be caching the image for every page of a comic when it’s 
opened.  Is that expected?  I can see it causing storage issues myself…
 
 
 
 
From: comixed-dev-bounce@xxxxxxxxxxxxx <comixed-dev-bounce@xxxxxxxxxxxxx> On 
Behalf Of Redacted sender "bareheiny" for DMARC
Sent: Friday, 20 December 2019 10:42 AM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
Huh…that’s a different way of doing it.  Usually I watch the network tab, 
then save the har file – but Chrome doesn’t seem to be saving the file 
properly.  I’ll look at the console stuff later.
 
For now, here’s a brain dump – I haven’t structured this or checked it for 
tone….so it may come across as grumpy, but it’s literally a bunch of 
semi-related, but unstructured comments / thoughts:
 
In the meantime, what I’m seeing in the CX log are delays between actions.  
Using log extracts for a specific comic:
 
2019-12-19 09:29:13.469  INFO 4660 --- [nio-7171-exec-1] 
o.c.controller.library.ComicController   : Getting cover for comic: id=102
2019-12-19 09:29:13.470 DEBUG 4660 --- [nio-7171-exec-1] 
o.comixed.service.library.ComicService   : Getting comic: id=102
2019-12-19 09:29:13.985 DEBUG 4660 --- [nio-7171-exec-1] 
o.comixed.service.library.ComicService   : Getting all comics for series: 003 
Wonder Woman 008
2019-12-19 09:29:17.205 DEBUG 4660 --- [nio-7171-exec-1] 
o.comixed.service.library.ComicService   : Searching 1 comic for next and 
previous issues
2019-12-19 09:29:17.205 DEBUG 4660 --- [nio-7171-exec-1] 
o.c.controller.library.ComicController   : Looking for cached image: 
hash=F1B8C1A3FB76AFF61E13FD9ECA755525
2019-12-19 09:29:17.245 DEBUG 4660 --- [nio-7171-exec-1] 
o.c.service.library.PageCacheService     : Loading cached image content: 
1431822 bytes
2019-12-19 09:29:17.328 DEBUG 4660 --- [nio-7171-exec-1] 
o.c.controller.library.ComicController   : Returning comic cover: 
filename=Wonder Woman 008 (2007) (digital-Empire) 001.jpg size=1431822
 
2019-12-19 10:30:46.908 DEBUG 4660 --- [nio-7171-exec-1] 
o.comixed.service.library.ComicService   : Getting all comics for series: 100 
Girls
2019-12-19 10:30:47.663 DEBUG 4660 --- [nio-7171-exec-1] 
o.comixed.service.library.ComicService   : Searching 7 comics for next and 
previous issues
 
There are 8 log records that contain “Getting all comics for series: 100 
Girls”…with one exception, they’re all closely followed by a “Searching 7 
comics for next and previous issues” message.  The logs for 100 Girls start 
at 9.29 and finish at 9.46…that’s close to 10 minutes to get several cover 
images.
 
Why is CX looking for all comics in the series?
CX also seems to be looking for the next and previous issues, although I’m 
not sure what series this refers to.
 
In between the log records above, CX is also getting covers for other 
issues…but it’s doing the same actions:  getting cover, getting comic id, 
getting all comics, looking for next and previous etc., and this will be 
repeated 100 times (I’ve set CX to return 100 comics per page).
 
 
 
 
 
What’s the difference between getting the cached covers in the library view, 
vs. getting covers on the import screen?  The import screen returns 100 
thumbnails within 10 seconds max (guesstimate…could be quicker or slower, but 
definitely nowhere near 1 minute).  I can hop from page to page to page on 
the import screen with acceptable delays….while the library page took 1 hour 
to go from page 1 to 2 to 3 and back to 1.
 
 
 
 
From: comixed-dev-bounce@xxxxxxxxxxxxx <comixed-dev-bounce@xxxxxxxxxxxxx> On 
Behalf Of Darryl L. Pierce
Sent: Thursday, 19 December 2019 3:23 PM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
Here's an article I found for saving the Chrome browser logs to disk:
 
https://support.shortpoint.com/support/solutions/articles/1000222881-save-google-chrome-browser-s-console-file
 
 
On Wed, Dec 18, 2019 at 8:50 PM bareheiny <dmarc-noreply@xxxxxxxxxxxxx> wrote:
Got a video - is 1 hour and approx 900MB zipped.
 
That one hour consists of navigating to the library, waiting for page 1 to 
render fully (all 100 thumbnails loaded and displayed) navigating to page 2 
and waiting for it to render (quicker than 1), then page 3 (slow again) and 
back to page 1.
 
I’ll check the Chrome had logs, and if that saved ok I’ll have a full set (cx 
logs, chrome logs and video).
 
I’ve split off 10k comics, and am importing those into a new database to see 
if the number of comics is the problem.  I did notice the thumbnails for the 
import selection loaded quicker than the cached covers above.
 
 

On 18/12/2019, at 15:10, bareheiny <bareheiny@xxxxxxxxx> wrote:


Same behaviour with the surface and the drive directly connected.
 
Getting a video to accompany logs - what’s the best way to share the link 
once I’ve got it all sorted out?
 

On 18/12/2019, at 10:29, bareheiny (Redacted sender bareheiny for DMARC) 
<dmarc-noreply@xxxxxxxxxxxxx> wrote:


No, it’s not a time-out (although I did see one post cancelled)....it 
literally takes a good six plus minutes to display the first 100 comics.
 
CX is set to display 100 comics at minimum size – pn first navigation to the 
library page, the first six (or so) covers display within seconds.
 
Then covers in placeholders 50-60 may display, then the first six disappear 
(cover images no longer show, and placeholder size is minimal).  Then the 
remaining covers are slowly populated...and finally the first six appear 
again.
 
The CX log shows the covers are being requested...but it looks like it’s in 
bursts of maybe 10 or so, but the Chrome log shows all 100 content requests 
are fired at the same time.
 
I doubt I’m explaining it properly >_<  I may need to grab a video...but can 
only do that on my surface, which isn’t recognising external drives at the 
moment.
 
It looks like my har log is corrupt, so I’ll need to try again tonight.
 
 
Hardware wise, my library is on a 4TB USB3.0 drive, connected to a destktop 
pc running Windows 10 pro.  I think it’s an i3 or i4, with 4GB memory yadda 
yadda yadda.  It’s only used as a media server, so it’s not doing much at any 
given time.
 
Once I get the surface sorted out, I’m going to connect the 4TB drive to it 
and see if CX behaves any differently.
 
 
From: Darryl L. Pierce
Sent: Wednesday, 18 December 2019 2:41 AM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
A six minute delay would timeout the request and the frontend would abandon 
trying to display the image. Is that what you're seeing?
 
But, still, even with H2 (rather than an external RDBMS like MySQL) and over 
10k comics, I've never seen a delay even close to that. I think the longest 
I've seen is about 15-20 seconds between a set of covers being loaded and 
then another set rendering all at once. But never on the order of minutes.
 
What is the hardware that you're using, specifically? Do you find the browser 
behaving sluggishly in other ways? I have a laptop (Dell Inspiron 15 5000) 
that, when I've been using it for a while, starts drastically slowing down 
due to the poor thermal venting from the chassis. It'll be fast, fast fast, 
then get hot and go slow (or stop entirely) until it cools down, then goes 
fast again. Could there be something similar affecting your Surface?
 
Does anybody else see that level of delay?
 
On Tue, Dec 17, 2019 at 4:45 AM bareheiny <dmarc-noreply@xxxxxxxxxxxxx> wrote:
As an fyi, I’ve captured some logs - just need to look at them (hopefully 
tomorrow).
 
I’m definitely seeing delays of up to 6 mins between a cached cover being 
requested and it being returned to chrome.
 
On my surface, with a local copy of 400 random comics CX behaves as I’d 
expect to - minor delays, but nothing more than a few seconds.  I’m guessing 
the size of the library plays a part in the load time issues.
 

On 17/12/2019, at 12:57, bareheiny (Redacted sender bareheiny for DMARC) 
<dmarc-noreply@xxxxxxxxxxxxx> wrote:


Back to cover caching – is it likely to by affected by the way the drive is 
accessed?
 
All of my comics are stored on an external drive connected to a desktop 
machine.  More often than not, I access the drive via network share from my 
Surface – I make sure the drive letter is the same, so both the desktop and 
network share are accessed via Z.
 
I’ve noticed that CX running on my Surface (with a local copy of the 
database) doesn’t seem to show, or cache, covers.
 
 
From: bareheiny
Sent: Tuesday, 17 December 2019 9:39 AM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
Logging parameter I’m using:  --logging.level.org.comixed=DEBUG > 
Z:\Comics\.comiXed\comiXed.log
 
From: bareheiny
Sent: Tuesday, 17 December 2019 9:37 AM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
I picked up the new pre-release, and as usual have questions.
 
When logging is enabled, where does it get output to, and would it override 
the piping to a file parameter used in the bat file I use to start CX?
 
Also, what sort of additional logging should I expect to see?
 
 
 

On 16/12/2019, at 16:50, Darryl L. Pierce <mcpierce@xxxxxxxxx> wrote:


I'm hoping that, with the logging code I put in today, you'll be able to 
capture some imperical data from the browser and post it for us to look over 
an figure out what's going on.
 
On Sun, Dec 15, 2019 at 4:08 PM bareheiny <dmarc-noreply@xxxxxxxxxxxxx> wrote:
Sorting may not be an issue – lack of sleep over the weekend is causing a few 
cognitive issues.
 
Ignoring the donut chart page, I’m still seeing weird behaviour when 
navigating library pages.
 
Starting on page one, the comic count (bottom left of the screen) starts at 
100 and slowly increases...at the same time, covers are loaded 
(slowly...which is odd, as they have been cached before).
 
When navigating to another page of the library (usually page 2), nothing 
happens for a period of time...after which the cover panes are cleared (i.e. 
the images from page 1 are removed, and the placeholder panes are shown).  
The comic count resets to 100 and the covers are slowly loaded.

The upshot of this is that navigating the library is painfully slow ☹
 
From: Darryl L. Pierce
Sent: Monday, 16 December 2019 2:20 AM
To: comixed-dev@xxxxxxxxxxxxx
Subject: [comixed-dev] Re: Cover caching.
 
For the sorting, I'm guessing there's likely still a bug in that code. :-/
 
On Sun, Dec 15, 2019 at 4:01 AM bareheiny <dmarc-noreply@xxxxxxxxxxxxx> wrote:
Not sure I’m seeing any increase in load times...but I am seeing odd 
behaviour in the library counts.

For example, the count gets up to 48k when fully loaded (on the doughnut 
chart page), navigating to the library page changes it to 100....which slowly 
increases.

Navigating to page 2 puts the count back to 100....and takes a long time to 
load.


I’ll keep digging when I get some time, but can I confirm this is not what is 
expected?

I had anticipated the covers to be cached slowly (seems to be happening), but 
the decreased  load times have t materialised.

I’m also seeing odd behaviour in the library load...I default to sort by date 
loaded, but the comics are being loaded in series groups - with log messages 
to that effect.



--
Darryl L. Pierce <mcpierce@xxxxxxxxx>
"Le centre du monde est partout." - Blaise Pascal
"Let's try and find some point of transcendence and leap together." - Gord 
Downie
 


--
Darryl L. Pierce <mcpierce@xxxxxxxxx>
"Le centre du monde est partout." - Blaise Pascal
"Let's try and find some point of transcendence and leap together." - Gord 
Downie
 
 


--
Darryl L. Pierce <mcpierce@xxxxxxxxx>
"Le centre du monde est partout." - Blaise Pascal
"Let's try and find some point of transcendence and leap together." - Gord 
Downie
 


--
Darryl L. Pierce <mcpierce@xxxxxxxxx>
"Le centre du monde est partout." - Blaise Pascal
"Let's try and find some point of transcendence and leap together." - Gord 
Downie

Other related posts: