This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Uncoded Caching and Cross-level Coded Delivery
for Non-uniform File Popularity

Emre Ozfatura and Deniz Gündüz Emre Ozfatura and Deniz Gündüz are with the Information Processing and Communications Lab, Department of Electrical and Electronic Engineering, Imperial College London, London SW7 2AZ, UK. This work was supported by EC H2020-MSCA-ITN-2015 project SCAVENGE under grant number 675891, and by the European Research Council project BEACON under grant number 677854.A shorter version of this paper was presented at IEEE International Conference on Communications (ICC), in 20-24 May 2018.
Abstract

Proactive content caching at user devices and coded delivery is studied for a non-uniform file popularity distribution. A novel centralized uncoded caching and coded delivery scheme, called cross-level coded delivery (CLCD), is proposed, which can be applied to large file libraries under non-uniform demands. In the CLCD scheme, the same sub-packetization is used for all the files in the library in order to prevent additional zero-padding in the delivery phase, and unlike the existing schemes in the literature, users requesting files from different popularity groups can still be served by the same multicast message in order to reduce the delivery rate. Simulation results indicate more than 10%10\% reduction in the average delivery rate for typical Zipf distribution parameter values.

Index Terms:
Content caching, non-uniform demands, coded delivery, multi-level caching

I Introduction

Proactive caching is a well known strategy to reduce the network load and delivery latency in content delivery networks. Recently, it has been shown that proactive caching and coded delivery, together, can further help to reduce the network load. The “shared-link problem”, in which a server with a finite file library serves the demands of cache-equipped users over a shared error-free link is analyzed in [1], where the objective is to design a caching and delivery strategy to minimize the load on the shared link, often referred to as the “delivery rate” in the literature.The proposed solution consists of two phases. In the placement phase, all the files in the library are divided into sub-files, and each user proactively caches a subset of these sub-files. In the delivery phase, the server multicasts XORed versions of the requested sub-files through the shared link, such that each user can recover its demand by exploiting both the cached sub-files and the multicast messages. In the scheme proposed in [1], the server controls the caching decisions of the users in a centralized manner. However, in [2], the authors have shown that similar gains can still be achieved when the caching is performed in a random and decentralized manner under certain assumptions. It is shown in [3] that the delivery rate can be further reduced with a coded delivery scheme that exploits the common requests. Most of the initial studies on coded caching and delivery have been built upon certain simplifying unrealistic assumptions, such as the presence of an error-free broadcast link, uniform user cache capacities, and uniform file demands. A plethora of works have since focused on trying to remove or relax these assumptions in order to bring coded caching and delivery closer to reality. To this end, the case of non-uniform cache sizes is studied in [4, 5, 6], extension to unequal link rates is studied in [7, 5, 8], and non-uniform file popularity is considered in [9, 10, 11, 12, 13, 14, 15].
In this work, we are interested in the case of non-uniform demands as this is commonly encountered in practice[16, 17, 18, 19].It has been shown that by taking into account the statistics of the content popularity and by allocating the cache memory to the files in the library based on this statistics, communication load can be further reduced [9, 10, 11, 12, 13, 14, 15]. Most of the papers dealing with non-uniform demands consider decentralized caching in the placement phase. In [9], the authors proposed a group-based memory sharing approach for the placement phase, where the files in the library are grouped according to their popularities and the available cache memory at user devices is distributed among these groups. Then, in the delivery phase, the coded delivery scheme in [2] is used to deliver the missing parts of the demands. In [10], the authors introduced both a placement and a delivery strategy for non-uniform demands. Optimization of the delivery phase is analyzed as an index coding problem and the multicast messages are constructed based on the clique cover problem, where each missing sub-file111We use the term sub-file to be consistent with the later part of the paper, while the papers studying the asymptotic performance of decentralized coded caching typically use the term ”packet” or ”bit”. (requested but not available in the user’s cache) is considered as a vertex of a conflict graph, and two sub-files are delivered together in the same multicast message if there is no edge between the corresponding vertices. The chromatic number of the conflict graph gives the number of required multicast messages, equivalently, the delivery rate normalized by the sub-file size. Due to the NP-hardness of the original graph coloring problem, the authors introduced a low-complexity suboptimal greedy constrained coloring (GCC) scheme. For the placement phase, similarly to [9], a group-based memory sharing approach with only two groups is considered, where only the files in the first group are cached. They show that the proposed scheme is order-optimal when the popularity of the files follows a Zipf distribution. Results of [10] are further extended by [11] to show that group-based memory sharing with two groups222 In certain cases there might be an additional group consist of only a single file. is order-optimal for any popularity distribution. The group-based memory sharing approach for non-uniform demands is also studied in [12], where the users do not have caches, but instead have access to multiple cache-enabled access points and the shared link is between the server and the access points. All these works analyze the asymptotic performance (as the number of sub-files goes to infinity) of the decentralized coded caching approach.
Decentralized coded caching with finite number of sub-files is recently studied in [15],[20] and [21] and to provide an efficient low-complexity solution to the clique cover problem. Hence, as a common objective, the proposed methods in these works aim to minimize the delivery rate for a given placement strategy using heuristic approaches.
For the centralized coded caching problem under a non-uniform demand distribution, a novel content placement strategy is introduced in [13] and [14] independently. In these papers, content placement is formulated as a linear optimization problem, where each file is divided into K+1K+1 disjoint fragments, not necessarily of equal size. The kkth fragment of each file is cached as in the placement phase of [1] with parameter t=k1t=k-1. In the proposed approach, the size of each fragment of each file is represented by a variable in the linear optimization problem, and the solution of the optimization problem reveals how each file should be divided into K+1K+1 fragments. We remark that the group-based memory sharing scheme of [9] is a special case of these approaches, where in each file group only one fragment has non-zero size. Since this approach considers the most general placement strategy, we call it general memory sharing, while we will refer to the original scheme in [1] as the naive memory sharing scheme. Note that, in the delivery phase, when a multicast message contains sub-files with different sizes, the size of the message is determined according to the largest sub-file in the message, and the smaller are zero-padded, which results in inefficiency.
Hence, although the above scheme allows each file to be divided into different size fragments, when the file library is large, the proposed policy tends to divide the library into small number of groups, where, in each group, the size of the fragments are identical. This is because unequal fragment sizes among users requires zero-padding. In particular, we observe that, for a large file library, the proposed scheme in [14] often tends to classify the files into two groups according to their popularities, such that only the popular files are cached in an identical manner. We highlight here that without mitigating the sub-file mismatch issue, which induces zero padding, the advantage of optimization over fragment sizes is limited. Another limitation of the strategy proposed in [14] is its complexity. The number variables in the optimization problem is N(K+1)N(K+1). Although linear optimization can be solved in polynomial time, it may still be infeasible when the library size is large (in practical scenarios the number of files are often considered to be between 10410610^{4}-10^{6} [17]). In the case of less skewed popularity distributions using more than two groups can be effective in reducing the delivery rate, together with a more intelligent coded delivery design that reduces or prevents zero-padding. This motivates the proposed cross-level coded delivery (CLCD) scheme, whose goal is to design a zero-padding-free coded delivery scheme for a given group structure. The zero-padding problem in the delivery phase of centralized coded caching was previously studied in [15], where a heuristic “bit borrowing ” approach is introduced. The proposed algorithm greedily pairs the bits of the sub-files for a given placement strategy.
In this paper, different from the aforementioned works, we introduce a novel centralized coded caching framework, where the delivery and the placement phases are optimized jointly. In the proposed CLCD strategy, the placement phase is limited to three file groups, formed according to popularities. Then, for each possible demand realization, i.e., the number of users requesting a file from each group, we obtain the optimal delivery scheme and the corresponding delivery rate. Finally, using this information we find the optimal group sizes based on the popularity of the files in the library. We will show that the proposed CLCD scheme provides a noticable reduction in the average delivery rate, up to 10-20%, compared to the state-of-the-art.
The rest of the paper is organized as follows. In Section II, we introduce the system model and the problem definition. In Section III, we introduce the CLCD scheme and analyze it for a particular scenario, where we impose certain constraints on the placement phase. In Section IV, we extend our analysis by lifting some constraints on the placement phase, and in Section V, we present numerical comparisons of the proposed CLCD scheme with the state-of-the-art. In Section VI, we present the most general form of the CLCD scheme without any constraints on the placement phase, and finally, we conclude the paper in Section VII.

II System Model

We consider a single content server with a library of NN files, each of size FF bits, denoted by W1,,WNW_{1},\ldots,W_{N}, serving KK users, each with a cache memory of capacity MFMF bits. The users are connected to the server through a shared error-free link. We follow the two-phase model in [1]. Caches are filled during the placement phase without the knowledge of particular user demands. User requests are revealed in the delivery phase, and are satisfied simultaneously.
The request of user kk is denoted by dkd_{k}, dk[N]{1,,N}d_{k}\in\left[N\right]\triangleq\left\{1,\ldots,N\right\}, and the demand vector is denoted by 𝐝(d1,,dK)\mathbf{d}\triangleq\left(d_{1},\ldots,d_{K}\right). The corresponding delivery rate R(𝐝)R(\mathbf{d}) is defined as the total number of bits sent over the shared link, normalized by the file size. We assume that the user requests are independent of each other, and each user requests file WnW_{n} with probability pnp_{n}, where p1p2pNp_{1}\geq p_{2}\geq\cdots\geq p_{N}, and n=1Npn=1\sum_{n=1}^{N}p_{n}=1. Let P(𝐝)P(\mathbf{d}) denote the probability of observing demand vector 𝐝\mathbf{d}, where P(𝐝)=Πk=1KpdkP(\mathbf{d})=\Pi^{K}_{k=1}p_{d_{k}}. We want to minimize the average delivery rate R¯\bar{R}, defined as

R¯𝐝P(𝐝)R(𝐝).\bar{R}\triangleq\sum_{\mathbf{d}}P(\mathbf{d})R(\mathbf{d}). (1)

Next, we explain the uncoded caching and centralized coded delivery scheme, introduced in [1]. We say that a file WnW_{n} is cached at level tt, if it is divided into (Kt){K\choose t} non-overlapping sub-files of equal size, and each sub-file is cached by a distinct subset of tt users. Then, each sub-file can be identified by an index term \mathcal{I}, where [K]\mathcal{I}\subseteq\left[K\right] and ||=t|\mathcal{I}|=t, such that sub-file Wn,W_{n,\mathcal{I}} is cached by users kk\in\mathcal{I}. Following a placement phase in which all the files are cached at level tt, as proposed in [1], in the delivery phase, for each subset 𝒮[K]\mathcal{S}\subseteq\left[K\right], |𝒮|=t+1|\mathcal{S}|=t+1, all the requests of the users in 𝒮\mathcal{S} can be served simultaneously by multicasting

s𝒮Wds,𝒮{s}.\bigoplus_{s\in\mathcal{S}}W_{d_{s},\mathcal{S}\setminus\left\{s\right\}}. (2)

Thus, with a single multicast message the server can deliver t+1t+1 sub-files, and achieve a multicasting gain of t+1t+1.

III Cross-level Coded Delivery (CLCD) SCHEME

III-A An introductory overview

In the proposed CLCD scheme, the file library is divided into three groups according to their popularity: the most popular NhN_{h} files are called the high-level files, the less popular NlN_{l} files are called the low-level files, and the remaining least popular Nr=N(Nh+Nl)N_{r}=N-(N_{h}+N_{l}) files are called the zero-level files. All the files in the same group are cached at the same level. Hence, the scheme can be represented by five parameters th,tl,Nh,Nl,Nrt_{h},t_{l},N_{h},N_{l},N_{r}, where tht_{h} and tlt_{l} represent the caching levels of the low-level and high-level files, respectively, whereas the zero-level files are not cached at all. Hence, we use CL(th,tl,Nh,Nl,Nr)CL(t_{h},t_{l},N_{h},N_{l},N_{r}) to denote the overall caching strategy.
For the given parameters th,tl,Nh,Nl,Nrt_{h},t_{l},N_{h},N_{l},N_{r}, the required normalized cache-memory size M(th,tl,Nh,Nl,Nr)M(t_{h},t_{l},N_{h},N_{l},N_{r}) is given by

M(th,tl,Nh,Nl,Nr)thNh+tlNlK,M\left(t_{h},t_{l},N_{h},N_{l},N_{r}\right)\triangleq\frac{t_{h}N_{h}+t_{l}N_{l}}{K}, (3)

since caching a file at level tt means dividing it into (Kt){K\choose t} sub-files and letting each user cache (K1t1){K-1\choose t-1} sub-files; that is, each user caches t/Kt/K portion of each file.
The key contribution of the CLCD scheme is in the delivery phase. When the user demands are revealed, they are clustered into three groups, denoted by 𝒦h\mathcal{K}^{h}, 𝒦l\mathcal{K}^{l} and 𝒦r\mathcal{K}^{r}, which correspond to the set of users that request high-level, low-level, and zero-level files, respectively. A naive approach would be to serve the users in each set 𝒦a\mathcal{K}^{a}, a{h,l,r}a\in\left\{h,l,r\right\}, separately as in Algorithm 1.

Input : 𝒦h\mathcal{K}^{h}, 𝒦l\mathcal{K}^{l}
1 for a{h,l}a\in\left\{h,l\right\} do
2 for 𝒮:|𝒮|=ta\mathcal{S}\subseteq:|\mathcal{S}|=t_{a} do
3    if 𝒮𝒦a\mathcal{S}\cap\mathcal{K}^{a}\neq\emptyset then
4         Multicast s𝒦aWds,𝒮{s}\bigoplus_{s\in\mathcal{K}^{a}}W_{d_{s},\mathcal{S}\setminus\left\{s\right\}}
5      end if
6    
7   end for
8 
9 end for
Serve users in 𝒦r\mathcal{K}^{r} with unicast messages.
Algorithm 1 Naive coded delivery for non-uniform content placement

The main limitation of this approach is that, although multicasting gain of ta+1t_{a}+1 is targeted at line 4 of Algorithm 1, the achieved multicasting gain is limited to |𝒮𝒦a||\mathcal{S}\cap\mathcal{K}^{a}|. The main objective of the CLCD strategy is to design a proper way of forming multicast messages such that users from two different groups can be targeted as well in order to reduce the communication load. To this end, CLCD addresses two main challenges; first, how to form the set of target users for multicating, second, how to align sub-file sizes. The latter challenge stems from the mismatch between the sizes of high-level and low-level sub-files. This mismatch can be resolved either at the placement or at the delivery phase. That is, the size of each multicast message can be fixed, or can be adjusted during the delivery phase according to the targeted users. This will be further clarified later in the paper. To simplify the presentation and gradually introduce the key ideas behind the CLCD, in the following subsections we will start introducing special cases of the general CLCD scheme, and gradually extend the analysis to the more general version.

III-B CL(th=2,tl=1,Nh,Nl,Nr=0)\mathrm{CL(t_{h}=2,t_{l}=1,N_{h},N_{l},N_{r}=0)}

In this section, we focus on a particular case of CLCD scheme, CL(2,1,Nh,Nl,0)CL(2,1,N_{h},N_{l},0), that is high-level files are cached at level th=2t_{h}=2 and low-level files are cached at level tl=1t_{l}=1, Nh=NNlN_{h}=N-N_{l}, that is, all the files are cached at either at level 1 or level 2. We will later extend our analysis to the more general CLCD schemes.

III-B1 Placement phase

We first want to remark that the placement strategy employed here is not specific to th=2t_{h}=2 and can be utilized for more general schemes as well, as long as tl=1t_{l}=1. The placement of the high-level files is identical to the one in [1] such that each file is divided into (Kth){K\choose t_{h}} sub-files and the high-level files are cached at level tht_{h}; that is, each user caches (K1th1){K-1\choose t_{h}-1} sub-files of each high-level file.

The key difference appears in the placement of the low-level files; instead of dividing files into (K1){K\choose 1} sub-files, we use the same sub-packetization scheme used for the high-level files above and group them into KK disjoint and equal-size subsets so that each user caches the sub-files of a different subset. Equivalently, each sub-file is cached by only a single user, and each user caches only (K1th1)/th{K-1\choose t_{h}-1}/t_{h} sub-files of each low-level file exclusively. We assume here that (Kth){K\choose t_{h}} is divisible by KK, which holds for any tht_{h} when KK is a prime number. We emphasize that this assumption is not required for CLCD in general; however, under this assumption all the files are divided into equal number of sub-files, thus the alignment problem can be resolved at the placement phase as we explain next.
Although the presented placement scheme is general, in the case of th=2t_{h}=2, we can provide a closed form expression for the achievable delivery rate as a function of the requested files from each caching level, which is denoted by ka|𝒦a|,a{l,h,r}k^{a}\triangleq|\mathcal{K}^{a}|,a\in\left\{l,h,r\right\}, and the corresponding delivery strategy can be obtained in polynomial time. This is particularly important, since it implies a low complexity coded delivery design with a certain achievable rate guarantee in the low cache-memory regime. Next, we provide an example to better illustrate the proposed placement strategy.

User 1 2 3 4 5 6 7
index of cached sub-files {1,2}\left\{1,2\right\} {1,3}\left\{1,3\right\} {1,4}\left\{1,4\right\} {1,5}\left\{1,5\right\} {1,6}\left\{1,6\right\} {1,7}\left\{1,7\right\} {1,2}\left\{1,2\right\} {2,3}\left\{2,3\right\} {2,4}\left\{2,4\right\} {2,5}\left\{2,5\right\} {2,6}\left\{2,6\right\} {2,7}\left\{2,7\right\} {1,3}\left\{1,3\right\} {2,3}\left\{2,3\right\} {3,4}\left\{3,4\right\} {3,5}\left\{3,5\right\} {3,6}\left\{3,6\right\} {3,7}\left\{3,7\right\} {1,4}\left\{1,4\right\} {2,4}\left\{2,4\right\} {3,4}\left\{3,4\right\} {4,5}\left\{4,5\right\} {4,6}\left\{4,6\right\} {4,7}\left\{4,7\right\} {1,5}\left\{1,5\right\} {2,5}\left\{2,5\right\} {3,5}\left\{3,5\right\} {4,5}\left\{4,5\right\} {5,6}\left\{5,6\right\} {5,7}\left\{5,7\right\} {1,6}\left\{1,6\right\} {2,6}\left\{2,6\right\} {3,6}\left\{3,6\right\} {4,6}\left\{4,6\right\} {5,6}\left\{5,6\right\} {6,7}\left\{6,7\right\} {1,7}\left\{1,7\right\} {2,7}\left\{2,7\right\} {3,7}\left\{3,7\right\} {4,7}\left\{4,7\right\} {5,7}\left\{5,7\right\} {6,7}\left\{6,7\right\}


TABLE I: Sub-file placement: for each user the sub-files in red are cached for all the files, whereas the sub-files in blue are cached for only high-level files.

