minimum server storage capacity that would allow the reconstruction of any demand combination is given by $M_S=\frac{N-M_U}{\rho}$. In this case, we cache the same $\frac{M_U}{N}$ fraction of the library in all the user caches during the placement phase, and deliver the remaining fraction of the demands from the servers, which is identical to the scheme in [@comb3] when the user and its connected servers have just enough space to store the entire library. The worst-case delivery latency in this case is given by $T_{sd}=K\left( 1-\frac{M_U}{N}\right)= K-t$.\
Next, we consider the case when there is redundancy in server memories; that is, $\frac{N}{\rho}< M_S \leq N$. Assume that $M_S=\frac{N}{\rho - z}$ for some integer $ z\in [\rho -1]$. Define $ \hat{\alpha}\triangleq \frac{\rho-z}{P}  $. Since $\alpha$ is defined as the connectivity of the network, $\alpha-\hat{\alpha}$ is the storage redundancy. For non-integer values of $z$, the solution can be obtained by memory-sharing.

![An example $7 \times 5$ incidence matrix ($P=7, K=5$) with $\rho = 4$.[]{data-label="fig:conn_matrix"}](conn_matrix.PNG)

In this case, a $(P,\rho-z)$ MDS code is used for server storage placement, allowing each user to reconstruct any requested file by connecting to $\rho -z$ servers. The user cache placement is done as in the previous section. In 