![]() |
#1 |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
Suggestion for improving the efficiency of loading new readers
Hi Kovid,
Could I make a suggestion, which I think would greatly ease the ease of using Calibre to load books onto a new device? (Apologies in advance - this is a rather long-winded post!) I've just bought a new Kindle Oasis 2, with 32GB of storage space, which allows me to have a much larger proportion of my Calibre library on the device than I could previously. I buy books from all sorts of different places, so have a mixture of formats in my library, but always want to send AZW3 to the device (which is set as the device's preferred format). So, I highlight or mark a block of books in my library, right click, and select "Send to Device". If all the books are in Mobi or AZW3 format, no problem: I get two jobs executed. "Upload 53 books to the device" (or whatever the number is), followed by "Send metadata to the device". Within about 40s I've got all 53 books on my Kindle. The issue occurs when, let's say, 15 of the books are only in ePub format. I get a "No available formats" warning, and Calibre asks me if I want to auto-convert the 15 books to AZW3 format. I say "Yes", and 15 conversion jobs get sent to the job queue. The books get converted to AZW3 format one at a time, and there are then 15 "Upload one book to the device" jobs in the queue. The problem occurs when you send, say, 1000 books in total to the device, and you end up with a few hundred conversions. Conversion is fast, but unfortunately sending books isn't. The book gets sent to the device essentially instantly, but after each book there's a "Send metadata" step which takes 30+ seconds. So in the job queue you end up with a sequence of steps that's something like: Upload one book to the device (0s) Send metadata to the device (35s) Upload one book to the device (0s) Send metadata to the device (35s) Upload one book to the device (0s) Send metadata to the device (35s) Upload one book to the device (0s) Send metadata to the device (35s) etc etc. As I'm writing this, my Calibre job queue, having completed all the conversions for my authors starting with the letters "J" and "K" has 298 "Upload one book to the device" steps waiting in the queue. With each "Send metadata" step taking on average 35s, that means it'll take about 298 x 35s = 10,430s, or 2h 54m to send all the books, even though actually transferring those 298 books could probably be done in under a minute. My suggestion is this: If Calibre's job "engine" finds that it has a whole series of sequential "Upload one book to the device" jobs in the queue, is there any way to make it "smart" and merge all the "upload" jobs into a single upload operation? That way there would be a single "upload" job followed by a single "send metadata" job, and what currently takes hours to complete could be done in a couple of minutes. Hope you've had the patience to read through all this, and I hope you'll give the idea some consideration. Many thanks, |
![]() |
![]() |
![]() |
#2 |
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,279
Karma: 27111060
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Certainly, its something that the jobs manager could do, although it is a fairly involved implementation.
Or you could just search for not format:=azw3 then schedule a conversion for all the books. That should be quick and you can then send all the books in a single batch. |
![]() |
![]() |
![]() |
#3 |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
Thanks, Kovid. Yes, I realise that separating the conversion and sending steps is a workaround for the issue, and that's what I'll do with the rest of my library. It just occurred to me that this would be a beneficial optimisation in some future release of Calibre.
Thanks for considering the request, anyway ![]() |
![]() |
![]() |
![]() |
#4 |
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 765
Karma: 2825929
Join Date: Feb 2007
Location: Fresno
Device: Kindle 1; iPad Air; iPhone 7; Kobo Libra; Kindle Oasis 3
|
This was very helpful. Thanks Harry and Kovid. I was converting mine one at a time.
Jim. |
![]() |
![]() |
![]() |
#5 | |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 765
Karma: 2825929
Join Date: Feb 2007
Location: Fresno
Device: Kindle 1; iPad Air; iPhone 7; Kobo Libra; Kindle Oasis 3
|
Quote:
![]() Jim |
|
![]() |
![]() |
![]() |
#7 |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
Sure - just select the books, right click, and "Bulk convert".
|
![]() |
![]() |
![]() |
#8 |
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,279
Karma: 27111060
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
|
![]() |
![]() |
![]() |
#9 |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
That's useful to know, thanks. I must admit I never use the buttons, only the right-click menu, so doing it that way I have to choose either individual or bulk conversion explicitly. Calibre often offers more than one way of doing something!
|
![]() |
![]() |
![]() |
#10 | |
Well trained by Cats
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 30,989
Karma: 60358908
Join Date: Aug 2009
Location: The Central Coast of California
Device: Kobo Libra2,Kobo Aura2v1, K4NT(Fixed: New Bat.), Galaxy Tab A
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#11 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,011
Karma: 500000
Join Date: Jun 2015
Device: Rocketbook, kobo aura h2o, kobo forma, kobo libra color
|
Actually, it would help me a lot of the "sending metadata" jobs could be all collected at the end. My normal work flow ends up generating 4 or 5 of those for a single connect.
Would it be easy to change it so that the metadata update is collected and postponed until it is the last device job in the queue? |
![]() |
![]() |
![]() |
#12 |
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,279
Karma: 27111060
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
It's not that easy. The problem is other device jobs can depend on the results of updating metadata on the device. So you cannot just move the update maetadata job past all other device jobs.
|
![]() |
![]() |
![]() |
#13 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 24,905
Karma: 47303824
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
|
Quote:
Or am I missing some device jobs? From what I see, there are four started by calibre when the device connects: Get device info, Set library, Get list of books and Send metadata. Then there are upload and delete jobs. The Kobo Utilities plugin can start two, but they can be run after the get list job. The Reading List plugin can trigger upload jobs, but that is upload all on a list. I can't think of any other plugins that do or any other device jobs. |
|
![]() |
![]() |
![]() |
#14 |
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,279
Karma: 27111060
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
The problem is that if you cancel job 1 the job 2 which could depend on the result of job 1 would be broken. Sending metadata to the device is actually a fairly important job -- it is called when uploading books, when auto-updating metadata, after metadata is *downloaded* from the device. Some device drivers update the list of collections in the sending metadata job, so the display of the collections and any operations on collections depend on that job.
|
![]() |
![]() |
![]() |
#15 |
eBook Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 85,544
Karma: 93383099
Join Date: Nov 2006
Location: UK
Device: Kindle Oasis 2, iPad Pro 10.5", iPhone 6
|
The "Send metadata" step only seems to be created after an "upload" job runs, though. If the "upload" jobs could somehow be merged prior to running, the "Send metadata" would look after itself, wouldn't it?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Make the CPU higher efficiency | richy1989 | Kindle Developer's Corner | 12 | 08-25-2013 08:19 AM |
New to Calibre. Efficiency suggestions? | Mikey1969 | Library Management | 1 | 06-26-2012 06:55 PM |
Loading mobi books onto various kindle readers | pgup | Amazon Kindle | 2 | 07-22-2011 08:36 PM |
Improving PDFs for use on Sony Readers | Agama | Calibre | 4 | 10-25-2010 05:12 PM |
Power efficiency | bellosguardo | Sony Reader | 5 | 07-10-2009 03:15 AM |