Example 1. Consider a network of K=7K=7 users and a library of N=7N=7 files with decreasing popularity. To simplify the notation, we will denote the files as W1=AW_{1}=A, W2=BW_{2}=B, W3=CW_{3}=C, W4=DW_{4}=D, W5=EW_{5}=E, W6=FW_{6}=F, W7=GW_{7}=G. We set the normalized cache size as M=12/7M=12/7. For the given cache size, we have Nh=5N_{h}=5; that is, the most popular files, {A,B,C,D,E}\left\{A,B,C,D,E\right\}, are treated as high-level files, whereas, GG and FF as low level files. Each file is divided into (K2)=21{K\choose 2}=21 sub-files, and each user stores K1=6K-1=6 sub-files of each high-level file, and K12=3\frac{K-1}{2}=3 sub-files of each low-level file. User cache contents after the placement phase is illustrated in Table I; for each user the sub-files in red are cached for all the files, whereas the sub-files in blue are cached for only the high-level files.

Remark 1.

In Example 1, we use a systematic placement strategy for the low-level files; such that, for each user, the index set of the cached sub-files of a low-level file is a subset of the index set of the cached sub-files of a high level file. Although, this particular placement strategy may not affect the delivery rate performance, it can be beneficial in practice if the library and/or the file popularity dynamically varies over time and the cached content should be updated accordingly [22]. If a high-level file becomes low-level, then the user simply removes the sub-files colored with blue, and similarly, if a low-level file becomes high-level, then the user only downloads the sub-files colored with blue from the server. This systematic placement strategy can be summarized in the following way. Let Ii={𝒮:|𝒮|=2,𝒮𝒦,i𝒮}I_{i}=\left\{\mathcal{S}:|\mathcal{S}|=2,\mathcal{S}\subseteq\mathcal{K},i\in\mathcal{S}\right\} be the set of index sets of sub-files that contain ii. Then, when a file WkW_{k} is cached at level 2, user ii caches all the sub-files Wk,𝒮W_{k,\mathcal{S}}, 𝒮Ii\mathcal{S}\in I_{i}. Further, let each IiI_{i}, for i[K]i\in[K], be ordered as illustrated in Table I, where the iith column includes the elements of IiI_{i} within an order. Once we have ordered sets for each user, then, starting from the first user, each user selects the first K12\frac{K-1}{2} index set, that are not chosen, in order to cache corresponding low-level files as illustrated in Table I for K=7K=7.

III-B2 Delivery phase

High-level users Multicast messages Low-level users Multicast messages
1 2 3 A23B13C12A_{23}\oplus B_{13}\oplus C_{12} 6 7 G16F17G_{16}\oplus F_{17}
1 2 4 A24B14D12A_{24}\oplus B_{14}\oplus D_{12} 6 7 G26F27G_{26}\oplus F_{27}
1 2 5 A25B15E12A_{25}\oplus B_{15}\oplus E_{12} 6 7 G67F37G_{67}\oplus F_{37}
1 3 4 A34C14D13A_{34}\oplus C_{14}\oplus D_{13} 6 F12F_{12}
1 3 5 A35C13E13A_{35}\oplus C_{13}\oplus E_{13} 6 F13F_{13}
1 4 5 A45D15E14A_{45}\oplus D_{15}\oplus E_{14} 6 F14F_{14}
2 3 4 B34C24D23B_{34}\oplus C_{24}\oplus D_{23} 6 F23F_{23}
2 3 5 B35C25E23B_{35}\oplus C_{25}\oplus E_{23} 6 F24F_{24}
2 4 5 B45D25E24B_{45}\oplus D_{25}\oplus E_{24} 6 F25F_{25}
3 4 5 C45D35E34C_{45}\oplus D_{35}\oplus E_{34} 6 F34F_{34}
1 2 A26B16A_{26}\oplus B_{16} 6 F35F_{35}
1 2 A27B17A_{27}\oplus B_{17} 6 F36F_{36}
1 3 A36C16A_{36}\oplus C_{16} 6 F45F_{45}
1 3 A37C17A_{37}\oplus C_{17} 6 F46F_{46}
1 4 A46D16A_{46}\oplus D_{16} 6 F47F_{47}
1 4 A47D17A_{47}\oplus D_{17} 6 F15F_{15}
1 5 A56E16A_{56}\oplus E_{16} 6 F56F_{56}
1 5 A57E17A_{57}\oplus E_{17} 6 F57F_{57}
2 3 B36C26B_{36}\oplus C_{26} 7 G12G_{12}
2 3 B37C27B_{37}\oplus C_{27} 7 G13G_{13}
2 4 B46D26B_{46}\oplus D_{26} 7 G14G_{14}
2 4 B47D27B_{47}\oplus D_{27} 7 G23G_{23}
2 5 B56E26B_{56}\oplus E_{26} 7 G24G_{24}
2 5 B57E27B_{57}\oplus E_{27} 7 G25G_{25}
3 4 C46D36C_{46}\oplus D_{36} 7 G34G_{34}
3 4 C47D37C_{47}\oplus D_{37} 7 G35G_{35}
3 5 C56E36C_{56}\oplus E_{36} 7 G36G_{36}
3 5 C57E37C_{57}\oplus E_{37} 7 G45G_{45}
4 5 D56E46D_{56}\oplus E_{46} 7 G46G_{46}
4 5 D57E47D_{57}\oplus E_{47} 7 G47G_{47}
1 A67A_{67} 7 G15G_{15}
2 B67B_{67} 7 G56G_{56}
3 C67C_{67} 7 G57G_{57}
4 D67D_{67} - -
5 E67E_{67} - -
TABLE II: Multicast messages constructed according to the conventional coded delivery scheme for Example 1.

Delivery phase of the proposed scheme consists of four steps. We will continue to use Example 1 to explain the key ideas of the delivery scheme
Example 1 (continued). Assume that user kk requests file WkW_{k}, k[K]k\in[K], so that 𝒦h={1,2,3,4,5}\mathcal{K}^{h}=\left\{1,2,3,4,5\right\} and 𝒦l={6,7}\mathcal{K}^{l}=\left\{6,7\right\}. Before explaining the delivery steps in detail, we want to highlight the main idea behind the CLCD scheme, which has been inspired by the bit borrowing approach introduced in [15]. For the given example, if the conventional coded delivery scheme is used for delivering the missing sub-files of the high-level and low-level users separately, then the server should send all the messages given in Table II. Now, consider the following three messages in Table II: A26B16A_{26}\oplus B_{16}, which targets high-level users 1 and 2, and F12F_{12} and F23F_{23}, which are sent as unicast messages to low-level user 6. In the cross-level design, the server decomposes the message A26B16A_{26}\oplus B_{16} into sub-files A26A_{26} and B16B_{16}, and instead, pairs them with sub-files F12F_{12} and F23F_{23} to construct cross-level messages A26F12A_{26}\oplus F_{12}, which targets high-level user 1 and low-level user 6, and B16F23B_{16}\oplus F_{23}, which targets high-level user 2 and low-level user 6. Hence, the server multicasts two messages instead of three. We call this process as multicast message decomposition, since the cross-level messages are constructed by decomposing a message constructed according to the conventional coded delivery scheme.

The key challenge in CLCD is deciding which messages to decompose, and how to pair the decomposed high-level sub-files with the low-level sub-files. Now, if we go back to Example 1, all the messages in blue in Table II will be used for cross-level delivery and the total number of broadcast messages will be reduced to 5151 from 6868 (24% reduction). In the delivery phase, the server first multicasts the messages in red in Table II, then the messages in blue are used to construct cross-level messages, and finally the remaining messages in green are sent as in the conventional coded delivery scheme. Now, we will further explain the four steps of the delivery phase:
Step 1) Intra-high-level delivery: The first step of the delivery phase is identical to that in (2) for t=2t=2. The only difference is that, now we consider only the users in 𝒦h\mathcal{K}^{h}, instead of [K]\left[K\right]. This corresponds to the red messages in the second column of Table II.
Step 2) Intra-low-level delivery: The second step also follows (2) with t=1t=1, targeting low-level users in 𝒦l\mathcal{K}^{l}. These are the red messages in the last column of Table II.
Step 3) Cross-level delivery: This step is the main novelty of the CLCD scheme. First, note that each high-level user has (K1)/2(K-1)/2 sub-files in its cache that are requested by a low-level user. For instance, in Example 1, user 1 has sub-files {G12,G13,G14}\left\{G_{12},G_{13},G_{14}\right\} that are requested by user 7. For i𝒦hi\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}, let i,j\mathcal{H}_{i,j} denote the set of sub-files stored at high-level user ii and requested by low-level user jj, e.g., 1,7{G12,G13,G14}\mathcal{H}_{1,7}\triangleq\left\{G_{12},G_{13},G_{14}\right\} in Example 1. We note that these sub-files are sent as unicast messages in the conventional coded delivery scheme. Similarly, for i𝒦hi\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}, let i,j\mathcal{L}_{i,j} be the set of (K21)=K2{K-2\choose 1}=K-2 sub-files stored by low-level user jj that are requested by high-level user ii, e.g., 1,7{A27,A37,A47,A57,A67}\mathcal{L}_{1,7}\triangleq\left\{A_{27},A_{37},A_{47},A_{57},A_{67}\right\} in Example 1. One can observe that a cross-level message, targeting high-level user ii and low-level user jj, can be constructed by taking one sub-file from each of i,j\mathcal{H}_{i,j} and i,j\mathcal{L}_{i,j}, and bit-wise XORing them. For the given example, any three sub-files can be chosen from set 1,7\mathcal{L}_{1,7} and paired with any of the sub-files in 1,7\mathcal{H}_{1,7} to construct a cross-level message. To generalize, if there is a set of sub-files i,ji,j\mathcal{F}_{i,j}\subseteq\mathcal{L}_{i,j} such that |i,j|=|i,j||\mathcal{F}_{i,j}|=|\mathcal{H}_{i,j}|, then we can easily construct cross-level messages that target high-level user ii and low-level user jj, using any one-to-one mapping between these two sets. However, we remark that, if sub-file A37A_{37} is used to construct a cross-level message, i.e., A371,7A_{37}\in\mathcal{F}_{1,7}, then the multicast message A37C17A_{37}\oplus C_{17} should also be decomposed, and the sub-file C17C_{17} should also be paired with a low-level file, i.e., C173,7C_{17}\in\mathcal{F}_{3,7}.
Hence, the main challenge in cross-level delivery is the construction of sets i,j\mathcal{F}_{i,j} in a joint manner. Before the construction process of these sets, we will define two more sets that will be useful. We note that, in the given example, sub-files {A27,A37,A47,A57}\left\{A_{27},A_{37},A_{47},A_{57}\right\} are also cached by a high-level user, but sub-file A67A_{67} is cached by only low-level users. For i𝒦hi\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}, we introduce the set Ωi,ji,j\Omega_{i,j}\subseteq\mathcal{L}_{i,j} of the sub-files that are requested by high-level user ii, and cached by low-level user jj as well as by a high-level user, e.g., Ω1,7{A27,A37,A47,A57}\Omega_{1,7}\triangleq\left\{A_{27},A_{37},A_{47},A_{57}\right\}. Furthermore, we introduce the set Λi\Lambda_{i}, i𝒦hi\in\mathcal{K}^{h}, of the sub-files that are requested by high-level user ii but cached by only low-level users, i.e., Λij𝒦l(i,jΩi,j)\Lambda_{i}\triangleq\cup_{j\in\mathcal{K}^{l}}\left(\mathcal{L}_{i,j}\setminus\Omega_{i,j}\right). We have, in Example 1, Λ1={A67}\Lambda_{1}=\left\{A_{67}\right\}.
In the third step of proposed CLCD scheme, our aim is to deliver all the remaining sub-files requested by the low-level users and the sub-files requested by the high-level users that are cached by only low-level users, via multicast messages, each destined for one high-level and one low-level user. More formally, we want low-level user jj, j𝒦lj\in\mathcal{K}^{l}, to recover all the sub-files in i𝒦hi,j\cup_{i\in\mathcal{K}^{h}}\mathcal{H}_{i,j}, and we want high-level user ii, i𝒦hi\in\mathcal{K}^{h}, to recover all the sub-files in Λi\Lambda_{i}. To this end, sets i,j\mathcal{F}_{i,j} must satisfy the following properties:

Λiji,j, i𝒦h,\displaystyle\Lambda_{i}\subseteq\cup_{j}\mathcal{F}_{i,j},\text{ }\forall i\in\mathcal{K}^{h}, (4)
i,ji,k=, i𝒦h and j,k𝒦l,\displaystyle\mathcal{F}_{i,j}\cap\mathcal{F}_{i,k}=\emptyset,\text{ }\forall i\in\mathcal{K}^{h}\text{ and }\forall j,k\in\mathcal{K}^{l}, (5)

where (4) ensures that each high-level user collects its missing sub-files that are available only in the caches of the low-level users and (5) guarantees that high-level users do not receive the same sub-file multiple times.
Next, we show how to construct the sets i,j\mathcal{F}_{i,j}, i𝒦hi\in\mathcal{K}^{h}, j𝒦lj\in\mathcal{K}^{l}. In order to ensure (4) and (5), Λi\Lambda_{i} is partitioned into subsets {Λi,j}jKl\left\{\Lambda_{i,j}\right\}_{j\in K^{l}} with approximately uniform cardinality, i.e., |Λi,k||Λi,j|1|\Lambda_{i,k}|-|\Lambda_{i,j}|\leq 1, j,k𝒦l\forall j,k\in\mathcal{K}^{l}, jkj\neq k, and such that Λi,ji,j\Lambda_{i,j}\subseteq\mathcal{L}_{i,j} holds for all i𝒦hi\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}. Further details on approximately uniform partitioning are provided in Appendix C. We note that, if Λi,ji,j\Lambda_{i,j}\subseteq\mathcal{F}_{i,j}, then (4) holds. We also assume that the same partitioning is applied to all Λi\Lambda_{i}’s. Partitions of Λi\Lambda_{i}’s for Example 1 are illustrated in Table III.
For given Ωi,j\Omega_{i,j} and Λi,j\Lambda_{i,j}, i,j\mathcal{F}_{i,j} can be constructed as follows: i,j=Λi,j{Ωi,jΔi,j}\mathcal{F}_{i,j}=\Lambda_{i,j}\cup\left\{\Omega_{i,j}\setminus\Delta_{i,j}\right\}, for some Δi,jΩi,j\Delta_{i,j}\subseteq\Omega_{i,j}. Then, from the construction, one can easily verify that (5) holds. We note that, in this construction, Δi,j\Delta_{i,j} simply denotes the sub-files in i,j\mathcal{L}_{i,j} that are not used in a cross-level message. In Example 1, this corresponds to the green multicast messages in Table II. In particular, if multicast message A27B17A_{27}\oplus B_{17} is not decomposed for cross-level delivery, then A27Δ17A_{27}\in\Delta_{17} and B17Δ27B_{17}\in\Delta_{27}. Hence, the ultimate aim is to find a proper way of constructing sets Δij\Delta_{ij}, which is equivalent to deciding which multicast messages to be decomposed.
In order to ensure the initial requirement of |i,j|=|i,j||\mathcal{F}_{i,j}|=|\mathcal{H}_{i,j}|, we need to show that it is possible to construct Δi,j\Delta_{i,j}, i𝒦hi\in\mathcal{K}^{h}, j𝒦lj\in\mathcal{K}^{l}, which satisfy the following equality

|i,j|=|Λi,j|+|Ωi,j||Δi,j|.|\mathcal{H}_{i,j}|=|\Lambda_{i,j}|+|\Omega_{i,j}|-|\Delta_{i,j}|. (6)

We note that, if the following inequality holds

|Λi,j||i,j||Λi,j|+|Ωi,j|,|\Lambda_{i,j}|\leq|\mathcal{H}_{i,j}|\leq|\Lambda_{i,j}|+|\Omega_{i,j}|, (7)

Δi,j\Delta_{i,j} satisfying (6) can always be found.
From the construction, we know that |i,j|=K12|\mathcal{H}_{i,j}|=\frac{K-1}{2}; however, |Ωi,j||\Omega_{i,j}| and |Λi,j||\Lambda_{i,j}| depend on the realization of the user demands, i.e., |Ωi,j|=kh1|\Omega_{i,j}|=k^{h}-1 and |Λi,j|=kl12|\Lambda_{i,j}|=\left\lceil\frac{k^{l}-1}{2}\right\rceil or |Λi,j|=kl12|\Lambda_{i,j}|=\left\lfloor\frac{k^{l}-1}{2}\right\rfloor due to the approximately uniform partitioning. Accordingly,

|Ωi,j|+|Λi,j|\displaystyle|\Omega_{i,j}|+|\Lambda_{i,j}| =K12+kh22, or\displaystyle=\left\lfloor\frac{K-1}{2}+\frac{k^{h}-2}{2}\right\rfloor,\text{ or } (8)
|Ωi,j|+|Λi,j|\displaystyle|\Omega_{i,j}|+|\Lambda_{i,j}| =K12+kh22.\displaystyle=\left\lceil\frac{K-1}{2}+\frac{k^{h}-2}{2}\right\rceil. (9)

One can observe that, when kh2k^{h}\geq 2, |Ωi,j|+|Λi,j||i,j|=K12|\Omega_{i,j}|+|\Lambda_{i,j}|\geq|\mathcal{H}_{i,j}|=\frac{K-1}{2} in both cases. If kh=1k^{h}=1, the high-level file is considered as a low-level file in the delivery phase, and the achievable rate becomes (K1)/2(K-1)/2. In the remainder of this section, we assume kh2k^{h}\geq 2. One can also observe that |Λi,j||i,j||\Lambda_{i,j}|\leq|\mathcal{H}_{i,j}|, since klKk^{l}\leq K. Let ni,jn_{i,j} be the cardinality of the set Δi,j\Delta_{i,j} that satisfies (6), i.e., ni,j|Ωi,j|+|Λi,j||i,j|n_{i,j}\triangleq|\Omega_{i,j}|+|\Lambda_{i,j}|-|\mathcal{H}_{i,j}|. We can consider any subset of Ωi,j\Omega_{i,j} with cardinality ni,jn_{i,j} as Δi,j\Delta_{i,j} to construct i,j\mathcal{F}_{i,j}.

