View Single Post
Old 05-25-2010, 04:38 PM   #16
chaley
Grand Sorcerer
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 12,486
Karma: 8025704
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
Where you are going is toward the question "why does calibre keep all the books in its own library structure."

This question has been asked innumerable times, and the answer is always the same. Calibre treats the content (the book) as a column in its database. However, instead of storing the book in the database, it stores it in a file. That fact does not change the basic design decision, that calibre controls the storage of the books. Calibre gets upset if the two are not in sync. When calibre is upset, it shows error dialogs. When error dialogs are shown, users get upset. Then it lands in Kovid's lap.

Yes, other programs made different decisions. I use MediaMonkey, which supports storing music files outside the library. And yes, I have been bitten more than once by the fact that MediaMonkey does not in fact control the storage of the files. In the end, I elected to use MediaMonkey's file management to avoid corruption. But that is my call. Your mileage will vary.

The salient point here is that calibre is designed to manage the entire library, books and all, as a database. It expects close-to-transactional behavior, and it expects to own the folder structure. If you use a NAS, you certainly violate the first, and you might violate the second.

Calibre has hundreds of thousands of users. Lets assume 365,000. Imagine what happens if each user posts one question per year. That would average to 1000 questions per day, which is a number that Kovid could not possibly cope with. His choice, which I think is reasonable, is to constrain documented functionality to something supportable, leading to (say) one question per .01 user per year. NAS, and the complexities that come with it, are far outside that range.

As for rebuilding the database, in general that doesn't work. First, some book files do not contain metadata -- text files are a prime example. Second, even if the books do contain metadata, there is no reason to believe that it is the metadata you have put into your library.

Apologies for raining on your parade, but calibre is built the way it is and is supported the way it is. Some things are hard or of no interest to the developers/supporters. You should feel free to fix them. I did that when I got annoyed at author_sort not working the way I wanted it to with ln,fn author names. You might be able to make libraries stored on a NAS work reliably across platforms and across NAS filesystem semantics, which would be great addition.
chaley is offline   Reply With Quote