  We study the problem of coded caching when the server has access to several
libraries and each user makes independent requests from every library. The
single-library scenario has been well studied and it has been proved that coded
caching can significantly improve the delivery rate compared to uncoded
caching. In this work we show that when all the libraries have the same number
of files, memory-sharing is optimal and the delivery rate cannot be improved
via coding across files from different libraries. In this setting, the optimal
memory-sharing strategy is one that divides the cache of each user proportional
to the size of the files in different libraries. As for the general case, when
the number of files in different libraries are arbitrary, we propose an
inner-bound based on memory-sharing and an outer-bound based on concatenation
of files from different libraries.