(i,j) Ωi,j\Omega_{i,j} Λi,j\Lambda_{i,j} Δi,j\Delta_{i,j} i,j\mathcal{F}_{i,j} i,j\mathcal{H}_{i,j} Cross-level messages
(1,6) {A26,A36,A46,A56}\left\{{\color[rgb]{0,0,1}A_{26},A_{36}},{\color[rgb]{1,0,0}A_{46}},{\color[rgb]{0,0,1}A_{56}}\right\} \emptyset {A46}\left\{{\color[rgb]{1,0,0}A_{46}}\right\} {A26,A36,A56}\left\{{\color[rgb]{0,0,1}A_{26},A_{36},A_{56}}\right\} {F12,F13,F14}\left\{F_{12},F_{13},F_{14}\right\} A26F12A_{26}\oplus F_{12}, A36F13A_{36}\oplus F_{13}, A56F14A_{56}\oplus F_{14}
(1,7) {A27,A37,A47,A57}\left\{{\color[rgb]{1,0,0}A_{27}},{\color[rgb]{0,0,1}A_{37}},{\color[rgb]{1,0,0}A_{47}},{\color[rgb]{0,0,1}A_{57}}\right\} {A67}\left\{{\color[rgb]{0,0,1}A_{67}}\right\} {A27,A47}\left\{{\color[rgb]{1,0,0}A_{27},A_{47}}\right\} {A67,A37,A57}\left\{{\color[rgb]{0,0,1}A_{67},A_{37},A_{57}}\right\} {G12,G13,G14}\left\{G_{12},G_{13},G_{14}\right\} A67G12A_{67}\oplus G_{12}, A37G13A_{37}\oplus G_{13}, A57G14A_{57}\oplus G_{14}
(2,6) {B16,B36,B46,B56}\left\{{\color[rgb]{0,0,1}B_{16},B_{36},B_{46}},{\color[rgb]{1,0,0}B_{56}}\right\} \emptyset {B56}\left\{{\color[rgb]{1,0,0}B_{56}}\right\} {B16,B36,B46}\left\{{\color[rgb]{0,0,1}B_{16},B_{36},B_{46}}\right\} {F23,F24,F25}\left\{F_{23},F_{24},F_{25}\right\} B16F23B_{16}\oplus F_{23}, B36F24B_{36}\oplus F_{24}, B46F25B_{46}\oplus F_{25}
(2,7) {B17,B37,B47,B57}\left\{{\color[rgb]{1,0,0}B_{17}},{\color[rgb]{0,0,1}B_{37},B_{47}},{\color[rgb]{1,0,0}B_{57}}\right\} {B67}\left\{{\color[rgb]{0,0,1}B_{67}}\right\} {B17,B57}\left\{{\color[rgb]{1,0,0}B_{17},B_{57}}\right\} {B67,B37,B47}\left\{{\color[rgb]{0,0,1}B_{67},B_{37},B_{47}}\right\} {G23,G24,G25}\left\{G_{23},G_{24},G_{25}\right\} B67G23B_{67}\oplus G_{23}, B37G24B_{37}\oplus G_{24}, B47G25B_{47}\oplus G_{25}
(3,6) {C16,C26,C46,C56}\left\{{\color[rgb]{0,0,1}C_{16},C_{26}},{\color[rgb]{1,0,0}C_{46}},{\color[rgb]{0,0,1}C_{56}}\right\} \emptyset {C46}\left\{{\color[rgb]{1,0,0}C_{46}}\right\} {C16,C26,C56}\left\{{\color[rgb]{0,0,1}C_{16},C_{26},C_{56}}\right\} {F34,F35,F36}\left\{F_{34},F_{35},F_{36}\right\} C16F34C_{16}\oplus F_{34}, C26F35C_{26}\oplus F_{35}, C56F36C_{56}\oplus F_{36}
(3,7) {C17,C27,C47,C57}\left\{{\color[rgb]{0,0,1}C_{17},C_{27}},{\color[rgb]{1,0,0}C_{47},C_{57}}\right\} {C67}\left\{{\color[rgb]{0,0,1}C_{67}}\right\} {C47,C57}\left\{{\color[rgb]{1,0,0}C_{47},C_{57}}\right\} {C67,C17,C27}\left\{{\color[rgb]{0,0,1}C_{67},C_{17},C_{27}}\right\} {G34,G35,G36}\left\{G_{34},G_{35},G_{36}\right\} C67G34C_{67}\oplus G_{34}, C17G35C_{17}\oplus G_{35}, C27G36C_{27}\oplus G_{36}
(4,6) {D16,D26,D36,D56}\left\{{\color[rgb]{0,0,1}D_{16},D_{26}},{\color[rgb]{1,0,0}D_{36}},{\color[rgb]{0,0,1}D_{56}}\right\} \emptyset {D36}\left\{{\color[rgb]{1,0,0}D_{36}}\right\} {D16,D26,D56}\left\{{\color[rgb]{0,0,1}D_{16},D_{26},D_{56}}\right\} {F45,F46,F47}\left\{F_{45},F_{46},F_{47}\right\} D16F45D_{16}\oplus F_{45}, D26F46D_{26}\oplus F_{46}, D56F47D_{56}\oplus F_{47}
(4,7) {D17,D27,D37,D57}\left\{{\color[rgb]{1,0,0}D_{17}},{\color[rgb]{0,0,1}D_{27}},{\color[rgb]{1,0,0}D_{37}},{\color[rgb]{0,0,1}D_{57}}\right\} {D67}\left\{{\color[rgb]{0,0,1}D_{67}}\right\} {D17,D37}\left\{{\color[rgb]{1,0,0}D_{17},D_{37}}\right\} {D67,D27,D57}\left\{{\color[rgb]{0,0,1}D_{67},D_{27},D_{57}}\right\} {G45,G46,G47}\left\{G_{45},G_{46},G_{47}\right\} D67G45D_{67}\oplus G_{45}, D27G46D_{27}\oplus G_{46},D57G47D_{57}\oplus G_{47}
(5,6) {E16,E26,E36,E46}\left\{{\color[rgb]{0,0,1}E_{16}},{\color[rgb]{1,0,0}E_{26}},{\color[rgb]{0,0,1}E_{36},E_{46}}\right\} \emptyset {E26}\left\{{\color[rgb]{1,0,0}E_{26}}\right\} {E16,E36,E46}\left\{{\color[rgb]{0,0,1}E_{16},E_{36},E_{46}}\right\} {F15,F56,F57}\left\{F_{15},F_{56},F_{57}\right\} E16F15E_{16}\oplus F_{15}, E36F56E_{36}\oplus F_{56}, E46F57E_{46}\oplus F_{57}
(5,7) {E17,E27,E37,E47}\left\{{\color[rgb]{0,0,1}E_{17}},{\color[rgb]{1,0,0}E_{27},E_{37}},{\color[rgb]{0,0,1}E_{47}}\right\} {E67}\left\{{\color[rgb]{0,0,1}E_{67}}\right\} {E27,E37}\left\{{\color[rgb]{1,0,0}E_{27},E_{37}}\right\} {E67,E17,E47}\left\{{\color[rgb]{0,0,1}E_{67},E_{17},E_{47}}\right\} {G15,G56,G57}\left\{G_{15},G_{56},G_{57}\right\} E67G15E_{67}\oplus G_{15}, E17G56E_{17}\oplus G_{56}, E47G57E_{47}\oplus G_{57}
TABLE III: Sets Ωi,j\Omega_{i,j}, Λi,j\Lambda_{i,j}, Δi,j\Delta_{i,j}, i,j\mathcal{F}_{i,j}, i,j\mathcal{H}_{i,j}, and the cross-level messages formed in Step 3 of the delivery phase for Example 1.

Eventually, the overall problem can be treated as choosing the multicast messages that will be decomposed, colored with blue in Table II, so that the sub-files that are not used for cross-level delivery satisfy the constraint |Δi,j|=ni,j|\Delta_{i,j}|=n_{i,j}, \forall i𝒦h,j𝒦li\in\mathcal{K}^{h},j\in\mathcal{K}^{l}. Once the decomposed files and Δi,j\Delta_{i,j} are decided, i,j\mathcal{F}_{i,j} can be constructed easily as illustrated in Table III, which also lists all the cross-level messages.
We remark that when Wdi,{k,j}Δi,jW_{d_{i},\left\{k,j\right\}}\in\Delta_{i,j}, for i,k𝒦hi,k\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}, this also requires Wdk,{i,j}Δk,jW_{d_{k},\left\{i,j\right\}}\in\Delta_{k,j}. Hence, for a particular j𝒦lj\in\mathcal{K}^{l} with ni,j=nn_{i,j}=n, for all i𝒦hi\in\mathcal{K}^{h}, construction of the sets Δi,j\Delta_{i,j} is equivalent to finding khn/2k^{h}n/2 number of (i,k)(i,k) pairs such that each i𝒦hi\in\mathcal{K}^{h} appears in exactly nn of them. This problem can be analyzed by constructing a graph whose vertices are the elements of 𝒦h\mathcal{K}^{h}, and each vertex has a degree of nn so that each edge of the graph can be considered as a pair. To successfully construct such a graph we utilize the matching concept used in graph theory. The key graph theoretic definitions and lemmas used for this analysis are introduced in Appendix A, while the construction of sets Δi,j\Delta_{i,j} and \mathcal{B} is detailed in Appendix B.

Step 4) Intra-high-level delivery with multicasting gain of two: In the last step, the server multicasts the remaining messages which are colored with green in Table II. In Example 1, this step is finalized with unicasting the sub-file A46A_{46}. Let \mathcal{B} denote the set of multicast messages that are not decomposed to be used for cross-level delivery, and hence, are multicasted in the last step.

The required delivery rate for a particular demand vector 𝐝\mathbf{d} under CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)} scheme is given by the following lemma.

Lemma 1.

For a cache size of M=2Nh+Nl2M=\frac{2N_{h}+N_{l}}{2}, and demand realization 𝐝\mathbf{d}, the following delivery rate is achievable by the proposed CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)} scheme:

R(𝐝)={(kh3)+(L(𝐝)3(kh3))/2(K2),if kh2K12,otherwise,R(\mathbf{d})=\begin{cases*}\frac{{k^{h}\choose 3}+\left\lceil\left(L(\mathbf{d})-3{k^{h}\choose 3}\right)/2\right\rceil}{{K\choose 2}},&if $k^{h}\geq 2$\\ \frac{K-1}{2},&otherwise\end{cases*}, (10)

where L(𝐝)L(\mathbf{d}) is the total number of missing sub-files for demand realization 𝐝\mathbf{d}, and is given by

L(𝐝)(K1)[K22khkl2].L(\mathbf{d})\triangleq\left(K-1\right)\left[\frac{K^{2}}{2}-k^{h}-\frac{k^{l}}{2}\right]. (11)

Note that, in the centralized coded delivery scheme of [1], when all the files are cached at level tt, the delivery rate is equal to Ktt+1\frac{K-t}{t+1}. We can observe from (10) that, when kl=Kk^{l}=K, there are only low level users and R(𝐝)=K12R(\mathbf{d})=\frac{K-1}{2}. Similarly, when kh=Kk^{h}=K, there are only high level users and R(𝐝)=K23R(\mathbf{d})=\frac{K-2}{3}. In general, Lemma 1 implies that for any demand realization 𝐝\mathbf{d}, sub-files are served with a minimum multicasting gain of 2. We also remark that the delivery rate depends only on the vector 𝐤[kh,kl]\mathbf{k}\triangleq[k^{h},k^{l}]; rather than the demand vector; hence, the dependence on 𝐝\mathbf{d} in (10) and (11) can be replaced by 𝐤\mathbf{k}, i.e., we use R(𝐤)R(\mathbf{k}) and L(𝐤)L(\mathbf{k}), respectively. Note that khk^{h} and klk^{l} are random variables, and their distribution P(𝐤|Nh,Nl)P(\mathbf{k}|N_{h},N_{l}) depends on NhN_{h}, NlN_{l} and the popularity distribution. Accordingly, the average delivery rate can now be written as follows:

R¯𝐤R(𝐤)P(𝐤|Nh,Nl).\bar{R}\triangleq\sum_{\mathbf{k}}R(\mathbf{k})P(\mathbf{k}|N_{h},N_{l}). (12)

In the next subsection, we extend our analysis to the case in which a certain subset of the files are not cached at all, that is, Nh+Nl<NN_{h}+N_{l}<N.

III-C CL(th=2,tl=1,Nh,Nl,Nr)\mathrm{CL(t_{h}=2,t_{l}=1,N_{h},N_{l},N_{r})}

We recall that when Nh+Nl=NN_{h}+N_{l}=N, the cache memory requirement for CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)} is given by

M(2,1,Nh,Nl,0)Nh+NK.M\left(2,1,N_{h},N_{l},0\right)\triangleq\frac{N_{h}+N}{K}. (13)

Hence, in this particular case, for a given cache memory size of MM, NhN_{h} and NlN_{l} can be directly written as a parameter of NN, MM, and KK. However, by choosing not to cache NrN_{r} number of least popular files, it is possible to consider different values for NhN_{h} and NlN_{l} under the constraint

2Nh+NlKM,\frac{2N_{h}+N_{l}}{K}\leq M, (14)

or, equivalently,

NhNrKMN.N_{h}-N_{r}\leq KM-N. (15)

From Equation (15), one can observe that by playing with the parameter NrN_{r} it is possible to seek a different placement strategy in terms of the caching levels. We will later discuss how the placement strategy can be optimized, but here now we will focus on the delivery of the CL(2,1,Nh,Nl,Nr)\mathrm{CL(2,1,N_{h},N_{l},N_{r})} scheme, where we have three set of users, 𝒦h\mathcal{K}^{h}, 𝒦l\mathcal{K}^{l} and 𝒦r\mathcal{K}^{r}, and set ka|𝒦a|,a{l,h,r}k^{a}\triangleq|\mathcal{K}^{a}|,a\in\left\{l,h,r\right\} as before.

(i,j) Ωi,j\Omega_{i,j} Πi,j\Pi_{i,j} Λi,j\Lambda_{i,j} Δi,j\Delta_{i,j} i,j\mathcal{F}_{i,j} i,j\mathcal{H}_{i,j} Cross-level messages
(1,5) {A25,A35,A45}\left\{{\color[rgb]{1,0,0}A_{25}},{\color[rgb]{0,0,1}A_{35},A_{45}}\right\} {A57}\left\{{\color[rgb]{0,1,1}A_{57}}\right\} \emptyset {A25}\left\{{\color[rgb]{1,0,0}A_{25}}\right\} {A57,A35,A45}\left\{{\color[rgb]{0,1,1}A_{57}},{\color[rgb]{0,0,1}A_{35},A_{45}}\right\} {E12,E13,E14}\left\{E_{12},E_{13},E_{14}\right\} A57E12A_{57}\oplus E_{12}, A35E13A_{35}\oplus E_{13}, A45E14A_{45}\oplus E_{14}
(1,6) {A26,A36,A46}\left\{{\color[rgb]{1,0,0}A_{26},A_{36}},{\color[rgb]{0,0,1}A_{46}}\right\} {A67}\left\{{\color[rgb]{0,1,1}A_{67}}\right\} {A56}\left\{{\color[rgb]{0,0,1}A_{56}}\right\} {A26,A36}\left\{{\color[rgb]{1,0,0}A_{26},A_{36}}\right\} {A67,A46,A56}\left\{{\color[rgb]{0,1,1}A_{67}},{\color[rgb]{0,0,1}A_{46},A_{56}}\right\} {F12,F13,F14}\left\{F_{12},F_{13},F_{14}\right\} A67F12A_{67}\oplus F_{12}, A46F13A_{46}\oplus F_{13}, A56F14A_{56}\oplus F_{14}
(2,5) {B15,B35,B45}\left\{{\color[rgb]{1,0,0}B_{15}}{\color[rgb]{0,0,1},B_{35},B_{45}}\right\} {B57}\left\{{\color[rgb]{0,1,1}B_{57}}\right\} \emptyset {B15}\left\{{\color[rgb]{1,0,0}B_{15}}\right\} {B57,B35,B45}\left\{{\color[rgb]{0,1,1}B_{57}},{\color[rgb]{0,0,1}B_{35},B_{45}}\right\} {E23,E24,E25}\left\{E_{23},E_{24},E_{25}\right\} B57E23B_{57}\oplus E_{23}, B35E24B_{35}\oplus E_{24}, B45E25B_{45}\oplus E_{25}
(2,6) {B16,B46,B36}\left\{{\color[rgb]{1,0,0}B_{16},B_{46}},{\color[rgb]{0,0,1}B_{36}}\right\} {B67}\left\{{\color[rgb]{0,1,1}B_{67}}\right\} {B56}\left\{{\color[rgb]{0,0,1}B_{56}}\right\} {B16,B46}\left\{{\color[rgb]{1,0,0}B_{16},B_{46}}\right\} {B67,B36,B56}\left\{{\color[rgb]{0,1,1}B_{67}},{\color[rgb]{0,0,1}B_{36},B_{56}}\right\} {F23,F24,F25}\left\{F_{23},F_{24},F_{25}\right\} B67F23B_{67}\oplus F_{23}, B36F24B_{36}\oplus F_{24}, B56F25B_{56}\oplus F_{25}
(3,5) {C45,C15,C25}\left\{{\color[rgb]{1,0,0}C_{45}},{\color[rgb]{0,0,1}C_{15},C_{25}}\right\} {C57}\left\{{\color[rgb]{0,1,1}C_{57}}\right\} \emptyset {C45}\left\{{\color[rgb]{1,0,0}C_{45}}\right\} {C57,C15,C25}\left\{{\color[rgb]{0,1,1}C_{57}},{\color[rgb]{0,0,1}C_{15},C_{25}}\right\} {E34,E35,E36}\left\{E_{34},E_{35},E_{36}\right\} C57E34C_{57}\oplus E_{34}, C15E35C_{15}\oplus E_{35}, C25E36C_{25}\oplus E_{36}
(3,6) {C16,C46,C36}\left\{{\color[rgb]{1,0,0}C_{16},C_{46}},{\color[rgb]{0,0,1}C_{36}}\right\} {C67}\left\{{\color[rgb]{0,1,1}C_{67}}\right\} {C56}\left\{{\color[rgb]{0,0,1}C_{56}}\right\} {C16,C46}\left\{{\color[rgb]{1,0,0}C_{16},C_{46}}\right\} {C67,C36,C56}\left\{{\color[rgb]{0,1,1}C_{67}},{\color[rgb]{0,0,1}C_{36},C_{56}}\right\} {F34,F35,F36}\left\{F_{34},F_{35},F_{36}\right\} C67F34C_{67}\oplus F_{34}, C36F35C_{36}\oplus F_{35}, C56F36C_{56}\oplus F_{36}
(4,5) {D35,D25,D15}\left\{{\color[rgb]{1,0,0}D_{35}},{\color[rgb]{0,0,1}D_{25},D_{15}}\right\} {D57}\left\{{\color[rgb]{0,1,1}D_{57}}\right\} \emptyset {D35}\left\{{\color[rgb]{1,0,0}D_{35}}\right\} {D57,D15,D25}\left\{{\color[rgb]{0,1,1}D_{57}},{\color[rgb]{0,0,1}D_{15},D_{25}}\right\} {E45,E46,E47}\left\{E_{45},E_{46},E_{47}\right\} D57E45D_{57}\oplus E_{45}, D15E46D_{15}\oplus E_{46}, D25E47D_{25}\oplus E_{47}
(4,6) {D26,D36,D16}\left\{{\color[rgb]{1,0,0}D_{26},D_{36}},{\color[rgb]{0,0,1}D_{16}}\right\} {D67}\left\{{\color[rgb]{0,1,1}D_{67}}\right\} {D56}\left\{{\color[rgb]{0,0,1}D_{56}}\right\} {D26,D36}\left\{{\color[rgb]{1,0,0}D_{26},D_{36}}\right\} {D67,D16,D56}\left\{{\color[rgb]{0,1,1}D_{67}},{\color[rgb]{0,0,1}D_{16},D_{56}}\right\} {F45,F46,F47}\left\{F_{45},F_{46},F_{47}\right\} D67F45D_{67}\oplus F_{45}, D16F46D_{16}\oplus F_{46}, D56F47D_{56}\oplus F_{47}
TABLE IV: Sets Ωi,j\Omega_{i,j}, Λi,j\Lambda_{i,j}, Δi,j\Delta_{i,j}, i,j\mathcal{F}_{i,j}, i,j\mathcal{H}_{i,j}, Πi,j\Pi_{i,j} and the multicasted messages in step 3 of the delivery phase for Example 2.

