To add to Kovid's analysis, get_metadata is called in the following situations connected with this issue:
- if a coloring rule exists, get_metadata is called for all the books shown on the gui pane.
- if there is a composite column, get_metadata is called for all the books shown on the gui pane.
- if a composite column has the 'show in tag browser' box checked, get_metadata is called for every book in the library whenever the tag browser pane is rebuilt.
My guess is that it is the last one that would cause grief.
It is worth noting that using composite columns as tag browser categories can be the root of several performance slowdowns, because the tag browser values must be built by scanning the library and recomputing the composite column values. There is caching, which helps.
|