We highlight the key modifications compared to the case Nr=0N_{r}=0. First, we introduce a new set 𝒵i,j\mathcal{Z}_{i,j} of sub-files that are requested by a high-level user i𝒦hi\in\mathcal{K}^{h}, and cached by a low-level user j𝒦lj\in\mathcal{K}^{l} and a zero-level user. The fundamental modification appears in the cross-level delivery step, i.e., in Step 3 of the delivery algorithm, particularly in the construction of set i,j\mathcal{F}_{i,j}. When 𝒦r\mathcal{K}^{r}\neq\emptyset, i,j\mathcal{F}_{i,j} is constructed in the following way

i,j=Λi,jΠi,j{Ωi,jΔi,j},\mathcal{F}_{i,j}=\Lambda_{i,j}\cup\Pi_{i,j}\cup\left\{\Omega_{i,j}\setminus\Delta_{i,j}\right\}, (16)

where Πi,j𝒵i,j\Pi_{i,j}\subseteq\mathcal{Z}_{i,j}. Initially, we want all the sub-files in 𝒵i,j\mathcal{Z}_{i,j} to be included in i,j\mathcal{F}_{i,j}, i.e., 𝒵i,ji,j\mathcal{Z}_{i,j}\subseteq\mathcal{F}_{i,j}; however, this is not possible if

|Λi,j|+|𝒵i,j|>|i,j|.|\Lambda_{i,j}|+|\mathcal{Z}_{i,j}|>|\mathcal{H}_{i,j}|. (17)

In that case, σi,j\sigma_{i,j} sub-files must be removed from 𝒵i,j\mathcal{Z}_{i,j} to obtain Πi,j\Pi_{i,j}, where σi,j\sigma_{i,j} is found as

σi,j\displaystyle\sigma_{i,j}\triangleq (|Λi,j|+|𝒵i,j||i,j|)+\displaystyle\left(|\Lambda_{i,j}|+|\mathcal{Z}_{i,j}|-|\mathcal{H}_{i,j}|\right)^{+}
=\displaystyle= (kl12+krK12)+,or\displaystyle\left(\left\lceil\frac{k^{l}-1}{2}\right\rceil+k^{r}-\frac{K-1}{2}\right)^{+},\text{or}
=\displaystyle= (kl12+krK12)+,\displaystyle\left(\left\lfloor\frac{k^{l}-1}{2}\right\rfloor+k^{r}-\frac{K-1}{2}\right)^{+}, (18)

where (x)+(x)^{+} is xx if x>0x>0, and 0 otherwise.

We remark that when σi,j0\sigma_{i,j}\geq 0, this means that |Λi,j|+|Πi,j|=|i,j||\Lambda_{i,j}|+|\Pi_{i,j}|=|\mathcal{H}_{i,j}|, thus Ωi,j=Δi,j\Omega_{i,j}=\Delta_{i,j} and ni,j=|Ωi,j|n_{i,j}=|\Omega_{i,j}|. In general, ni,j|Ωi,j|n~i,jn_{i,j}|\Omega_{i,j}|-\tilde{n}_{i,j}, where n~i,j\tilde{n}_{i,j}

n~i,j\displaystyle\tilde{n}_{i,j}\triangleq (|i,j||Λi,j||𝒵i,j|)+\displaystyle\left(|\mathcal{H}_{i,j}|-|\Lambda_{i,j}|-|\mathcal{Z}_{i,j}|\right)^{+}
=\displaystyle= (K12kl12kr)+,or\displaystyle\left(\frac{K-1}{2}-\left\lceil\frac{k^{l}-1}{2}\right\rceil-k^{r}\right)^{+},\text{or}
=\displaystyle= (K12kl12kr)+.\displaystyle\left(\frac{K-1}{2}-\left\lfloor\frac{k^{l}-1}{2}\right\rfloor-k^{r}\right)^{+}. (19)

When ni,jn_{i,j}’s are obtained, the sets Δi,j\Delta_{i,j} are constructed as in CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)}. Overall, the delivery phase of CL(2,1,Nh,Nl,Nr)\mathrm{CL(2,1,N_{h},N_{l},N_{r})} consists of five steps. We will use the following example to illustrate these steps.
Example 2. In this example, we use the same setup as in Example 1; however, now we assume that files A,B,C,DA,B,C,D are high-level files, EE and FF are low-level files, while file GG is not cached at all. We also assume that users 1,2,3,4,5,6,71,2,3,4,5,6,7 request files A,B,C,D,E,F,GA,B,C,D,E,F,G respectively. Hence, 𝒦h={1,2,3,4}\mathcal{K}^{h}=\left\{1,2,3,4\right\}, 𝒦l={5,6}\mathcal{K}^{l}=\left\{5,6\right\} and 𝒦r={7}\mathcal{K}^{r}=\left\{7\right\}.

High-level users Multicast message
1 2 3 A23B13C12A_{23}\oplus B_{13}\oplus C_{12}
1 2 4 A24B14D12A_{24}\oplus B_{14}\oplus D_{12}
1 2 A27B17A_{27}\oplus B_{17}
1 3 4 A34C14D13A_{34}\oplus C_{14}\oplus D_{13}
1 3 A37C17A_{37}\oplus C_{17}
1 4 A47D17A_{47}\oplus D_{17}
2 3 4 B34C24D23B_{34}\oplus C_{24}\oplus D_{23}
2 3 B37C27B_{37}\oplus C_{27}
2 4 B47D27B_{47}\oplus D_{27}
3 4 C47D37C_{47}\oplus D_{37}
Low-level users Multicast message
5 6 E16F15E_{16}\oplus F_{15}
5 6 E26F56E_{26}\oplus F_{56}
5 6 E67F57E_{67}\oplus F_{57}
TABLE V: Multicast messages in the first two steps of the delivery phase of CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)} scheme in Example 2.

Step 1) Intra-high-level delivery: The first step of the delivery phase is identical to that in (2) for t=2t=2. The only difference is that, now we consider only the users in 𝒦h𝒦r\mathcal{K}^{h}\cup\mathcal{K}^{r}, instead of [K]\left[K\right], and a multicast message is not transmitted for subsets of 𝒦r\mathcal{K}^{r}, i.e., 𝒮𝒦r\mathcal{S}\subseteq\mathcal{K}^{r}.
Step 2) Intra-low-level delivery: The second step also follows (2) with t=1t=1, targeting low-level users in 𝒦l\mathcal{K}^{l}. In Example 2, the messages delivered by the server corresponding to the first two steps are listed in Table V.
Step 3) Cross-level delivery: We construct sets Λi,j\Lambda_{i,j} as illustrated in Table IV for Example 2. One can easily observe that σi,j=0\sigma_{i,j}=0, i𝒦h\forall i\in\mathcal{K}^{h} and j𝒦l\forall j\in\mathcal{K}^{l}, which implies that Πi,j=𝒵i,j\Pi_{i,j}=\mathcal{Z}_{i,j}. Then, we evaluate the value of ni,jn_{i,j} for all i𝒦hi\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}. Subsequently, we construct the sets Δi,j\Delta_{i,j} and i,j\mathcal{F}_{i,j} for the evaluated values of ni,jn_{i,j}. Eventually, sets i,j\mathcal{F}_{i,j} and i,j\mathcal{H}_{i,j} are used to construct the set of multicast messages \mathcal{B} similarly to the case 𝒦r=\mathcal{K}^{r}=\emptyset. We again refer the reader to Appendix B for further details. Sets Δi,j\Delta_{i,j}, i,j\mathcal{F}_{i,j}, and all the multicasted messages in the third step for Example 2 are given in Table IV.
Step 4) Intra-high-level delivery with multicasting gain of two: In this step, the server multicasts the messages

=\displaystyle\mathcal{B}= {A25B15,C45D35,A26B16,D36C46\displaystyle\left\{A_{25}\oplus B_{15},C_{45}\oplus D_{35},A_{26}\oplus B_{16},D_{36}\oplus C_{46}\right. (20)
A36C16,B46D26},\displaystyle\left.A_{36}\oplus C_{16},B_{46}\oplus D_{26}\right\},

each of which is destined for two high-level users.
Step 5) Unicasting: The remaining sub-files are sent as unicast messages in the last step. The sub-files that are sent in this step can be categorized under three groups: the first group consists of the sub-files that are requested by zero-level users, the second group consists of the sub-files that are requested by low-level users and cached by zero-level users, finally the third group is formed by the sub-files in set i𝒦h,j𝒦l(𝒵i,jΠi,j)\cup_{i\in\mathcal{K}^{h},j\in\mathcal{K}^{l}}(\mathcal{Z}_{i,j}\setminus\Pi_{i,j}).
Let NT(𝐤)N_{T}(\mathbf{k}) be the number of transmitted messages (unicast and multicast) for a given demand realization 𝐤[kh,kl,kr]\mathbf{k}\triangleq[k^{h},k^{l},k^{r}], i.e.,

NT(𝐤)=\displaystyle N_{T}(\mathbf{k})= (kh+kr3)(kr3)Step 1+K12(kl2)Step 2+K12khklStep 3\displaystyle\underbrace{{k^{h}+k^{r}\choose 3}-{k^{r}\choose 3}}_{\text{Step 1}}+\underbrace{\frac{K-1}{2}{k^{l}\choose 2}}_{\text{Step 2}}+\underbrace{\frac{K-1}{2}k^{h}k^{l}}_{\text{Step 3}}
+i,jni,j2Step 4+klkrK12+i,jσi,j.Step 5\displaystyle+\underbrace{\left\lceil\frac{\sum_{i,j}n_{i,j}}{2}\right\rceil}_{\text{Step 4}}+\underbrace{k^{l}k^{r}\frac{K-1}{2}+\sum_{i,j}\sigma_{i,j}.}_{\text{Step 5}} (21)

Then, the normalized delivery rate for CL(2,1,Nh,Nl,0)\mathrm{CL(2,1,N_{h},N_{l},0)} is given by R(𝐤)=NT(𝐤)(K2)+krR(\mathbf{k})=\frac{N_{T}(\mathbf{k})}{{K\choose 2}}+k^{r}. The average delivery rate can be written as follows

R¯(Nh,Nl,Nr)𝐤R(𝐤)P(𝐤|Nh,Nl,Nr),\bar{R}(N_{h},N_{l},N_{r})\triangleq\sum_{\mathbf{k}}R(\mathbf{k})P(\mathbf{k}|N_{h},N_{l},N_{r}), (22)

where 𝐤[kh,kl,kr]\mathbf{k}\triangleq[k^{h},k^{l},k^{r}] denotes the demand realization. Hence, the placement strategy can be written as an optimization problem;

P1:min\displaystyle\text{\bf P1:}\;\;\;\min R¯(Nh,Nl,Nr)\displaystyle\begin{aligned} \bar{R}(N_{h},N_{l},N_{r})\end{aligned}
subject to: (15)\displaystyle(\ref{place210}) (23)

To solve the optimization problem P1, we first need to compute the required delivery rate R(𝐤)R(\mathbf{k}) for each possible demand realization 𝐤\mathbf{k}, which scales with 𝒪(K2)\mathcal{O}(K^{2}). The cache memory constraint in (15) can be rewritten in the following way;

NrmaxNrNrminN^{max}_{r}\geq N_{r}\geq N^{min}_{r} (24)

where NrmaxN^{max}_{r} and NrminN^{min}_{r} are defined as the number of files that are not cached in order to cache all the remaining files at level 22 and 11, respectively. Hence, solving the optimization problem P1 is equivalent to searching for NrN_{r}, that gives the minimum R¯(Nh,Nl,Nr)\bar{R}(N_{h},N_{l},N_{r}). Hence, for each value of NrN_{r}, P(𝐤|Nh,Nl,Nr)P(\mathbf{k}|N_{h},N_{l},N_{r}) must be calculated for each possible realization of 𝐤\mathbf{k}, which scales with 𝒪(K2)\mathcal{O}(K^{2}). Hence, the optimization of the placement phase has an overall complexity of 𝒪(NK2+K2)\mathcal{O}(NK^{2}+K^{2}).

IV Extension to CL(th,tl=1,Nh,Nl,Nr)\mathrm{CL(t_{h},t_{l}=1,N_{h},N_{l},N_{r})}

In this section, we extend our analysis to the more general CLCD scheme where tht_{h} can take any integer value, although we still fix th=1t_{h}=1. We emphasize here that when th=2t_{h}=2, it is possible to establish a link between the process of constructing multicast messages, particularly forming of the pair of sub-files, and the concept of matchings from graph theory. However, this correspondence does not generalize with th=2t_{h}=2, we particularly focus on a multicasting gain of two, whereas in this section, our aim is provide a more general perspective on CLCD and show how the delivery phase of the proposed scheme can be analyzed as an optimization problem.
The placement phase of the CL(th,1,Nh,Nl,Nr)\mathrm{CL(t_{h},1,N_{h},N_{l},N_{r})} scheme is similar to that of CL(2,1,Nh,Nl,Nr)\mathrm{CL(2,1,N_{h},N_{l},N_{r})}. Each file is divided into (Kth){K\choose t_{h}} sub-files, and the high-level files are cached at level tht_{h}; that is each user caches (K1th1){K-1\choose t_{h}-1} sub-files of each high-level file. On the other hand, for the low-level files, the sub-files are grouped into KK disjoint and equal-size subsets and each user caches the sub-files in a different subset which corresponds to caching at level 1.
Now, to analyze the delivery phase with cross-level coded delivery, let 𝒫(𝒦)\mathcal{P}(\mathcal{K}) be the power set of 𝒦\mathcal{K}, and 𝕊𝒫(𝒦)\mathbb{S}\in\mathcal{P}(\mathcal{K}) be the set of sets 𝒮\mathcal{S} with cardinality t+1t+1, i.e., |𝕊|=(Kt+1)|\mathbb{S}|={K\choose t+1}, and 𝕊~𝕊\tilde{\mathbb{S}}\subseteq\mathbb{S} defined as 𝕊~={𝒮𝕊:𝒦h𝒮0}\tilde{\mathbb{S}}=\left\{\mathcal{S}\in\mathbb{S}:\mathcal{K}^{h}\cap\mathcal{S}\neq 0\right\}. Recall that, with the conventional coded delivery scheme, the low-level and high-level users are served separately. Hence, for the delivery of the high-level files, for each set 𝒮𝕊~\mathcal{S}\subseteq\tilde{\mathbb{S}} the server transmits

i𝒦h𝒮Wdi,𝒮{i}\oplus_{i\in\mathcal{K}^{h}\cap\mathcal{S}}W_{d_{i},\mathcal{S}\setminus\left\{i\right\}} (25)

in order to deliver all the sub-files requested by the high-level users. However, although the high-level files are cached at level tt, a message destined for high-level users has a multicasting gain of μ𝒮=|𝒦h𝒮|\mu_{\mathcal{S}}=|\mathcal{K}^{h}\cap\mathcal{S}|, instead of t+1t+1. In particular, when μ𝒮=1\mu_{\mathcal{S}}=1 the corresponding message is a unicast message.
We call a multicast message in the form of (25) as decomposable if in the corresponding set 𝒮\mathcal{S}, there is at least one high-level and one low-level user. The server can utilize those high-level sub-files for cross-level delivery. Let 𝕊d\mathbb{S}_{d} be the set of sets 𝒮\mathcal{S} that correspond to a decomposable multicast message. In the CL(th,1,Nh,Nl,Nr)\mathrm{CL(t_{h},1,N_{h},N_{l},N_{r})} scheme, for each demand realization 𝐤\mathbf{k}, we look for a set 𝕊cl𝕊d\mathbb{S}_{cl}\subseteq\mathbb{S}_{d} to use for pairing sub-files of high-level users and sub-files of low-level users. We introduce variable x𝒮{1,0}x_{\mathcal{S}}\in\left\{1,0\right\}, where x𝒮=0x_{\mathcal{S}}=0 if the conventional coded delivery scheme, as given in (25), is used to deliver the sub-files corresponding to set 𝒮\mathcal{S}, while x𝒮=1x_{\mathcal{S}}=1 if the corresponding multicast message is decomposed and the sub-files in the message are delivered by cross-level coded delivery. We further introduce variables x(𝒮,i,j)x_{(\mathcal{S},i,j)}, for iKh𝒮i\in K^{h}\cap\mathcal{S} and jKl𝒮j\in K^{l}\cap\mathcal{S}, where x(𝒮,i,j)=1x_{(\mathcal{S},i,j)}=1, if sub-file Wdi,𝒮{i}W_{d_{i},\mathcal{S}\setminus\left\{i\right\}} is paired with a sub-file Wdj,{i,}W_{d_{j},\left\{i,***\right\}} that is requested by low-level user jj and cached by high-level user ii. Then, the server multicasts Wdi,S{i}Wdj,{i,}W_{d_{i},S\setminus\left\{i\right\}}\oplus W_{d_{j},\left\{i,***\right\}}. Hence, for each set 𝒮\mathcal{S} there are μ𝒮×|𝒦l𝒮|\mu_{\mathcal{S}}\times|\mathcal{K}^{l}\cap\mathcal{S}| variables in the form x(𝒮,i,j)x_{(\mathcal{S},i,j)}.
To illustrate the multicast message decomposition process, consider the CL(th=3,1,Nh,Nl,Nr)\mathrm{CL(t_{h}=3,1,N_{h},N_{l},N_{r})} scheme, and assume that there are K=7K=7 users with a demand realization 𝐤\mathbf{k}, 𝒦h={1,2,3,4}\mathcal{K}^{h}=\left\{1,2,3,4\right\} and 𝒦l={5,6,7}\mathcal{K}^{l}=\left\{5,6,7\right\}. Consider a particular set 𝒮={1,2,6,7}\mathcal{S}=\left\{1,2,6,7\right\}. According to (25), the server multicasts Wd1,{2,6,7}Wd2,{1,6,7}W_{d_{1},\left\{2,6,7\right\}}\oplus W_{d_{2},\left\{1,6,7\right\}} for high-level users 1 and 2. With a multicast message decomposition specified by x(𝒮,1,6)=1x_{(\mathcal{S},1,6)}=1, x(𝒮,1,7)=0x_{(\mathcal{S},1,7)}=0, x(𝒮,2,6)=0x_{(\mathcal{S},2,6)}=0, x(𝒮,2,7)=1x_{(\mathcal{S},2,7)}=1, and x𝒮=1x_{\mathcal{S}}=1, the server multicasts the messages Wd6,{1,}Wd1,{2,6,7}W_{d_{6},\left\{1,***\right\}}\oplus W_{d_{1},\left\{2,6,7\right\}} and Wd7,{2,}Wd2,{1,6,7}W_{d_{7},\left\{2,***\right\}}\oplus W_{d_{2},\left\{1,6,7\right\}} in the cross-level delivery phase. We remark that, if the conventional coded delivery scheme is used, sub-files Wd6,{1,}W_{d_{6},\left\{1,***\right\}} and Wd7,{2,}W_{d_{7},\left\{2,***\right\}} are sent as unicast messages. Hence, in total three messages would be transmitted with the conventional coded delivery scheme, i.e., Wd1,{2,6,7}Wd2,{1,6,7}W_{d_{1},\left\{2,6,7\right\}}\oplus W_{d_{2},\left\{1,6,7\right\}}, Wd6,{1,}W_{d_{6},\left\{1,***\right\}}, and Wd7,{2,}W_{d_{7},\left\{2,***\right\}}; however, via CLCD this can be reduced to two, i.e., Wd6,{1,}Wd1,{2,6,7}W_{d_{6},\left\{1,***\right\}}\oplus W_{d_{1},\left\{2,6,7\right\}} and Wd7,{2,}Wd2,{1,6,7}W_{d_{7},\left\{2,***\right\}}\oplus W_{d_{2},\left\{1,6,7\right\}}. One can observe that if a multicast message is decomposed and used by the CLCD scheme, then the number of multicast messages is reduced by one.
Note that variables x(𝒮,i,j)x_{(\mathcal{S},i,j)} and x(𝒮,i,k)x_{(\mathcal{S},i,k)} cannot be 1 at the same time, since the sub-file Wdi,𝒮{i}W_{d_{i},\mathcal{S}\setminus\left\{i\right\}} can be paired with only one low-level sub-file. Hence, for the message decomposition we have the following constraint

j𝒦l𝒮x(𝒮,i,j)1,i𝒦h𝒮 and 𝒮𝕊d.\sum_{j\in\mathcal{K}^{l}\cap\mathcal{S}}x_{(\mathcal{S},i,j)}\leq 1,~~\forall i\in\mathcal{K}^{h}\cap\mathcal{S}\text{ and }\forall\mathcal{S}\in\mathbb{S}_{d}. (26)

Another constraint, from the construction, is that each high-level user ii contains (K1t1)/t{K-1\choose t-1}/t sub-files that are missing at low-level user jj; thus, the total number of sub-file pairings between a low-level user jj and a high-level user ii is at most (K1t1)/t{K-1\choose t-1}/t i.e.,

S𝕊dx(𝒮,i,j)(K1t1)ti𝒦h,j𝒦l.\sum_{\mathcal{}S\in\mathbb{S}_{d}}x_{(\mathcal{S},i,j)}\leq\frac{{K-1\choose t-1}}{t}~~\forall i\in\mathcal{K}^{h},j\in\mathcal{K}^{l}. (27)

Finally, if xS=1x_{S}=1, then all the corresponding sub-files must be sent via CLCD, i.e.,

i𝒦h𝒮,j𝒦l𝒮x(𝒮,i,j)=μ𝒮xS,𝒮𝕊d.\sum_{i\in\mathcal{K}^{h}\cap\mathcal{S},j\in\mathcal{K}^{l}\cap\mathcal{S}}x_{(\mathcal{S},i,j)}=\mu_{\mathcal{S}}x_{S},~~\forall\mathcal{S}\in\mathbb{S}_{d}. (28)
1 for 𝒮𝕊~𝕊cl\mathcal{S}\in\tilde{\mathbb{S}}\setminus\mathbb{S}_{cl} do
2  multicast i𝒦h𝒮Wdi,𝒮{i}\oplus_{i\in\mathcal{K}^{h}\cap\mathcal{S}}W_{d_{i},\mathcal{S}\setminus\left\{i\right\}};
3 
4 end for
5for 𝒮𝕊cl\mathcal{S}\in\mathbb{S}_{cl} do
6  for i𝒦h𝒮i\in\mathcal{K}^{h}\cap\mathcal{S} do
7     for j𝒦l𝒮j\in\mathcal{K}^{l}\cap\mathcal{S} do
8        if x(𝒮,i,j)=1x_{(\mathcal{S},i,j)}=1 then
9           multicast Wdi,𝒮{i}Wdj,{i,}W_{d_{i},\mathcal{S}\setminus\left\{i\right\}}\oplus W_{d_{j},\left\{i,***\right\}};
10          
11        end if
12       
13     end for
14    
15  end for
16 
17 end for
18for j,k𝒦lj,k\in\mathcal{K}^{l} do
19  send Wdk,{j,}Wdj,{k,}W_{d_{k},\left\{j,***\right\}}\oplus W_{d_{j},\left\{k,***\right\}};
20 
21 end for
22Remaining sub-packets are send via unicast transmission;
Algorithm 2 Overall Delivery phase of CL(t1,1,Nh,Nl,Nr)\mathrm{CL(t_{1},1,N_{h},N_{l},N_{r})}

For the given values of the variables x(𝒮,i,j)x_{(\mathcal{S},i,j)} and x𝒮x_{\mathcal{S}}, the delivery phase of CL(t1,1,Nh,Nl,Nr)\mathrm{CL(t_{1},1,N_{h},N_{l},N_{r})} is given in Algorithm 2. According to Algorithm 2, the number of transmitted messages, NT(𝐤)N_{T}(\mathbf{k}), for a given demand realization 𝐤=[kh,kl,kr]\mathbf{k}=\left[k^{h},k^{l},k^{r}\right] is given by

NT(𝐤)=\displaystyle N_{T}(\mathbf{k})= (Kt+1)(kr+klt+1)𝒮𝕊dx𝒮\displaystyle{K\choose t+1}-{k^{r}+k^{l}\choose t+1}-\sum_{\mathcal{S}\in\mathbb{S}_{d}}x_{\mathcal{S}} (29)
+(K1t1)tkhkl+(K1t1)tkrkl+(kl2)(K1t1)t.\displaystyle+\frac{{K-1\choose t-1}}{t}k^{h}k^{l}+\frac{{K-1\choose t-1}}{t}k^{r}k^{l}+{k^{l}\choose 2}\frac{{K-1\choose t-1}}{t}. (30)

Hence, the main objective of CL(th,tl=1,Nh,Nl,Nr)\mathrm{CL(t_{h},t_{l}=1,N_{h},N_{l},N_{r})} scheme is to maximize 𝒮𝕊dx𝒮\sum_{\mathcal{S}\in\mathbb{S}_{d}}x_{\mathcal{S}} in order to minimize the delivery rate for each possible demand realization. Equivalently, the minimum delivery rate problem can be converted to the following optimization problem:

P2:max\displaystyle\text{\bf P2:}\;\;\;\max 𝒮𝕊dx𝒮\displaystyle\begin{aligned} \sum_{\mathcal{S}\in\mathbb{S}_{d}}x_{\mathcal{S}}\end{aligned}
subject to: j𝒦l𝒮x(𝒮,i,j)\displaystyle\text{subject to: }\sum_{j\in\mathcal{K}^{l}\cap\mathcal{S}}x_{(\mathcal{S},i,j)} 1,𝒮𝕊d,\displaystyle\leq 1,~~~\forall\mathcal{S}\in\mathbb{S}_{d}, (31)
𝒮𝕊dx(𝒮,i,j)\displaystyle\sum_{\mathcal{S}\in\mathbb{S}_{d}}x_{(\mathcal{S},i,j)} (K1t1)/t,i𝒦h,j𝒦l,\displaystyle\leq{K-1\choose t-1}/t,~~~\forall i\in\mathcal{K}^{h},j\in\mathcal{K}^{l}, (32)
i𝒦h𝒮,j𝒦l𝒮x(𝒮,i,j)\displaystyle\sum_{i\in\mathcal{K}^{h}\cap\mathcal{S},\forall j\in\mathcal{K}^{l}\cap\mathcal{S}}x_{(\mathcal{S},i,j)} =μ𝒮x𝒮,𝒮𝕊d.\displaystyle=\mu_{\mathcal{S}}x_{\mathcal{S}},~~~\forall\mathcal{S}\in\mathbb{S}_{d}. (33)

By solving P2 for each demand realization 𝐤\mathbf{k}, we can construct the optimal coded delivery scheme for CL(th,1,Nh,Nl,Nr)\mathrm{CL(t_{h},1,N_{h},N_{l},N_{r})}. We remark that P2 is a binary integer programming problem, and unlike CL(2,1,Nh,Nl,Nr)\mathrm{CL(2,1,N_{h},N_{l},N_{r})}, the optimization of the delivery phase cannot be solved in polynomial time. Nevertheless, complexity of P2 does not depend on the number of files, NN, but depends on the number of users, KK; hence, for moderate number of users the CLCD scheme can be optimized even for a very large file library. Once the required delivery rate for each possible demand realization is computed, optimal placement strategy; that is, the number of files not to cache, can be found following the same procedure in Section III. We want to remark that instead of solving P2, it is also possible to design a greedy algorithm to construct the multicast messages.
In Section VI, we will study the most general scheme CL(th,tl,Nh,Nl,Nr)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},N_{r})} and show that the delivery phase can be still analyzed as an optimization problem with a reduced computational complexity. But before extending our analysis, we would like to present the numerical results comparing the CLCD schemes presented so far with the alternative approaches in the literature.

Refer to caption
(a) γ=0.7\gamma=0.7.
Refer to caption
(b) γ=0.75\gamma=0.75.
Refer to caption
(c) γ=0.8\gamma=0.8.
Refer to caption
(d) γ=0.85\gamma=0.85.
Figure 1: Average delivery rate vs. the normalized cache size MM for different Zipf parameter (γ\gamma) values.
Refer to caption
(a) γ=0.75\gamma=0.75.
Refer to caption
(b) γ=0.85\gamma=0.85.
Figure 2: Average delivery rate vs. MK/NMK/N for different Zipf parameter (γ\gamma) values.

V Numerical Results

In this section, we compare the performance of the proposed CLCD scheme with that of the conventional centralized coded delivery scheme with two different content placement strategies. The first content placement strategy is called naive memory sharing, introduced in [1], in which all the files are cached at the same level according to a single parameter t=MK/Nt=MK/N. Note that, when parameter tt is not an integer, then the files in the library are divided into two disjoint fragments identically, and these fragments are cached according to parameters t\left\lfloor t\right\rfloor and t\left\lceil t\right\rceil.
The second benchmark strategy is the general memory sharing scheme proposed in [14], which is shown to outperform other coded delivery techniques under non-uniform demand distributions. In this scheme, each file is divided into K+1K+1 disjoint fragments, and the kkth fragment, 1<k1<k, is cached according to parameter t=k1t=k-1, while the first fragment is not cached. Thus, the overall system can be considered as a combination of K+1K+1 sequential coded delivery phases with different multicasting gains, i.e., the kkth delivery phase is executed with multicasting gain of k+1k+1. The size of each fragment of each file can be obtained via solving a linear optimization problem [14].
In general, it has been observed that the popularity of video files for on-demand streaming applications approximately follows a Zipf distribution with parameter 1>γ>0.651>\gamma>0.65 [16], [17]. In our simulations, we consider γ=0.7,0.75,0.8,0.85\gamma=0.7,0.75,0.8,0.85. We note that γ\gamma, represents the skewness of the distribution of video popularity, where smaller γ\gamma values indicates a more uniform popularity distribution. In realistic scenarios, number of files in the video library is considered to be on the order of 10410^{4}. However, due to the complexity of the general memory sharing scheme, we will consider N=1000N=1000 and K=7K=7 in our initial simulations. We let the cache size MM vary from 140 to 280, which corresponds to 1<t<21<t<2. We are particularly interested in this regime as all three strategies considered in this paper converge to the same performance for larger tt values. The delivery rates achieved by the naive memory sharing, the general memory sharing, and the CLCD schemes are illustrated in Figure 1. We note that, for each value of the Zipf parameter γ\gamma we calculate the achievable delivery rate of the scheme CL(th,1,Nh,Nl,Nr)\mathrm{CL(t_{h},1,N_{h},N_{l},N_{r})}, for th=2,3,,6t_{h}=2,3,\ldots,6, and take the minimum of them.
We observe that when the number of files NN is large, the general memory sharing algorithm tends to divide the library into two groups according popularities, such that the most popular files are cached according to the naive memory sharing scheme while the less popular files are not cached at all. One can observe from Fig. 1 that when γ=0.7\gamma=0.7 or γ=0.75\gamma=0.75 the optimal memory sharing scheme performs very similarly to the naive memory sharing scheme, while the proposed CLCD scheme can provide a significant reduction in the achievable delivery rate. In addition, we observe that CLCD outperforms both the naiive and general memory sharing schemes at all γ\gamma values considered here.
We also perform simulations to illustrate how the number of files NN affects the performance of the CLCD scheme when t=MK/Nt=MK/N is fixed, i.e., the cache memory size scales with the number of files in the library. In the naive memory sharing scheme, all the files are cached at level t=MK/Nt=MK/N, thus the performance of this scheme does not change with the size of the file library as long as M/NM/N is fixed. In the simulations, we consider N=103,104,5×104N=10^{3},10^{4},5\times 10^{4}, and 2×1052\times 10^{5}. Due to its complexity it is not possible to run the general memory sharing scheme for large libraries, thus we compare CLCD scheme only with the naive memory sharing scheme. We observe in Fig. 2 that the CLCD scheme performs better for larger file libraries. In particular, when γ=0.85\gamma=0.85 the performance gap between the CLCD scheme and the naive memory sharing scheme for N=2×105N=2\times 10^{5} is almost two times of the performance gap for N=103N=10^{3}.

VI General CL(th,tl,Nh,Nl,Nr)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},N_{r})} Scheme

Having shown the superiority of the proposed CL(th,1,Nh,Nl,Nr)\mathrm{CL(t_{h},1,N_{h},N_{l},N_{r})} scheme to its alternatives in the literature, in this section, we present the most generic form of the CLCD scheme. In the previously introduced versions with tl=1t_{l}=1, the placement phase is designed to prevent any miss-alignment between the high-level and low-level sub-file sizes. Hence, the fundamental modification in the CL(th,tl,Nh,Nl,Nr)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},N_{r})} scheme with respect to the previous versions is that the alignment of the sub-file sizes and the construction of the multicast messages are done jointly during the deliver phase. In this section, for sake of clarity, we start our presentation by setting Nr=0N_{r}=0. This constraint will later be removed. The general structure of the CL(th,tl,Nh,Nl,0)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},0)} scheme is given in Algorithm 3.

Input : 𝒦h\mathcal{K}^{h}, 𝒦l\mathcal{K}^{l}
1 for all 𝒮𝒦\mathcal{S}\subseteq\mathcal{K} : |𝒮|=th+1|\mathcal{S}|=t_{h}+1 do
2  if  𝒮𝒦h\mathcal{S}\subseteq\mathcal{K}^{h} then
3     serve high-level users with multicasting gain th+1t_{h}+1
4  end if
5 if  𝒮𝒦h\mathcal{S}\nsubseteq\mathcal{K}^{h} and 𝒮𝒦l\mathcal{S}\nsubseteq\mathcal{K}^{l} then
6     for all 𝒮^𝒮\hat{\mathcal{S}}\subseteq\mathcal{S} : |𝒮^|=tl+1|\hat{\mathcal{S}}|=t_{l}+1 and 𝒮^𝒦l\hat{\mathcal{S}}\nsubseteq\mathcal{K}^{l} do
7        use CLCD with multicasting gain of tl+1t_{l}+1
8     end for
9    
10  end if
11 
12 end for
13for all 𝒮𝒦l\mathcal{S}\subseteq\mathcal{K}^{l} : |𝒮|=tl+1|\mathcal{S}|=t_{l}+1 do
14  serve low-level users with multicasting gain of tl+1t_{l}+1
15 end for
Algorithm 3 CL(th,tl,Nh,Nl,Nr=0)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},N_{r}=0)} scheme

Here, the main design issue is how to overlap the bits of high-level and low-level files that are delivered in the CLCD phase. The key point here is that, for a subset 𝒮\mathcal{S} of different types of users, i.e., 𝒮𝒦h\mathcal{S}\nsubseteq\mathcal{K}^{h} and 𝒮𝒦l\mathcal{S}\nsubseteq\mathcal{K}^{l} with |𝒮|=th+1|\mathcal{S}|=t_{h}+1, any high level user i𝒮i\in\mathcal{S} appears in exactly (thtl)t_{h}\choose t_{l} of the subsets 𝒮^\hat{\mathcal{S}} of 𝒮\mathcal{S} with |𝒮^|=tl+1|\hat{\mathcal{S}}|=t_{l}+1. Hence, the requested sub-file Wdi,𝒮{i}W_{d_{i},\mathcal{S}\setminus\{i\}} should be divided into (thtl)t_{h}\choose t_{l} smaller sub-files. Similarly, from the perspective of low-level users, each 𝒮^\hat{\mathcal{S}} appears as a subset of exactly (K(tl+1)thtl)K-(t_{l}+1)\choose t_{h}-t_{l} different 𝒮\mathcal{S} sets, thus the sub-file requested by low-level user jj, Wdj,𝒮^{j}W_{d_{j},\hat{\mathcal{S}}\setminus\{j\}}, should be divided into (K(tl+1)thtl)K-(t_{l}+1)\choose t_{h}-t_{l} smaller sub-files. Let FclhF^{h}_{cl} and FcllF^{l}_{cl} be the sizes of the sub-files used for the aforementioned high-level and low-level sub-files, respectively, in the cross-delivery phase, i.e.,

Fclh=((Kth)(thtl))1,F^{h}_{cl}=\left({K\choose t_{h}}{t_{h}\choose t_{l}}\right)^{-1}, (34)

and

Fcll=((Ktl)(K(tl+1)thtl))1.F^{l}_{cl}=\left({K\choose t_{l}}{K-(t_{l}+1)\choose t_{h}-t_{l}}\right)^{-1}. (35)

By expanding (34) and (35) one can observe that

Fcll=Fclh×KtlKth,F^{l}_{cl}=F^{h}_{cl}\times\frac{K-t_{l}}{K-t_{h}}, (36)

which implies that it is possible to overlap the high-level files with the low-level files in the cross-delivery step as long as there is at least one low-level user in 𝒮^\hat{\mathcal{S}}. Accordingly, the overall rate, for given kh,klk^{h},k^{l} can be written as

R(kh,kl)=\displaystyle R(k^{h},k^{l})= (khth+1)Fh+((Ktl+1)(khtl+1))Fl\displaystyle{k^{h}\choose t_{h}+1}F_{h}+\left({K\choose t_{l}+1}-{k^{h}\choose t_{l}+1}\right)F_{l} (37)
+(khtl+1)((K(tl+1)thtl)(kh(tl+1)thtl))Fclh.Rno: non-overlapped bits of high level files\displaystyle+\underbrace{{k^{h}\choose t_{l}+1}\left({K-(t_{l}+1)\choose t_{h}-t_{l}}-{k^{h}-(t_{l}+1)\choose t_{h}-t_{l}}\right)F^{h}_{cl}.}_{R_{no}:\text{ non-overlapped bits of high level files}}

Here, the CLCD scheme has two objectives: one is to achieve a multicasting gain of at least tl+1t_{l}+1 in the delivery phase, and the other is to overlap the delivery of the high-level and low-level files as much as possible. Hence, we want to minimize the term RnoR_{no} in (37). This can be achieved by dividing the high-level files in a non-uniform manner. To clarify the non-uniform file division, consider the case with th=4t_{h}=4, tl=3t_{l}=3, and assume that there are K=7K=7 users with a demand realization 𝐤=[4,3,0]\mathbf{k}=[4,3,0], where 𝒦h={1,2,3,4}\mathcal{K}^{h}=\left\{1,2,3,4\right\} and 𝒦l={5,6,7}\mathcal{K}^{l}=\left\{5,6,7\right\}.
According to the proposed CLCD design, for set 𝒮={1,2,3,4,5}\mathcal{S}=\left\{1,2,3,4,5\right\}, delivery of the requested sub-files are realized over 5 steps, with a multicasting gain of tl+1=4t_{l}+1=4, corresponding to the subsets 𝒮^1={1,2,3,4}\hat{\mathcal{S}}_{1}=\left\{1,2,3,4\right\}, 𝒮^2={1,2,3,5}\hat{\mathcal{S}}_{2}=\left\{1,2,3,5\right\}, 𝒮^3={1,2,4,5}\hat{\mathcal{S}}_{3}=\left\{1,2,4,5\right\}, 𝒮^4={1,3,4,5}\hat{\mathcal{S}}_{4}=\left\{1,3,4,5\right\}, 𝒮^5={2,3,4,5}\hat{\mathcal{S}}_{5}=\left\{2,3,4,5\right\}. We recall that since user 1 receives its required file Wd1,{2,3,4,5}W_{d_{1},\left\{2,3,4,5\right\}}, part by part in four of these steps, the corresponding sub-file is further divided into 44 smaller sub-files. Let Wd1,{2,3,4,5},𝒮^jW_{d_{1},\left\{2,3,4,5\right\},\hat{\mathcal{S}}_{j}} denote the one delivered in the step corresponding to subset 𝒮^j\hat{\mathcal{S}}_{j}. Subset 𝒮^1={1,2,3,4}\hat{\mathcal{S}}_{1}=\left\{1,2,3,4\right\} consists of only high-level users. We also recall that, as given in (36), the low-level sub-files are larger than the high-level ones. Hence, to reduce the amount of non overlapping bits RnoR_{no}, one can reduce the size of Wd1,{2,3,4,5},𝒮^1W_{d_{1},\left\{2,3,4,5\right\},\hat{\mathcal{S}}_{1}} and, accordingly, increase the size of Wd1,{2,3,4,5},𝒮^2W_{d_{1},\left\{2,3,4,5\right\},\hat{\mathcal{S}}_{2}}, Wd1,{2,3,4,5},𝒮^3W_{d_{1},\left\{2,3,4,5\right\},\hat{\mathcal{S}}_{3}},Wd1,{2,3,4,5},𝒮^4W_{d_{1},\left\{2,3,4,5\right\},\hat{\mathcal{S}}_{4}} until they match with that of FcllF^{l}_{cl}.
The main question arising from this observation is how to adjust the size of the high-level sub-files assigned to each 𝒮^\hat{\mathcal{S}} so that the high-level and low-level sub-files overlap as much as possible. Let us focus on a particular subset 𝒮𝒦h\mathcal{S}\nsubseteq\mathcal{K}^{h}, 𝒮𝒦l\mathcal{S}\nsubseteq\mathcal{K}^{l} and a particular high-level user i𝒮i\in\mathcal{S}. Let the number of subsets 𝒮^:i𝒮^𝒦h\hat{\mathcal{S}}:i\in\hat{\mathcal{S}}\subseteq\mathcal{K}^{h}, be denoted by nhi(𝒮)n^{i}_{h}(\mathcal{S}), and the number of subsets 𝒮^:i𝒮^𝒦h\hat{\mathcal{S}}:i\in\hat{\mathcal{S}}\nsubseteq\mathcal{K}^{h} be denoted by ncli(𝒮)n^{i}_{cl}(\mathcal{S}). Since we want to reduce the size of sub-files Wdi,𝒮{i},𝒮^W_{d_{i},\mathcal{S}\setminus\left\{i\right\},\hat{\mathcal{S}}}, i𝒮^𝒦hi\in\hat{\mathcal{S}}\subseteq\mathcal{K}^{h}, and increase that of sub-files Wdi,𝒮{i},𝒮^W_{d_{i},\mathcal{S}\setminus\left\{i\right\},\hat{\mathcal{S}}}, i𝒮^𝒦hi\in\hat{\mathcal{S}}\nsubseteq\mathcal{K}^{h}, we have the following constraint based on (36):

(nhi(𝒮)αi(𝒮)ncli(𝒮)+1)Fclh=FclhKtlKth,\left(\frac{n^{i}_{h}(\mathcal{S})\alpha_{i}(\mathcal{S})}{n^{i}_{cl}(\mathcal{S})}+1\right)F^{h}_{cl}=F^{h}_{cl}\frac{K-t_{l}}{K-t_{h}}, (38)

where αi(𝒮)\alpha_{i}(\mathcal{S}) denotes the ratio of reduction in the size of the high-level sub-files. Accordingly, αi(𝒮)\alpha_{i}(\mathcal{S}) parameter can be written as

αi(𝒮)=(thtl)ncli(𝒮)(Kth)nhi(𝒮).\alpha_{i}(\mathcal{S})=\frac{(t_{h}-t_{l})n^{i}_{cl}(\mathcal{S})}{(K-t_{h})n^{i}_{h}(\mathcal{S})}. (39)

We note that, parameters ncli(𝒮)n^{i}_{cl}(\mathcal{S}), nhi(𝒮)n^{i}_{h}(\mathcal{S}) and αi(𝒮)\alpha_{i}(\mathcal{S}) are identical for all the high-level users i𝒮i\in\mathcal{S}; hence, we drop the user index for simplicity. Once the size of the high-level sub-files are adjusted, RnoR_{no} can be rewritten as follows:

Rno=𝒮𝒦:𝒮𝒦h,𝒮𝒦lnh(𝒮)min(1α(𝒮),0)Fclh.R_{no}=\sum_{\mathcal{S}\subseteq\mathcal{K}:~\mathcal{S}\cap\mathcal{K}^{h}\neq\emptyset,~\mathcal{S}\cap\mathcal{K}^{l}\neq\emptyset}n_{h}(\mathcal{S})\min(1-\alpha(\mathcal{S}),0)F^{h}_{cl}. (40)

Consequently, by inserting RnoR_{no} above into (37), one can obtain the required delivery rate for Algorithm 3.
We remark that with the CLCD scheme all the sub-files are served with a minimum multicasting gain of tl+1t_{l}+1. If Rno=0R_{no}=0, one can claim the optimality of the delivery phase, under the same placement scheme, since the low-level files cannot be served with a multicasting gain greater than tl+1t_{l}+1. On the other hand, if Rno>0R_{no}>0, then the non-overlapped bits of the high-level sub-files are delivered with a multicasting gain of tl+1t_{l}+1, although, in principle, they could be delivered with a multicasting gain of t+1t+1, where th>t>tlt_{h}>t>t_{l}; thus, when th>>tlt_{h}>>t_{l} this approach might be inefficient. Hence, the main question at this point is how to decide which 𝒮\mathcal{S} subsets with |𝒮|=th+1|\mathcal{S}|=t_{h}+1 will be used for CLCD. To this end, we introduce another parameter, which denoted by ttht_{th}, where th>tthtlt_{h}>t_{th}\geq t_{l}, such that 𝒮:|𝒮|=th+1\mathcal{S}:|\mathcal{S}|=t_{h}+1 is used for CLCD if |𝒮𝒦h|tth+1|\mathcal{S}\cap\mathcal{K}^{h}|\leq t_{th}+1, otherwise high-level users in 𝒮\mathcal{S} are served with multicasting gain of |𝒮𝒦h||\mathcal{S}\cap\mathcal{K}^{h}| as in Algorithm 3.

The CLCD scheme with ttht_{th} is given in Algorithm 4.

Input : 𝒦h\mathcal{K}^{h}, 𝒦l\mathcal{K}^{l}, ttht_{th}
1 Construct set 𝕊cl={𝒮:|𝒮𝒦h|tth+1,𝒮𝒦l}\mathbb{S}_{cl}=\left\{\mathcal{S}:|\mathcal{S}\cap\mathcal{K}^{h}|\leq t_{th}+1,~~\mathcal{S}\nsubseteq\mathcal{K}^{l}\right\};
2 Based on 𝕊cl\mathbb{S}_{cl} compute initial values of FcllF^{l}_{cl} and FclhF^{h}_{cl};
3 for all 𝒮𝕊cl\mathcal{S}\subseteq\mathbb{S}_{cl} do
4 Compute nh(𝒮)n_{h}(\mathcal{S}), nl(𝒮)n_{l}(\mathcal{S}), α(𝒮)\alpha(\mathcal{S}) to seek maximum overlapping
5 end for
6for all 𝒮𝒦\mathcal{S}\subseteq\mathcal{K} : |𝒮|=th+1|\mathcal{S}|=t_{h}+1 do
7  if  |𝒮𝒦h|>tth+1|\mathcal{S}\cap\mathcal{K}^{h}|>t_{th}+1 then
8     serve high-level users with multicasting gain |𝒮𝒦h||\mathcal{S}\cap\mathcal{K}^{h}|
9  end if
10 if  𝒮𝕊cl\mathcal{S}\subseteq\mathbb{S}_{cl} then
11     for all 𝒮^𝒮\hat{\mathcal{S}}\subseteq\mathcal{S} : |𝒮^|=tl+1|\hat{\mathcal{S}}|=t_{l}+1 and 𝒮^𝒦l\hat{\mathcal{S}}\nsubseteq\mathcal{K}^{l} do
12        use CLCD with multicasting gain tl+1t_{l}+1
13     end for
14    
15  end if
16 
17 end for
18for all 𝒮𝒦l\mathcal{S}\subseteq\mathcal{K}^{l} : |𝒮|=tl+1|\mathcal{S}|=t_{l}+1 do
19  serve low-level users with multicasting gain of tl+1t_{l}+1
20 end for
Algorithm 4 CL(th,tl,Nh,Nl,Nr=0)\mathrm{CL(t_{h},t_{l},N_{h},N_{l},N_{r}=0)} scheme with threshold ttht_{th}

The delivery rate, R(𝐤)R(\mathbf{k}), for given demand realization 𝐤\mathbf{k} with Algorithm 4 can be written as,

R(𝐤)=\displaystyle R(\mathbf{k})= 𝒮𝒦:|𝒮𝒦h|>tth+1Fh+((Ktl+1)(khtl+1))Fl\displaystyle\sum_{\mathcal{S}\subseteq\mathcal{K}:~|\mathcal{S}\cap\mathcal{K}^{h}|>t_{th}+1}F_{h}+\left({K\choose t_{l}+1}-{k^{h}\choose t_{l}+1}\right)F_{l} (41)
+𝒮𝕊clnh(𝒮)min(1α(𝒮),0)Fclh.\displaystyle+\sum_{\mathcal{S}\subseteq\mathbb{S}_{cl}}n_{h}(\mathcal{S})\min(1-\alpha(\mathcal{S}),0)F^{h}_{cl}.

The second term on the right hand side of (41) does not depend on parameter ttht_{th}; whereas the first term decreases with ttht_{th}, while the last term increases, which implies that ttht_{th} seeks a balance between the first and the last terms. Therefore, for each 𝐤\mathbf{k}, a different ttht_{th} value may minimize R(𝐤)R(\mathbf{k}). The average delivery rate is given by

R¯=𝐤P(𝐤)R(𝐤).\bar{R}=\sum_{\mathbf{k}}P(\mathbf{k})R(\mathbf{k}). (42)

In general, given tht_{h} and tlt_{l}, one should find the best ttht_{th} value for each 𝐤\mathbf{k}.
In the most generic form of the CLCD scheme we also allow Nr>0N_{r}>0. We slightly modify the delivery scheme by simply considering the zero-level users (users with uncached file requests) as low-level users for cross-level delivery and serve them with unicast transmissions at the end. Accordingly, the delivery rate is given by as

R(𝐤)=\displaystyle R(\mathbf{k})= 𝒮𝒦:|𝒮𝒦h|>tth+1Fh\displaystyle\sum_{\mathcal{S}\subseteq\mathcal{K}:~|\mathcal{S}\cap\mathcal{K}^{h}|>t_{th}+1}F_{h}
+((Ktl+1)(khtl+1)(krtl+1))Fl\displaystyle+\left({K\choose t_{l}+1}-{k^{h}\choose t_{l}+1}-{k^{r}\choose t_{l}+1}\right)F_{l} (43)
+𝒮𝕊clnh(𝒮)min(1α(𝒮),0)Fclh+kr.\displaystyle+\sum_{\mathcal{S}\subseteq\mathbb{S}_{cl}}n_{h}(\mathcal{S})\min(1-\alpha(\mathcal{S}),0)F^{h}_{cl}+k^{r}.

We note that it might be possible to further reduce the delivery rate by revisiting the sub-file size alignment strategy taking into account the zero-level users at the expense of additional complexity.

VII Conclusions

We introduced a novel centralized coded caching delivery scheme, called CLCD, for cache-aided content delivery under non-uniform demand distributions. The proposed caching scheme uses a different placement strategy for the files depending on their popularities, such that the cache memory allocated to the sub-files belonging to more popular files are larger compared to the low popular ones. The main novelty of the proposed approach is in the delivery phase, where the messages multicasted to the group of users are carefully designed to satisfy as many users as possible with minimal delivery rate while in the case where the files are cached in a non-uniform manner based on their popularities. For a certain special case of the proposed algorithm we are able to provide a closed form expression for the delivery rate. We also showed via numerical simulations that the proposed CLCD scheme can provide up to 10%10\% reduction in the average delivery rate compared to the state-of-the-art. We expect this gain to grow considerably as the number of files increases, while the state-of-the-art schemes in the literature cannot be implemented for a large file library due to their formidable complexity.

Appendix A Set partitioning

In this section, we will introduce some useful lemmas and definitions related to graph theory that will be utilized in the process of multicast message construction, particularly for pairing the sub-files. We use GG, 𝒱(G)\mathcal{V}(G) and (G)\mathcal{E}(G) to denote a graph, its set of vertices and edges, respectively. For simplicity, we enumerate the vertices, and set 𝒱(G)=[V]\mathcal{V}(G)=[V], so that VV represents the number of vertices.

Definition 1.

A graph GG is a complete graph if each pair of distinct vertices is connected by a unique edge.

Definition 2.

A matching DD of graph GG is a subgraph of GG whose edges share no vertex; that is, each vertex in matching DD has degree one.

Definition 3.

A matching is maximum when it has the largest possible size.

Definition 4.

A matching of a graph GG is perfect if it contains all of GG’s vertices. From definition a perfect matching is a maximum matching although reverse is not necessarily true.

Definition 5.

1-factorization of a graph GG is a collection 𝒟\mathcal{D} of edge-disjoint perfect matchings (also referred to as 1-factors) whose union is (G)\mathcal{E}(G). Graph GG is 1-factorable if it admits 1-factorization.

Lemma 2.

A complete graph GG, with V=2kV=2k for some k+k\in\mathbb{Z}^{+}, is 1-factorable and |𝒟|=V|\mathcal{D}|=V

Definition 6.

For a given edge ei,je_{i,j}, I(ei,j)I(e_{i,j}) is the index set of adjacent vertices I(ei,j)={i,j}I(e_{i,j})=\left\{i,j\right\}.

Definition 7.

A partition of a set 𝒮\mathcal{S} is a collection of nonempty and mutually disjoint subsets of 𝒮\mathcal{S}, called blocks, whose union is 𝒮\mathcal{S}. For instance given set 𝒮={1,2,3,4}\mathcal{S}=\left\{1,2,3,4\right\}; {1}\left\{1\right\},{2,3,4}\left\{2,3,4\right\} is a partition of 𝒮\mathcal{S} with blocks of sizes 11 and 33.

Lemma 3.

Consider a graph GG with V=2kV=2k for some k+k\in\mathbb{Z}^{+}. Then, for any perfect matching DD of GG, 𝒫{I(ei,j):ei,j(D)}\mathcal{P}\triangleq\left\{I(e_{i,j}):e_{i,j}\in\mathcal{E}(D)\right\} is a partition of set [V][V] with blocks of size two.

Lemma 4.

Given set [V][V], with V=2kV=2k for some k+k\in\mathbb{Z}^{+}, it is possible to obtain VV different disjoint partitions333By a disjoint partition, we mean that the distinct partitions, represented as sets, are disjoint. of set [V][V] with blocks of size two.

Proof.

Consider a complete graph GG, such that 𝒱(G)=[V]\mathcal{V}(G)=[V] with V=2kV=2k. From Lemma 2, (G)\mathcal{E}(G) can be written as a collection 𝒟\mathcal{D} of edge-disjoint perfect matchings. Lemma 3 implies that for any D𝒟D\in\mathcal{D}, one can obtain 𝒫{I(ei,j):ei,jD}\mathcal{P}\triangleq\left\{I(e_{i,j}):e_{i,j}\in D\right\} which is a partition of set [V][V] with blocks of size two. Further, since any Dk,Dl𝒟D_{k},D_{l}\in\mathcal{D} edge-disjoint perfect matching, corresponding partitions, 𝒫k{I(ei,j):ei,j(Dk)}\mathcal{P}_{k}\triangleq\left\{I(e_{i,j}):e_{i,j}\in\mathcal{E}(D_{k})\right\} and 𝒫l{I(ei,j):ei,j(Dl)}\mathcal{P}_{l}\triangleq\left\{I(e_{i,j}):e_{i,j}\in\mathcal{E}(D_{l})\right\} are disjoint i.e., 𝒫k𝒫l=\mathcal{P}_{k}\cap\mathcal{P}_{l}=\emptyset. ∎

In Fig. 3, all disjoint partitions for set [6]={1,2,3,4,5,6}[6]=\left\{1,2,3,4,5,6\right\}, and the corresponding edge-disjoint perfect matchings are illustrated. We note that, although Lemma 4 is introduced for set [V][V], with V=2kV=2k for some k+k\in\mathbb{Z}^{+}, it is valid for any set 𝒦\mathcal{K}, |𝒦|=V|\mathcal{K}|=V, and we use the notation 𝒫𝒦\mathcal{P}^{\mathcal{K}} to refer a particular set 𝒦\mathcal{K}.

Lemma 5.

Consider a complete graph GG with V=2k+1V=2k+1 for some k+k\in\mathbb{Z}^{+}. Then, for any maximum matching DD of GG, 𝒫{I(ei,j):ei,j(D)}\mathcal{P}\triangleq\left\{I(e_{i,j}):e_{i,j}\in\mathcal{E}(D)\right\} is a partition of set [V]{v}[V]\setminus\left\{v\right\} with blocks of size two, where v𝒱(G)𝒱(D)v\in\mathcal{V}(G)\setminus\mathcal{V}(D).

Refer to caption
(a) {{1,2},{3,4},{5,6}}\left\{\left\{1,2\right\},\left\{3,4\right\},\left\{5,6\right\}\right\}
Refer to caption
(b) {{1,3},{2,5},{4,6}}\left\{\left\{1,3\right\},\left\{2,5\right\},\left\{4,6\right\}\right\}
Refer to caption
(c) {{1,4},{3,5},{2,6}}\left\{\left\{1,4\right\},\left\{3,5\right\},\left\{2,6\right\}\right\}
Refer to caption
(d) {{1,6},{2,3},{4,5}}\left\{\left\{1,6\right\},\left\{2,3\right\},\left\{4,5\right\}\right\}
Refer to caption
(e) {{1,5},{2,4},{3,6}}\left\{\left\{1,5\right\},\left\{2,4\right\},\left\{3,6\right\}\right\}
Figure 3: All perfect matchings and corresponding partitions for {1,2,3,4,5,6}\left\{1,2,3,4,5,6\right\}
Lemma 6.

A complete graph GG, with V=2k+1V=2k+1 for some k+k\in\mathbb{Z}^{+}, can be decomposed into collection of VV edge-disjoint maximum matchings 𝒟\mathcal{D}.

Refer to caption
Figure 4: Each color represents a maximum matching.
Proof.

Assume that all the vertices in 𝒱(G)\mathcal{V}(G) are located on a circle according to their index with an increasing order. Then, for any vertex j𝒱(G)j\in\mathcal{V}(G), a sub-graph G~\tilde{G} with 𝒱(G~)=[V]{j}\mathcal{V}(\tilde{G})=[V]\setminus\left\{j\right\} and (G~)={emod(j1,V),mod(j+1,V),,emod(jk,V),mod(j+k,V)}\mathcal{E}(\tilde{G})=\left\{e_{\mod(j-1,V),\mod(j+1,V)},\ldots,e_{\mod(j-k,V),\mod(j+k,V)}\right\}, where k=(V1)/2k=(V-1)/2, is a maximum mathching. By following the aforementioned method, i𝒱(G)\forall i\in\mathcal{V}(G), it is possible to generate a maximum matching DiD_{i}. Then one can easily observe that for any i,ji,j

(Di)(Dj)=,\mathcal{E}(D_{i})\cap\mathcal{E}(D_{j})=\emptyset, (44)

and,

i[V](Di)=(G).\cup_{i\in[V]}\mathcal{E}(D_{i})=\mathcal{E}(G). (45)

Decomposition of a complete graph GG, with V=7V=7, into edge-disjoint maximum matchings is illustrated in Figure 4. From Lemma 5 and Lemma 6, we can conclude that for a given set 𝒦\mathcal{K}, for each i𝒦i\in\mathcal{K}, it is possible to have a partition of 𝒦{i}\mathcal{K}\setminus\left\{i\right\} with blocks of size two, denoted by 𝒫𝒦{i}\mathcal{P}^{\mathcal{K}\setminus\left\{i\right\}} such that

𝒫𝒦{i}𝒫𝒦{j}= for any i,j𝒦.\mathcal{P}^{\mathcal{K}\setminus\left\{i\right\}}\cap\mathcal{P}^{\mathcal{K}\setminus\left\{j\right\}}=\emptyset\text{ for any }i,j\in\mathcal{K}.

Appendix B Construction procedure for Δi,j\Delta_{i,j} and \mathcal{B}

In this section, we will explain the procedure for constructing the set of multicast messages, \mathcal{B}, that are sent in the last step of the delivery phase. The main concern of this procedure is to satisfy the constraint |Δi,j|=ni,j|\Delta_{i,j}|=n_{i,j}444Since the same partitioning is applied to all Λi\Lambda_{i}’s, i𝒦h\forall i\in\mathcal{K}^{h}, ni,j=njn_{i,j}=n_{j} for all i𝒦hi\in\mathcal{K}^{h}., i𝒦h\forall i\in\mathcal{K}^{h} and j𝒦lj\in\mathcal{K}^{l}, while constructing the set \mathcal{B}. In the construction procedure, we consider two cases, where khk^{h} is even and odd, separately.

Input : 𝒦h\mathcal{K}^{h}, {nj}j𝒦l\left\{n_{j}\right\}_{j\in\mathcal{K}^{l}}
Output : {Δi,j}i𝒦h,j𝒦l\left\{\Delta_{i,j}\right\}_{i\in\mathcal{K}^{h},j\in\mathcal{K}^{l}}, \mathcal{B}
1 Δi,j{}\Delta_{i,j}\leftarrow\left\{\right\}, i𝒦h,j𝒦l\forall i\in\mathcal{K}^{h},j\in\mathcal{K}^{l};
2 {}\mathcal{B}\leftarrow\left\{\right\};
3 for all j𝒦lj\in\mathcal{K}^{l} do
4   construct 𝒬nj\mathcal{Q}^{n_{j}}
5 for all {i,k}𝒬nj\left\{i,k\right\}\in\mathcal{Q}^{n_{j}} do
6    Δi,jΔi,j{Wdi,{k,j}}\Delta_{i,j}\leftarrow\Delta_{i,j}\bigcup\left\{W_{d_{i},\left\{k,j\right\}}\right\};
7    Δk,jΔk,j{Wdk,{i,j}}\Delta_{k,j}\leftarrow\Delta_{k,j}\bigcup\left\{W_{d_{k},\left\{i,j\right\}}\right\};
8    {Wdi,{k,j}Wdk,{i,j}}\mathcal{B}\leftarrow\mathcal{B}\bigcup\left\{W_{d_{i},\left\{k,j\right\}}\oplus W_{d_{k},\left\{i,j\right\}}\right\};
9    
10   end for
11 
12 end for
Algorithm 5 Set construction for the case of even khk^{h}

B-A Even number of high-level users

Before presenting the algorithm for an even number of high-level users, we will briefly explain how the concept of partitions can be utilized for the construction of set \mathcal{B}. Consider 𝒦h={1,2,3,4,5,6}\mathcal{K}^{h}=\left\{1,2,3,4,5,6\right\} and a partition of 𝒦h\mathcal{K}^{h} with blocks of size two555In the scope of this work, we use the term partition to refer only a particular type of partition with blocks of size two. Hence, from this point on we use the term partition without further specifying the block sizes., e.g., 𝒫𝒦h={{1,2},{3,4},{5,6}}\mathcal{P}^{\mathcal{K}^{h}}=\left\{\left\{1,2\right\},\left\{3,4\right\},\left\{5,6\right\}\right\}. Then, for a particular j𝒦lj\in\mathcal{K}^{l}, each {i,k}𝒫𝒦h\left\{i,k\right\}\in\mathcal{P}^{\mathcal{K}^{h}} can be converted into the following multicast message666Throughout the paper, we often refer to the subset {i,k}\left\{i,k\right\} as a node pairing.: Wdi,{k,j}Wdk,{i,j}W_{d_{i},\left\{k,j\right\}}\oplus W_{d_{k},\left\{i,j\right\}}. To this end, the specified partition 𝒫𝒦h\mathcal{P}^{\mathcal{K}^{h}} corresponds to the following set of multicast messages;

{Wd1,{2,j}Wd2,{1,j},Wd3,{4,j}Wd4,{3,j},Wd5,{6,j}Wd6,{5,j}}.\left\{W_{d_{1},\left\{2,j\right\}}\oplus W_{d_{2},\left\{1,j\right\}},W_{d_{3},\left\{4,j\right\}}\oplus W_{d_{4},\left\{3,j\right\}},W_{d_{5},\left\{6,j\right\}}\oplus W_{d_{6},\left\{5,j\right\}}\right\}. (46)

Recall that, \mathcal{B} is the set of multicast-messages that are not decomposed and are sent in the last step of the delivery phase. Hence, if the multicast messages in (46) are added to \mathcal{B}, then sub-files Wd1,{2,j}W_{d_{1},\left\{2,j\right\}}, Wd2,{1,j}W_{d_{2},\left\{1,j\right\}}, Wd3,{4,j}W_{d_{3},\left\{4,j\right\}}, Wd4,{3,j}W_{d_{4},\left\{3,j\right\}},Wd5,{6,j}W_{d_{5},\left\{6,j\right\}} and Wd6,{5,j}W_{d_{6},\left\{5,j\right\}} are added to sets Δ1,j\Delta_{1,j}, Δ2,j\Delta_{2,j}, Δ3,j\Delta_{3,j}, Δ4,j\Delta_{4,j}, Δ5,j\Delta_{5,j}, and Δ6,j\Delta_{6,j}, respectively. One can observe that, for a particular j𝒦lj\in\mathcal{K}^{l}, if a partition 𝒫𝒦h\mathcal{P}^{\mathcal{K}^{h}} is used for adding multicast messages to set \mathcal{B}, then exactly one sub-file is added to the set Δi,j\Delta_{i,j} for each i𝒦hi\in\mathcal{K}^{h}. Hence, for a particular j𝒦lj\in\mathcal{K}^{l}, we consider any njn_{j} disjoint partitions 𝒫1𝒦h,,𝒫nj𝒦h\mathcal{P}^{\mathcal{K}^{h}}_{1},\ldots,\mathcal{P}^{\mathcal{K}^{h}}_{n_{j}} to determine the multicast messages to be included in set \mathcal{B}, and the constraint |Δi,j|=nj|\Delta_{i,j}|=n_{j} would be satisfied for all i𝒦hi\in\mathcal{K}^{h}. Hence, we define 𝒬nj=i=1:nj𝒫i𝒦h\mathcal{Q}^{n_{j}}=\cup_{i=1:n_{j}}\mathcal{P}^{\mathcal{K}^{h}}_{i}, and use it to add multicast messages to set \mathcal{B} in Algorithm 5. We note that 𝒬nj\mathcal{Q}^{n_{j}} can be considered as a set of user pairings, where each user appears in exactly njn_{j} pairings. Further details on the construction of the disjoint partitions 𝒫1𝒦h,,𝒫n𝒦h\mathcal{P}^{\mathcal{K}^{h}}_{1},\ldots,\mathcal{P}^{\mathcal{K}^{h}}_{n} are explained in Appendix A.

B-B Odd number of high-level users

Input : 𝒦h,neven\mathcal{K}^{h},n_{even}
Output : 𝒬neven\mathcal{Q}^{n_{even}}
1 𝒦~h𝒦h\tilde{\mathcal{K}}^{h}\subset\mathcal{K}^{h} with |𝒦~h|=kh1|\tilde{\mathcal{K}}^{h}|=k^{h}-1;
2 for j=1:neven/2j=1:n_{even}/2 do
3 {i,k}𝒫𝒦~h(j)\left\{i,k\right\}\leftarrow\mathcal{P}^{\tilde{\mathcal{K}}^{h}}(j);
4 𝒬neven𝒬neven(𝒫𝒦h{i}𝒫𝒦h{k}{i,k})\mathcal{Q}^{n_{even}}\leftarrow\mathcal{Q}^{n_{even}}\bigcup(\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{i\right\}}\bigcup\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{k\right\}}\bigcup\left\{i,k\right\});
5 
6 end for
Algorithm 6 Construction of 𝒬neven\mathcal{Q}^{n_{even}} for odd khk^{h}

Above, we first obtained a set of node pairings 𝒬nj\mathcal{Q}^{n_{j}} for each j𝒦lj\in\mathcal{K}^{l}, and then constructed the set of multicast messages \mathcal{B} using these node pairings in Algorithm 5. We recall that 𝒬nj\mathcal{Q}^{n_{j}} is the union of njn_{j} partitions generated from 𝒦h\mathcal{K}^{h}. However, when khk^{h} is odd, it is not possible to obtain partition of 𝒦h\mathcal{K}^{h} with blocks of size two. We remark that, if khk^{h} is odd, klk^{l} must be even, which means that for kl/2k^{l}/2 low-level users, njn_{j} will be an odd number noddn_{odd}, and for the remaining low-level users, njn_{j} will be an even number nevenn_{even}. Let 𝒦oddl\mathcal{K}^{l}_{odd} and 𝒦evenl\mathcal{K}^{l}_{even} be the subset of low-level users with noddn_{odd} and nevenn_{even}, respectively. Furthermore, let koddlk^{l}_{odd} and kevenlk^{l}_{even} denote the cardinality of the sets 𝒦oddl\mathcal{K}^{l}_{odd} and 𝒦evenl\mathcal{K}^{l}_{even}, respectively.
For the case of nevenn_{even}, we introduce a new method, Algorithm 6, to construct 𝒬neven\mathcal{Q}^{n_{even}} for each j𝒦lj\in\mathcal{K}^{l}. In Algorithm 6, we use the notation 𝒜(i)\mathcal{A}(i) to denote the iith element of set 𝒜\mathcal{A} for an arbitrary ordering of its elements777 Although we use index for the set 𝒫𝒦~h\mathcal{P}^{\tilde{\mathcal{K}}^{h}}, Algorithm 6 does not require a particular ordering for this set.. We also want to remark that the partitions used in Algorithm 6 are disjoint, i.e.,

𝒫𝒦h{i}𝒫𝒦h{k}=,\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{i\right\}}\cap\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{k\right\}}=\emptyset, (47)

where i,k𝒦hi,k\in\mathcal{K}^{h}, and iki\neq k. The process of obtaining these disjoint partitions are explained in Appendix A. Now, one can easily observe that, each high-level user appears in exactly one pairing in 𝒫𝒦h{i}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{i\right\}}, except ii, and in 𝒫𝒦h{i}𝒫𝒦h{k}{i,k}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{i\right\}}\bigcup\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{k\right\}}\cup\left\{i,k\right\} each high-level user appears exactly in two pairings. To clarify, assume that we want to construct 𝒬4\mathcal{Q}^{4} for 𝒦h={1,2,3,4,5,6,7}\mathcal{K}^{h}=\left\{1,2,3,4,5,6,7\right\}. We can set 𝒦~h={1,2,3,4,5,6}\tilde{\mathcal{K}}^{h}=\left\{1,2,3,4,5,6\right\} and use partition 𝒫𝒦~h={{1,6},{2,5},{3,4}}\mathcal{P}^{\tilde{\mathcal{K}}^{h}}=\left\{\left\{1,6\right\},\left\{2,5\right\},\left\{3,4\right\}\right\}, so that 𝒫𝒦~h(1)={1,6}\mathcal{P}^{\tilde{\mathcal{K}}^{h}}(1)=\left\{1,6\right\} and 𝒫𝒦~h(2)={2,5}\mathcal{P}^{\tilde{\mathcal{K}}^{h}}(2)=\left\{2,5\right\}. Then, Algorithm 6 uses the partitions given in Table VI to construct 𝒬4\mathcal{Q}^{4} as follows:

𝒬4=\displaystyle\mathcal{Q}^{4}= {{2,7},{3,6},{4,5},{2,3},{1,4},{5,7},{1,6}\displaystyle\left\{\left\{2,7\right\},\left\{3,6\right\},\left\{4,5\right\},\left\{2,3\right\},\left\{1,4\right\},\left\{5,7\right\},\left\{1,6\right\}\right. (48)
{1,3},{4,7},{5,6},{4,6},{3,7},{1,2},{2,5}}.\displaystyle\left.\left\{1,3\right\},\left\{4,7\right\},\left\{5,6\right\},\left\{4,6\right\},\left\{3,7\right\},\left\{1,2\right\},\left\{2,5\right\}\right\}.
Partition Corresponding set
𝒫𝒦h{1}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{1\right\}} {{2,7},{3,6},{4,5}}\left\{\left\{2,7\right\},\left\{3,6\right\},\left\{4,5\right\}\right\}
𝒫𝒦h{6}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{6\right\}} {{2,3},{1,4},{5,7}}\left\{\left\{2,3\right\},\left\{1,4\right\},\left\{5,7\right\}\right\}
𝒫𝒦h{2}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{2\right\}} {{1,3},{4,7},{5,6}}\left\{\left\{1,3\right\},\left\{4,7\right\},\left\{5,6\right\}\right\}
𝒫𝒦h{5}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{5\right\}} {{4,6},{3,7},{1,2}}\left\{\left\{4,6\right\},\left\{3,7\right\},\left\{1,2\right\}\right\}
TABLE VI: Partitions used to construct 𝒬4\mathcal{Q}^{4} for 𝒦h={1,2,3,4,5,6,7}\mathcal{K}^{h}=\left\{1,2,3,4,5,6,7\right\}.

Eventually, in 𝒬neven\mathcal{Q}^{n_{even}} each high-level user appears exactly in nevenn_{even} pairings. Hence, as in Algorithm 5, 𝒬neven\mathcal{Q}^{n_{even}} can be used to construct sets Δi,j\Delta_{i,j} as well the set of multicast messages \mathcal{B}.
We remark that, for each j𝒦evenlj\in\mathcal{K}^{l}_{even} the same set of node pairings 𝒬neven\mathcal{Q}^{n_{even}} is used, thus the process is identical for each j𝒦evenlj\in\mathcal{K}^{l}_{even}. However, for low-level users j𝒦oddlj\in\mathcal{K}^{l}_{odd} the process will not be identical since it is not possible to construct a single 𝒬nodd\mathcal{Q}^{n_{odd}} for all j𝒦oddlj\in\mathcal{K}^{l}_{odd}. Nevertheless, we follow a similar procedure to construct the multicast messages for the low-level users in 𝒦oddl\mathcal{K}^{l}_{odd}.
The overall procedure for the case of odd number of high-level users is illustrated in Algorithm 7. In the algorithm, the set of node pairings 𝒬j\mathcal{Q}_{j} for each j𝒦oddlj\in\mathcal{K}^{l}_{odd} is constructed separately, and is used to decide the multicast message to be placed in \mathcal{B}, and the sub-files to be placed in sets Δi,j\Delta_{i,j}, as in Algorithm 1. From the construction, one can easily observe that in 𝒬j\mathcal{Q}_{j}, each high-level user appears exactly in noddn_{odd} pairings except a particular kk that appears in nodd1n_{odd}-1 pairings. Thus, when 𝒬j\mathcal{Q}_{j} is used to construct multicast messages, constraint |Δi,j|=nodd|\Delta_{i,j}|=n_{odd} is satisfied for all i𝒦hi\in\mathcal{K}^{h}, except i=ki=k. Therefore, at line 11 and 16 in Algorithm 7, we add a sub-file to set Δk,j\Delta_{k,j}, where the high-level user kk appears in nodd1n_{odd}-1 pairings in 𝒬j\mathcal{Q}_{j}, and at line 17 we XOR these sub-files. Hence, eventually we ensure that, at the end of the algorithm the equality constraint |Δi,j|=nodd|\Delta_{i,j}|=n_{odd} is satisfied for all i𝒦hi\in\mathcal{K}^{h} and for all j𝒦oddlj\in\mathcal{K}^{l}_{odd}.
With the proposed set construction algorithms we are ensuring that, in the third and fourth steps of the delivery phase all the sub-files are delivered with a multicasting gain of two888When |i𝒦h,j𝒦lΔi,j||\cup_{i\in\mathcal{K}^{h},j\in\mathcal{K}^{l}}\Delta_{i,j}| is odd, exactly one sub-file is unicasted, while the remaining sub-files achieve a multicasting gain of two, as in Example 1., which explains the achievable delivery rate.

Input : 𝒦oddl,𝒦evenl,𝒦h\mathcal{K}^{l}_{odd},\mathcal{K}^{l}_{even},\mathcal{K}^{h}, {neven,nodd}\left\{n_{even},n_{odd}\right\}
Output : ,{Δi,j}iKh,jKl\mathcal{B},\left\{\Delta_{i,j}\right\}_{i\in K^{h},j\in K^{l}}
1 Δi,j{}\Delta_{i,j}\leftarrow\left\{\right\} \forall iKh,jKli\in K^{h},j\in K^{l}, 𝒬j{}\mathcal{Q}_{j}\leftarrow\left\{\right\} jKl\forall j\in K^{l};
2 𝒦~h𝒦h\tilde{\mathcal{K}}^{h}\subset\mathcal{K}^{h} with |𝒦~h|=kh1|\tilde{\mathcal{K}}^{h}|=k^{h}-1;
3 construct 𝒬nodd1\mathcal{Q}^{n_{odd}-1} and construct 𝒬neven\mathcal{Q}^{n_{even}} ;
4 𝒬j𝒬neven\mathcal{Q}_{j}\leftarrow\mathcal{Q}^{n_{even}}, j𝒦evenl\forall j\in\mathcal{K}^{l}_{even};
5 𝒬j𝒬nodd1\mathcal{Q}_{j}\leftarrow\mathcal{Q}^{n_{odd}-1}, j𝒦oddl\forall j\in\mathcal{K}^{l}_{odd};
6 n~nodd/2\tilde{n}\leftarrow\left\lceil n_{odd}/2\right\rceil;
7 for m=1:koddlm=1:k^{l}_{odd} do
8 if  mm is odd then
9    {i,k}𝒫𝒦~h(n~)\left\{i,k\right\}\leftarrow\mathcal{P}^{\tilde{\mathcal{K}}^{h}}(\tilde{n});
10    𝒬𝒦oddl(m)𝒬𝒦oddl(m)𝒫𝒦h{i}\mathcal{Q}_{\mathcal{K}^{l}_{odd}(m)}\leftarrow\mathcal{Q}_{\mathcal{K}^{l}_{odd}(m)}\bigcup\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{i\right\}};
11    Δi,𝒦oddl(m)Δi,𝒦oddl(m){Wdi,{k,𝒦oddl(m)}}\Delta_{i,\mathcal{K}^{l}_{odd}(m)}\leftarrow\Delta_{i,\mathcal{K}^{l}_{odd}(m)}\bigcup\left\{W_{d_{i},\left\{k,\mathcal{K}^{l}_{odd}(m)\right\}}\right\};
12    
13   end if
14 if  mm is even then
15    {i,k}𝒫𝒦~h(n~)\left\{i,k\right\}\leftarrow\mathcal{P}^{\tilde{\mathcal{K}}^{h}}(\tilde{n});
16    𝒬𝒦oddl(m)𝒬𝒦oddl(m)𝒫𝒦h{k}\mathcal{Q}_{\mathcal{K}^{l}_{odd}(m)}\leftarrow\mathcal{Q}_{\mathcal{K}^{l}_{odd}(m)}\bigcup\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{k\right\}};
17    Δk,𝒦oddl(m)Δk,𝒦oddl(m){Wdk,{i,𝒦oddl(m)}}\Delta_{k,\mathcal{K}^{l}_{odd}(m)}\leftarrow\Delta_{k,\mathcal{K}^{l}_{odd}(m)}\bigcup\left\{W_{d_{k},\left\{i,\mathcal{K}^{l}_{odd}(m)\right\}}\right\};
18    {Wdi,{k,𝒦oddl(m1)}Wdk,{i,𝒦oddl(m)}}\mathcal{B}\leftarrow\mathcal{B}\bigcup\left\{W_{d_{i},\left\{k,\mathcal{K}^{l}_{odd}(m-1)\right\}}\oplus W_{d_{k},\left\{i,\mathcal{K}^{l}_{odd}(m)\right\}}\right\};
19    
20   end if
21 
22 end for
23for all jKlj\in K^{l} do
24 for all (i,k)𝒬j(i,k)\in\mathcal{Q}_{j} do
25    Δi,jΔi,j{Wdi,{k,j}}\Delta_{i,j}\leftarrow\Delta_{i,j}\bigcup\left\{W_{d_{i},\left\{k,j\right\}}\right\};
26    Δk,jΔk,j{Wdk,{i,j}}\Delta_{k,j}\leftarrow\Delta_{k,j}\bigcup\left\{W_{d_{k},\left\{i,j\right\}}\right\};
27    {Wdi,{k,j}Wdk,{i,j}}\mathcal{B}\leftarrow\mathcal{B}\bigcup\left\{W_{d_{i},\left\{k,j\right\}}\oplus W_{d_{k},\left\{i,j\right\}}\right\};
28    
29   end for
30 
31 end for
32
33
Algorithm 7 Set construction for the case of odd khk^{h}

Now, we go back to Example 1, where we have an odd number of high-level files. In particular, we have 𝒦h={1,2,3,4,5}\mathcal{K}^{h}=\left\{1,2,3,4,5\right\}, 𝒦oddl={6}\mathcal{K}^{l}_{odd}=\left\{6\right\} and 𝒦evenl={7}\mathcal{K}^{l}_{even}=\left\{7\right\}, thus nodd=1n_{odd}=1 and neven=2n_{even}=2. Further, partition are given as 𝒫𝒦h{1}={{2,5},{3,4}}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{1\right\}}=\left\{\left\{2,5\right\},\left\{3,4\right\}\right\}, 𝒫𝒦h{2}={{1,3},{4,5}}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{2\right\}}=\left\{\left\{1,3\right\},\left\{4,5\right\}\right\}, 𝒫𝒦h{3}={{1,5},{2,4}}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{3\right\}}=\left\{\left\{1,5\right\},\left\{2,4\right\}\right\}, 𝒫𝒦h{4}={{3,5},{1,2}}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{4\right\}}=\left\{\left\{3,5\right\},\left\{1,2\right\}\right\}, 𝒫𝒦h{5}={{1,4},{3,2}}\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{5\right\}}=\left\{\left\{1,4\right\},\left\{3,2\right\}\right\}. Then, Algorithm 7 takes the set 𝒦~h={1,2,3,4}\tilde{\mathcal{K}}^{h}=\left\{1,2,3,4\right\} and use the partition 𝒫𝒦h=𝒫𝒦h{5}={{1,4},{2,3}}\mathcal{P}^{\mathcal{K}^{h}}=\mathcal{P}^{\mathcal{K}^{h}\setminus\left\{5\right\}}=\left\{\left\{1,4\right\},\left\{2,3\right\}\right\}. Accordingly, Algorithm 7 constructs 𝒬nodd1=\mathcal{Q}^{n_{odd}-1}=\emptyset and 𝒬neven={{1,2},{1,4},{2,5},{3,4},{3,5}}\mathcal{Q}^{n_{even}}=\left\{\left\{1,2\right\},\left\{1,4\right\},\left\{2,5\right\},\left\{3,4\right\},\left\{3,5\right\}\right\}. Thereafter, sets 𝒬6\mathcal{Q}_{6} and 𝒬7\mathcal{Q}_{7} are constructed as 𝒬6={{2,5},{3,4}}\mathcal{Q}_{6}=\left\{\left\{2,5\right\},\left\{3,4\right\}\right\} and 𝒬7={{1,2},{1,4},{2,5},{3,4},{3,5}}\mathcal{Q}_{7}=\left\{\left\{1,2\right\},\left\{1,4\right\},\left\{2,5\right\},\left\{3,4\right\},\left\{3,5\right\}\right\}. The corresponding set of multicast messages, \mathcal{B}, are already illustrated with blue in Table II.

Appendix C Partition of Λ\Lambda

In this part, we will show how Λi={Wdi,{k,j}:k,j𝒦l}\Lambda_{i}=\left\{W_{d_{i},\left\{k,j\right\}}:k,j\in\mathcal{K}^{l}\right\} can be approximately partitioned. Recall that the main concern is to assign sub-file Wdi,{k,j}W_{d_{i},\left\{k,j\right\}} to either Λi,k\Lambda_{i,k} or Λi,j\Lambda_{i,j} in order to achieve approximately uniform cardinality sets {Λi,j}j𝒦l\left\{\Lambda_{i,j}\right\}_{j\in\mathcal{K}^{l}}. We consider two cases, where klk^{l} is even and odd, respectively. We start with the case where klk^{l} is an odd number. Let the set of partitions {𝒫𝒦l{i}}i𝒦l\left\{\mathcal{P}^{\mathcal{K}^{l}\setminus\left\{i\right\}}\right\}_{i\in\mathcal{K}^{l}} are given for 𝒦l\mathcal{K}^{l}. Then Algorithm 8 is used to construct {Λi,j}j𝒦l\left\{\Lambda_{i,j}\right\}_{j\in\mathcal{K}^{l}}.

Input : {𝒫𝒦l{j}}j𝒦l\left\{\mathcal{P}^{\mathcal{K}^{l}\setminus\left\{j\right\}}\right\}_{j\in\mathcal{K}^{l}},Λi\Lambda_{i}
Output : {Λi,j}jKl\left\{\Lambda_{i,j}\right\}_{j\in K^{l}}
1 Pick an element s𝒦ls\in\mathcal{K}^{l} randomly
2 for m=1:(kl1)/2m=1:(k^{l}-1)/2 do
3 {j,k}𝒫𝒦l{s}(m)\left\{j,k\right\}\leftarrow\mathcal{P}^{\mathcal{K}^{l}\setminus\left\{s\right\}}(m);
4 𝒬𝒫𝒦l{j}𝒫𝒦l{k}{j,k}\mathcal{Q}\leftarrow\mathcal{P}^{\mathcal{K}^{l}\setminus\left\{j\right\}}\bigcup\mathcal{P}^{\mathcal{K}^{l}\setminus\left\{k\right\}}\bigcup\left\{j,k\right\};
5 𝒲{Wdi,{k,j}:{k,j}𝒬}\mathcal{W}\leftarrow\left\{W_{d_{i},\left\{k,j\right\}}:\right\{k,j\left\}\in\mathcal{Q}\right\};
6   Distribute WW to sets {Λi,j}jKl\left\{\Lambda_{i,j}\right\}_{j\in K^{l}} sequentially
7 end for
Algorithm 8 Partition of Λi\Lambda_{i}

Note that, in each step of Algorithm 8 the size of set 𝒲\mathcal{W} is equal to klk^{l} and low-level user index jj appears in exactly two sub-files in the 𝒲\mathcal{W}. By "sequential distribution” we mean that we start with some low-level user jj and take the two sub-files Wdi,{k,j},Wdi,{k´,j}𝒲W_{d_{i},\left\{k,j\right\}},W_{d_{i},\left\{\acute{k},j\right\}}\in\mathcal{W}. We start with assigning Wdi,{k,j}W_{d_{i},\left\{k,j\right\}} to set Λi,j\Lambda_{i,j}, then the other sub-file Wdi,{k´,j}W_{d_{i},\left\{\acute{k},j\right\}} is assigned to set Λi,k´\Lambda_{i,\acute{k}}. Thereafter, we take the file Wdi,{k´,j´}W_{d_{i},\left\{\acute{k},\acute{j}\right\}} and assign it to set Λi,j´\Lambda_{i,\acute{j}} and we continue the process in the same way. Formally speaking, each 𝒬\mathcal{Q} in the algorithm resembles a Hamiltonian cycle, and in Algorithm 8 we are assigning each edge in the cycle to a node. To clarify, consider Hamiltonian cycle corresponding to 𝒬={{1,7},{7,5},{2,6},{2,3},{1,4},{6,4},{3,5}}\mathcal{Q}=\left\{\left\{1,7\right\},\left\{7,5\right\},\left\{2,6\right\},\left\{2,3\right\},\left\{1,4\right\},\left\{6,4\right\},\left\{3,5\right\}\right\} is illustrated in Fig. 5. Assume that, we start from node 1 and assign e1,7e_{1,7} to node 1, and edges e7,5,e3,5,e2,3,e2,6,e6,4e_{7,5},e_{3,5},e_{2,3},e_{2,6},e_{6,4},and e1,4e_{1,4} are assigned to nodes 7,5,3,2,6,47,5,3,2,6,4, respectively. Note that, each edge corresponds to a sub-file and each node corresponds to a set Λi,j\Lambda_{i,j}.

Refer to caption
Figure 5: Hamiltonian cycle corresponding to 𝒬={{1,7},{7,5},{2,6},{2,3},{1,4},{6,4},{3,5}}\mathcal{Q}=\left\{\left\{1,7\right\},\left\{7,5\right\},\left\{2,6\right\},\left\{2,3\right\},\left\{1,4\right\},\left\{6,4\right\},\left\{3,5\right\}\right\}.

We further remark that a complete graph GG with odd order can be decomposed into Hamiltonian cycles (as done in Algorithm 8); hence, Λi\Lambda_{i} can be partitioned uniformly where |Λi,j|=(kl1)/2,i𝒦h,j𝒦h.|\Lambda_{i,j}|=(k_{l}-1)/2,~\forall i\in\mathcal{K}^{h},~\forall j\in\mathcal{K}^{h}.
For the case of even klk^{l} we can use a similar approach, but this time we construct the Hamiltonian cycles via combining two perfect matchings. Different from the previous case complete graph G with even order cannot be decomposed to Hamiltonian cycles. Hence, in the end we will have a remaining perfect matching. Those edges in the last perfect matching are assigned to nodes randomly. Therefore, in the end, kl/2k^{l}/2 of the partitions will have cardinality kl/21k^{l}/2-1, while the remaining will have cardinality kl/2k^{l}/2.

References

  • [1] M. A. Maddah-Ali and U. Niesen, “Fundamental limits of caching,” IEEE Trans. Inf. Theory, vol. 60, no. 5, May 2014.
  • [2] ——, “Decentralized coded caching attains order-optimal memory-rate tradeoff,” IEEE/ACM Trans. Netw., vol. 23, no. 4, Aug 2015.
  • [3] Q. Yu, M. A. Maddah-Ali, and A. S. Avestimehr, “The exact rate-memory tradeoff for caching with uncoded prefetching,” IEEE Transactions on Information Theory, vol. 64, no. 2, pp. 1281–1296, Feb 2018.
  • [4] M. M. Amiri, Q. Yang, and D. Gündüz, “Decentralized caching and coded delivery with distinct cache capacities,” IEEE Transactions on Communications, vol. 65, no. 11, pp. 4657–4669, Nov 2017.
  • [5] A. M. Ibrahim, A. A. Zewail, and A. Yener, “Coded caching for heterogeneous systems: An optimization perspective,” IEEE Transactions on Communications, vol. 67, no. 8, pp. 5321–5335, 2019.
  • [6] ——, “Device-to-device coded-caching with distinct cache sizes,” IEEE Transactions on Communications, pp. 1–1, 2020.
  • [7] A. Tang, S. Roy, and X. Wang, “Coded caching for wireless backhaul networks with unequal link rates,” IEEE Transactions on Communications, vol. PP, no. 99, pp. 1–1, 2017.
  • [8] M. M. Amiri and D. Gündüz, “Cache-aided content delivery over erasure broadcast channels,” IEEE Transactions on Communications, vol. PP, no. 99, pp. 1–1, 2017.
  • [9] U. Niesen and M. A. Maddah-Ali, “Coded caching with nonuniform demands,” IEEE Trans. Inf. Theory, vol. 63, no. 2, Feb 2017.
  • [10] M. Ji, A. M. Tulino, J. Llorca, and G. Caire, “Order-optimal rate of caching and coded multicasting with random demands,” IEEE Trans. Inf. Theory, vol. 63, no. 6, June 2017.
  • [11] J. Zhang, X. Lin, and X. Wang, “Coded caching under arbitrary popularity distributions,” IEEE Transactions on Information Theory, vol. 64, no. 1, pp. 349–366, Jan 2018.
  • [12] J.Hachem, N. Karamchandani, and S. N. Diggavi, “Coded caching for multi-level popularity and access,” IEEE Trans. Inf. Theory, vol. 63, no. 5, May 2017.
  • [13] A. M. Daniel and W. Yu, “Optimization of heterogeneous coded caching,” IEEE Transactions on Information Theory, vol. 66, no. 3, pp. 1893–1919, 2020.
  • [14] S. Jin, Y. Cui, H. Liu, and G. Caire, “Structural properties of uncoded placement optimization for coded delivery,” CoRR, vol. abs/1707.07146, 2017.
  • [15] A. Ramakrishnan, C. Westphal, and A. Markopoulou, “An efficient delivery scheme for coded caching,” in Proceedings of the 2015 27th International Teletraffic Congress, ser. ITC ’15. Washington, DC, USA: IEEE Computer Society, 2015, pp. 46–54.
  • [16] X. Cheng, C. Dale, and J. Liu, “Statistics and social network of youtube videos,” in 2008 16th Int. Workshop on Quality of Service, June 2008.
  • [17] M. Cha, H. Kwak, P. Rodriguez, Y. Y. Ahn, and S. Moon, “Analyzing the video popularity characteristics of large-scale user generated content systems,” IEEE/ACM Trans. Netw., vol. 17, no. 5, Oct 2009.
  • [18] M. Zink, K. Suh, Y. Gu, and J. Kurose, “Characteristics of youtube network traffic at a campus network - measurements, models, and implications,” Comput. Netw., vol. 53, no. 4, pp. 501–514, Mar. 2009.
  • [19] J. Lin, Z. Li, G. Xie, Y. Sun, K. Salamatian, and W. Wang, “Mobile video popularity distributions and the potential of peer-assisted video delivery,” IEEE Communications Magazine, vol. 51, no. 11, pp. 120–126, November 2013.
  • [20] K. Wan, D. Tuninetti, and P. Piantanida, “Novel delivery schemes for decentralized coded caching in the finite file size regime,” in 2017 IEEE International Conference on Communications Workshops (ICC Workshops), May 2017, pp. 1183–1188.
  • [21] N. Zhang and M. Tao, “Fitness-aware coded multicasting for decentralized caching with finite file packetization,” IEEE Wireless Communications Letters, pp. 1–1, 2018.
  • [22] M. S. Heydar Abad, E. Ozfatura, O. Ercetin, and D. Gündüz, “Dynamic content updates in heterogeneous wireless networks,” in 2019 15th Annual Conference on Wireless On-demand Network Systems and Services (WONS), 2019, pp. 107–110.