Low-latency method for asymmetric layered coding caching problem
By dividing the subfiles required by the user into three types and in the transmission stage, it allows concurrent transmission between the server and the mirror, solving the delay problem in the asymmetric hierarchical encoding cache system, and improving the system efficiency is achieved.
Patent Information
- Application Number
- CN202510660335.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-22
- Publication Date
- 2025-08-08
AI Technical Summary
When the existing hierarchical encoding cache system faces an asymmetric structure, there is a problem of transmission delay, especially when the user request is unknown, the prior art is difficult to effectively reduce the system delay.
The subfiles required by the user are divided into three types and are divided into multiple sub-stages in the transmission stage, allowing concurrent transmission of the server and the mirror, storing file contents in the content placement stage through a decentralized encoding cache scheme, and designing a transmission scheme to reduce latency.
Through phased concurrent transmission, the transmission delay of the system is significantly reduced and the efficiency of the asymmetric hierarchical encoding cache system is improved.
Smart Images

Figure CN120455473A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of information theory, and in particular relates to a low-delay method for asymmetric layered coding caching problem. Background Art
[0002] In actual communication environments, cache systems typically adopt a multi-layer structure, expressed as a tree-like hierarchy. The root node of this structure is usually the source server, which is responsible for storing the original data of all content. Through multiple intermediate cache nodes, this content is gradually distributed downward, eventually reaching the user cache at the bottom layer. Each layer of cache is not only responsible for storing data, but also for data interaction and synchronization with the previous layer (parent node) and the next layer (child node). Users obtain the required content by accessing the leaf node cache closest to them. Currently, a large amount of work has been conducted on the problem of two-layer layered coding cache, in which the server is connected to K1 mirrors, each of which serves K2 users. However, most of these works focus on symmetric layered structures, while asymmetric layered relationships often exist in practical applications. Summary of the Invention
[0003] Technical Problem: The technical problem to be solved by the present invention is to provide a low-latency method for the asymmetric layered coding caching problem, wherein a system includes a server that stores N files of size F bits and is connected to K1 mirrors and K3 users via an error-free shared link. Each mirror is equipped with a cache of size M1F bits and is connected to K2 users via an error-free shared link. Each user is equipped with a cache of size M2F bits. The present invention divides the transmission phase into multiple sub-phases and implements concurrent transmission of the server and the mirror in some sub-phases, thereby reducing the system's latency.
[0004] Technical solution: In order to solve the above technical problems, the specific technical solution of the present invention is as follows:
[0005] A low-latency method for asymmetric layered coding caching problem, comprising the following steps:
[0006] Step 1: Define the system model of the asymmetric layered coding caching problem: The system model includes a central server storing N files, each file is F bits in size; the nth file is denoted as W n , where n∈{1,2,...,N}; denote {1,2,...,N} as [1:N]; denote the file set as The central server is connected to K1 mirrors and K3 users via an error-free shared link, and each mirror serves K2 users. Therefore, there are K1K2+K3 end users in the system. Each mirror and user is equipped with a cache of size M1F and M2F bits, respectively, where M1 and M2 are normalized cache sizes. The jth user connected to mirror i is denoted as mirror user u. (i,j) , where i∈[1:K1] and j∈[1:K2], the user’s index is u (i,j) =K2(i-1)+j; the kth user connected to the central server is recorded as isolated user u k , whose index is u k =k+K1K2 with k∈[1:K3];
[0007] Set N≥K1K2+K3, and there are at least two mirrors in the system model; define
[0008]
[0009] in Represents the index of all users connected to mirror i, An index representing all isolated users, Represents the index of all users; the content stored in the cache of image i is Z i , mirror user u (i,j) The content stored in the cache is Z (i,j) , the content stored in the cache of isolated user k is Z k ;
[0010] The system model runs in the content placement phase and the content transmission phase; the content placement phase runs during the low-peak period of network traffic, and all mirrors and end users can access the entire database of the central server and transfer each file to the W n Part of the content is stored in the mirror and the user's cache;
[0011] The content transfer phase runs during peak network traffic periods, with each user requesting a file from the database. (i,j) The index of the requested file is d (i,j) , isolated user u k The index of the requested file is d k , where d (i,j) ,d k ∈[1:N]; let Represents the user's request vector;
[0012] According to the user's request vector d and the content Z pre-stored in the user cache (i,j) and Z k , the central server sends the message X of size R1F bitsd Sent to the mirror and isolated users; and the mirror i also compares the received information with the content Z in its own cache i Generate R2F bits of information and send them to the mirrored user; R1 and R2 are the transmission rates of the central server and the mirror respectively;
[0013] Isolated user u k By X d and its cached content Z k Restore the requested file Mirror user u (i,j) pass and its cached content Z (i,j) Restore the requested file
[0014] Step 2: According to the system model, in the content placement phase, the central server does not know all the user requests, and selects the distributed encoding cache solution as the placement solution. The mirror and user cache arbitrarily select the file content to be stored. Each file W n is divided into multiple sub-files, that is, for n=1,...,N, in W is the file that is both mirrored and stored by the user n Sub-files of The element represents the index of the image stored in the sub-file. The element represents the index of the user cache where the sub-file is stored; the sub-files required by the user are divided into three types, namely, type I, type II and type III sub-files;
[0015] Step 3: Design a transmission plan based on the placement plan.
[0016] Furthermore, during the content placement phase in step 2, the central server cannot know all users’ requests, and the mirror and user caches independently apply a decentralized encoding caching scheme;
[0017] The sub-files required by the user are divided into three types, namely, type I, type II and type III sub-files; for the mirror user u (i,j) , the requested type I subfile is in and The requested Category II subfile is in The requested Category III subfile is in and For isolated user u k , the requested type I subfile is in The requested Category II subfile is in
[0018] Furthermore, the transmission phase in step 3 is divided into three stages of content transmission for each of the three types of sub-files, and these are labeled as Transmission I, Transmission II, and Transmission III. Transmission I is further subdivided into three sub-processes: Transmission I(i), I(ii), and I(iii). The sum of the encoding delays of these three stages of transmission is the achievable encoding delay of the entire transmission scheme, which specifically includes the following steps:
[0019] Consider the case where M1∈(0,N) and M2∈[0,N);
[0020] Step 3.1: In transmission I(i), the central server only satisfies the mirror user's request, and the central server broadcasts to all mirror users.
[0021]
[0022] in represents the modulo-2 sum, Represents user u (i,j) A sub-file required; each set satisfies
[0023]
[0024] remember is the mirror number set; J is a subset selected from the user group number set [1:K2], representing the user index set considered for the current transmission; represents the set of all users served by image i and corresponding to user index set J; Q i Indicates the set of mirror users other than mirror i;
[0025] When mirroring i, When receiving the symbol from the central server, it decodes it according to its own cache content.
[0026]
[0027] Then, each mirror i sends the decoded symbols directly to its user, and each user u (i,j) Decode the subfile based on the symbol and its cached content
[0028]
[0029] The mirror receives and sends symbols simultaneously; the mirror decodes the currently received symbol and sends the decoding result of the previously received symbol; the delay for the mirror user to decode all the symbols of formula (4) is approximately equal to the transmission rate of the server;
[0030] Step 3.2: In transmission I(ii), the central server satisfies the requests of both the mirrored user and the isolated user; the central server broadcasts the request to all mirrored and isolated users.
[0031]
[0032] in Represents user u t A sub-file required; each set satisfies
[0033]
[0034] Record Collection Represents a set of isolated users selected in the current transmission; set Represents the set of mirror users, the set of users served by mirror i and the set of users who do not belong to the image Joint formation; yes A mapping of satisfy and when hour, have Kind of value, have Species value; when hour, There are two different Make The mapping f makes approximately (K1+1-m) / m different sets Map to the same value;
[0035] Isolated users After receiving the symbols from the central server, it decodes them according to its own cache content.
[0036]
[0037] Mirror image i, where After receiving the symbol from the central server, it decodes the
[0038]
[0039] And the mirror image i, where Decoded
[0040]
[0041] Each mirror then forwards the decoded symbols to the connected users, and each user decodes the subfile
[0042]
[0043] definition It is the linear combination of the sub-files required by the mirror user, that is, symbol 1; is a linear combination of the sub-files required by the isolated user, that is, symbol 2; for a symbol 1, if a symbol 2 that satisfies formula (6) and has not been transmitted before can be found, then symbol 1 and symbol 2 are said to be matched, and the symbol transmitted by the server is written in the form of formula (5);
[0044] In the transmission phase I(ii), the central server first transmits the matching symbols of formula (5) to all mirror and isolated users; the mirror decodes the currently received symbol and sends the decoding results of the previous received symbol as shown in formulas (8) and (9); the delay for the mirror user to decode all the symbols shown in formula (10) is approximately equal to the server's transmission rate;
[0045] After all matching symbols shown in formula (5) are transmitted, the remaining symbol 2 is transmitted separately to meet the needs of the isolated user, and the remaining symbol 1 is transmitted separately to meet the needs of the mirror user;
[0046] Generate all symbols 1 and 2 by enumeration; when traversing symbol 1, according to the constructed set In the mapping step, the symbol 2 corresponding to the current symbol 1 is found using formula (6); if the symbol 2 has not been transmitted before, it means that the symbol 1 and the symbol 2 at this time are in the matching form shown in formula (5), and the symbol 2 is marked as transmitted; if the symbol 2 has been transmitted, only the current symbol 1 is sent; finally, the symbol 2 is traversed in sequence, and if the symbol 2 is not marked as transmitted, it is sent;
[0047] When the central server is transmitting the remaining symbol 2, the mirror is in an idle state; in order to reduce the system delay, the mirror is allowed to synchronously transmit the linear combination of some type III sub-files;
[0048] Step 3.3, in the transmission I (iii) phase, the central server only satisfies the requests of isolated users. At this time, the central server has transmitted all the Class I sub-files required by the mirror users, but the isolated users still have some Class I sub-files that they have not obtained. The central server transmits the Class I sub-files to these isolated users.
[0049]
[0050] When the central server transmits the symbol shown in formula (11), the mirror is in an idle state; let the mirror synchronously transmit the linear combination of some type III sub-files;
[0051] Step 3.4: In the transmission phase II, the central server transmits a linear combination of type II sub-files, where type II sub-files are sub-files that are not stored in any mirror; the central server transmits to all mirrors and isolated users
[0052]
[0053] The value of k in the symbol is u (i,j) or u t , accordingly, The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2] and t∈[1:K3]; after receiving the symbols from the central server, the mirror directly forwards them to the user; however, some symbols received by mirror i are not relevant to its user. These redundant symbols are
[0054]
[0055] where i'∈[1:K1]\{i}, and Therefore, when the mirror receives a symbol that is redundant for its user, it does not forward it, but instead synchronously transmits a linear combination of some of the Class III subfiles;
[0056] Step 3.5: In the transmission phase III, the central server does not need any transmission, and the mirror directly transmits the linear combination of the remaining type III sub-files to its users; the symbol transmitted by mirror i is
[0057]
[0058] in and Therefore, each mirror only needs to transmit a linear combination of the remaining Class III sub-files.
[0059] Furthermore, when given When constructing a set Mapping The specific steps include:
[0060] The first step is to construct an array list
[0061] Step a: Split K1 into The sum of positive integers; for each possible decomposition method, arrange these m positive integers from small to large to form an initial array;
[0062] Step b: For each initial array generated in step a, perform the following processing:
[0063] Step b-1, generate all different permutations of the array;
[0064] Step b-2: Divide these permutations into different groups; the basis for grouping is: if an array in a group can be obtained from another array in the same group through a rotation operation between elements, then the two arrays belong to the same group;
[0065] Step b-3: From each formed group, select the array that is smallest when arranged in lexicographical order;
[0066] Step b-4: Collect all the arrays with the smallest lexicographic order selected from their respective groups to form a list
[0067] Step c. For the list For each array a in the array, count the number of different elements in the array, and then sort the list according to the number of different elements counted. Sort all arrays in ascending order; get the updated list
[0068] Step 2: Gather Update process
[0069] Step d. Use the generated list To construct and update a set, denoted as There are two operations on arrays:
[0070] Step d.1, operation g(·): for the array list Each array a in a contains m elements, denoted as a=(a1,a2,...,a m ); g(a)=(a [1:m-2 ],a m-1 +a m ), indicating that the new array generated by this operation consists of the first m-2 elements of the original array a (a1, a2, ..., a m-2 ) is directly constructed and a new element is appended after it. The value of the new element is the sum of the last two elements of the original array a, that is, a m-1 +a m ;
[0071] Step d.2, Operation For an array a, Used to generate all the rotation forms of the array a;
[0072] Step e: Initialize an empty set, denoted as Initialize an empty dictionary, denoted as The dictionary Used to store key-value pairs (k:v), where the key k is an array and the value v is the count of the array; Query dictionary All keys and pass To add a new key-value pair or update the value corresponding to the existing key k;
[0073] Step f: Process the list in sequence For each array a in
[0074] Step f-1: Check the collection Is it empty, or check whether the array obtained by g(a) already exists as a key in the dictionary The key set In; if the collection Is empty, or g(a) is not in , then do the following:
[0075] Step f-1-1, add the current array a to the collection middle;
[0076] Step f-1-2: For the array obtained by g(a), generate all its rotation forms, that is, For each array r in the dictionary, add it as a key to the dictionary. and set its corresponding value to 1, that is,
[0077] Step f-1-3: Skip the subsequent processing steps for the current array a and continue processing the list The next array in ;
[0078] Step g: If is not empty and g(a) exists in , do the following:
[0079] Step g-1, initialize a conflict count value variable conflict to -1; initialize a Boolean flag variable all-conflict to true;
[0080] Step g-2: Generate all rotation forms of the current array a, i.e. For each array r in the array, and process each rotation array r: check whether the array obtained by g(r) exists as a key middle,
[0081] Step g-2-1, if g(r) is not in If found, the current rotation r is added to the set For the array obtained by g(r), generate all its rotation forms, that is, For each array t in the dictionary, add it as a key to the dictionary. and set its corresponding value to 1. Set the flag all-conflict to false; terminate the processing of the remaining rotations of the current array a. The traversal of each array r is completed and the process goes to step g-3;
[0082] Step g-2-2, if g(r) exists In the dictionary, the comparison The value associated with key g(r) in and the current conflict count value conflict; if conflict is still its initial value -1, or If it is less than conflict, update the conflict value to Store the current rotation r in a temporary variable temp;
[0083] Step g-3: After completing the processing of all rotation forms of the current array a, check the value of the all-conflict flag; if all-conflict is still true, add the array stored in the temporary variable temp to the collection For the array obtained by g(temp), generate all its rotation forms, that is, For each array r in the dictionary, for each such rotation array, The corresponding value in is increased by 1, that is
[0084] Step h: Complete the list After processing all arrays in, we get the updated set
[0085] Step 3: Gather Mapping The generation process
[0086] Step i: Use the set generated in step 2 And the initial parameter K1 to generate the target set and its corresponding mapping Iterating over a collection Each array b in the array b contains m elements, denoted as b=(b1,b2,...,b m );
[0087] Step j: For each array b, establish a generative expression to generate a sequence that depends on a variable x and the elements of array b; the terms of the sequence are defined as follows: the first term is x, the second term is Item 3 is By analogy, the mth item is Among them, the definition b is the operation of positive integer a on positive integer b:
[0088]
[0089] Step k: For the current array b, iterate for each integer value of the variable x. The value range of the variable x is from 1 to K1. In each iteration,
[0090] Step k-1: Use the current value x and the current array b to calculate all the items of the sequence according to the generative formula defined in (2), and use these items as elements to form a set Right now
[0091]
[0092] Step k-2: At the same time, generate the set Mapping Defined as a set A subset of All but the last term in , specifically,
[0093]
[0094] Furthermore, transmission I is divided into three sub-processes: in transmission I(i), the server transmits symbols encoded by the type I sub-file to all mirrors, and the mirrors receive and decode, and transmit the decoded symbols at the same time; in transmission I(ii), the server transmits matching symbols encoded by the type I sub-file to all mirrors and isolated users, and the mirrors receive and decode, and transmit the decoded symbols at the same time; then the server transmits unmatched symbols encoded by the type I sub-file to all isolated users, and the mirrors simultaneously transmit symbols encoded by the type III sub-file; in transmission I(iii), the server transmits symbols encoded by the type I sub-file to all isolated users, and the mirrors simultaneously transmit symbols encoded by the type III sub-file;
[0095] In transmission II, the server transmits the symbol encoded by the type II sub-file. After receiving the symbol, the mirror determines whether it is a redundant symbol. If it is a redundant symbol, it transmits the symbol encoded by the type III sub-file. Otherwise, it forwards the valid symbol to the user.
[0096] In transmission III, the server does not perform any transmission and transmits the remaining symbols encoded by the type III sub-file in a mirrored manner.
[0097] Furthermore, when M2 ≥ N, each user obtains all N files from the central server during the content placement phase, so the central server does not need to transmit any content, and the encoding delay T is 0;
[0098] When M1 ≥ N, the situation is equivalent to M1 = N; the mirror caches all the files of the central server, and the central server does not need any transmission; the sub-files required by each user degenerate into Where k is u (i,j) or u t , accordingly The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2], t∈[1:K3]; The central server only needs to transmit To meet the needs of isolated users,
[0099] Furthermore, we call the transmission scheme Scheme A, and construct a Scheme B, which is a mixture of Scheme A and Scheme B through parameters α and β. The specific steps are as follows:
[0100] In solution B, there is no need to consider the mirror's caching function. The mirror only forwards the received information. Once a symbol is received from the central server, each mirror immediately forwards it to the user, achieving parallel transmission with the central server.
[0101] In the hybrid scheme, the entire system is divided into two subsystems, A and B, and schemes A and B are adopted respectively; let α, β∈[0,1] be fixed parameters, and each file in the central server is divided into two parts of size αF and (1-α)F bits, located in subsystems A and B respectively; subsystem A also includes the entire cache of the mirror and the size of βM2F bits of each user cache, and subsystem B includes the size of the remaining (1-β)M2F bits of each user cache.
[0102] Beneficial effects: The present invention proposes a low-latency method for the asymmetric layered coding caching problem, which has the following advantages: the present invention divides the sub-files required by users into three types, and divides the server transmission into multiple sub-stages. By allowing parallel transmission of the server and the mirror in some sub-stages, the transmission delay of the system is greatly reduced. BRIEF DESCRIPTION OF THE DRAWINGS
[0103] Figure 1 A system model of the low-latency method for asymmetric layered coding caching problem according to the present invention;
[0104] Figure 2 The relationship between the delay T and the mirror cache M1 when K1=3, K2=K3=50, and N=2000 (M2=20);
[0105] Figure 3 When K1=3, K2=K3=50, and N=2000, the delay T varies with the user cache M2 (M1=1500). DETAILED DESCRIPTION
[0106] In order to better understand the purpose, structure and function of the present invention, the transmission method of the low-latency method for asymmetric layered coding caching problem of the present invention is further described in detail below with reference to the accompanying drawings, but the protection scope of the present invention is not limited to the implementation example.
[0107] like Figure 1 The figure shows a system model of a low-latency method for asymmetric layered coding caching according to the present invention. A low-latency method for asymmetric layered coding caching comprises the following steps:
[0108] Step 1: First, define the system model of the asymmetric layered coding cache problem: a central server in the system stores N files, denoted as Each file is F bits in size. The server is connected to K1 mirrors and K3 users via an error-free shared link, and each mirror serves K2 users. Therefore, there are K1K2+K3 terminal users in the system. Each mirror and user is equipped with a cache of M1F and M2F bits, respectively, where M1 and M2 are normalized cache sizes. The jth user connected to mirror i is denoted as mirror user u. (i,j) , where i∈[1:K1] and j∈[1:K2], the user’s index is u (i,j) =K2(i-1)+j; the kth user connected to the server is recorded as an isolated user u k , whose index is u k =k+K1K2 with k∈[1:K3];
[0109] The present invention focuses on the situation where the number of files is not less than the number of users, that is, N≥K1K2+K3, and assumes that there are at least two mirrors in the network; define
[0110]
[0111] in Represents the index of all users connected to mirror i, An index representing all isolated users, Represents the index of all users; accordingly, the content stored in the cache of image i is called Z i , mirror user u (i,j) The content stored in the cache is Z (i,j) , the content stored in the cache of isolated user k is Z k ;
[0112] The system runs in two phases: content placement phase and content transmission phase; the content placement phase runs when the network load is low, all mirrors and end users can access the entire database of the server and transfer each file to the server. n Some of the content is stored in its cache;
[0113] Next, the content transfer phase runs when the network load is high, and each user requests a file from the database; define the mirror user u (i,j) The index of the requested file is d (i,j) , isolated user u k The index of the requested file is d k , where d (i,j) ,d k ∈[1:N]; let Represents the user's request vector;
[0114] According to the user's request vector d and the content Z pre-stored in the user cache (i,j) and Z k , the server sends the message X of size R1F bits d Send to the mirror server and isolated users; and the mirror i also compares the received information with the content Z in its own cache i Generates R2F bit information and sends it to the mirror user; R1 and R2 are the transmission rates of the server and the mirror respectively;
[0115] Isolated user u k By X d and its cached content Z k The requested files can be restored perfectly Similarly, mirror user u (i,j) pass and its cached content Z (i,j)The requested file can be restored
[0116] Step 2: According to the system model, the server does not know all the user requests in the placement phase, so the distributed coding cache solution is selected as the placement solution; the mirror and user cache can arbitrarily select the file content to be stored, and each file W n is divided into multiple sub-files, that is, for n=1,...,N, in W is the file that is both mirrored and stored by the user n Sub-files of The element represents the index of the image stored in the sub-file. The element represents the index of the user cache where the sub-file is stored; the sub-files required by the user are divided into three types, namely, type I, type II and type III sub-files;
[0117] Step 3. Design a transmission plan based on the placement plan. The transmission phase is divided into three stages of content transmission for the three types of sub-files described in Step 2, and they are labeled as Transmission I, Transmission II, and Transmission III. Transmission I can be further divided into three sub-processes: Transmission I(i), I(ii), and I(iii). The sum of the encoding delays of these three transmission stages is the achievable encoding delay of the entire transmission plan.
[0118] The specific placement scheme of the distributed encoding cache selected in step 2 is shown in Algorithm 1:
[0119]
[0120]
[0121] During the content placement phase, the server cannot know all the users’ requests, and the mirror and user caches independently apply the decentralized encoding caching scheme;
[0122] The sub-files required by the user are divided into three types, namely, type I, type II and type III sub-files; for the mirror user u (i,j) , the requested type I subfile is in and The requested Category II subfile is in The requested Category III subfile is in and For isolated user u k , the requested type I subfile is in The requested Category II subfile is in
[0123] Furthermore, the specific steps of step 3 are as follows, including transmission I, transmission II and transmission III:
[0124] In the transmission I phase, the transmission process can be divided into three sub-processes: transmission I(i), I(ii) and I(iii); first consider the case where M1∈(0,N) and M2∈[0,N);
[0125] Step a: In transmission I(i), the server only satisfies the mirror user's request and broadcasts to all mirror users.
[0126]
[0127] in
[0128]
[0129] When mirroring i, When receiving symbols from the server, it can decode them based on its own cache content.
[0130]
[0131] Then, each mirror i sends the decoded symbols directly to its user, and each user u (i,j) The sub-file can be decoded based on the symbol and its cached content
[0132]
[0133] During this process, the mirror can receive and send symbols simultaneously; the mirror decodes the currently received symbol and sends the decoding result of the previously received symbol; when the number of symbols is large enough, the delay of the mirror user decoding all the symbols shown in (4) is approximately equal to the transmission rate of the server;
[0134] Step b: In transmission I(ii), the server satisfies the requests of both mirrored and isolated users. The server broadcasts
[0135]
[0136] in
[0137] yes The mapping,
[0138]
[0139] Easy to obtain
[0140]
[0141] The mapping is described in detail below. Specific way of mapping satisfy and when hour, have Kind of value, have Species value; when hour, This means that there may be two different Make In order to effectively reduce the transmission rate in the subsequent scheme, the mapping f makes approximately (K1+1-m) / m different sets maps to the same value; when given When , we can get Mapping
[0142]
[0143]
[0144]
[0145] Among them, the definition operation b :
[0146]
[0147] Isolated users After receiving the symbol from the server, it can decode it according to its own cache content.
[0148]
[0149] Mirror image i (where ) After receiving the symbol from the server, it can decode it according to its own cache content.
[0150]
[0151] And the mirror image i (where ) can be decoded
[0152]
[0153] Each mirror then forwards the decoded symbols to the connected users, and each user can decode the subfile
[0154]
[0155] definition It is the linear combination of the sub-files required by the mirror user, that is, symbol 1; is a linear combination of the sub-files required by the isolated user, namely symbol 2; for a symbol 1, if a symbol 2 that satisfies condition (6) and has not been transmitted before can be found, then symbol 1 and symbol 2 are said to be matched, and the symbol transmitted by the server can be written in the form of formula (5);
[0156] In this phase, the server first transmits the matching symbols shown in equation (5) to all mirrored and isolated users. The mirror decodes the currently received symbol and sends the decoding result of the previous received symbol (as shown in (8) and (9)). When the number of symbols is large enough, the delay for the mirror user to decode all the symbols shown in (10) is approximately equal to the server's transmission rate.
[0157] After all matching symbols shown in formula (5) are transmitted, the remaining symbol 2 is transmitted separately to meet the needs of the isolated user, and the remaining symbol 1 is transmitted separately to meet the needs of the mirror user;
[0158] The process of sending symbols by the computer is as follows: all symbols 1 and 2 are generated by enumeration; when traversing symbol 1, find the symbol 2 corresponding to the current symbol 1 according to Algorithm 2 and Condition (6); if the symbol 2 has not been transmitted before, it means that the current symbol 1 and symbol 2 are in the matching form shown in Formula (5), and the symbol 2 is marked as transmitted; if the symbol 2 has been transmitted, only the current symbol 1 is sent; finally, traverse the symbol 2 in sequence, and if the symbol 2 is not marked as transmitted, it is sent;
[0159] When the server is transmitting the remaining symbol 2, the mirror is idle; to reduce system latency, we let the mirror synchronously transmit the linear combination of some type III sub-files;
[0160] Step c, in the transmission I (iii) phase, the server only satisfies the request of isolated users. At this time, the server has transmitted all the Class I sub-files required by the mirror users, but the isolated users still have some Class I sub-files that they have not obtained. The server transmits the Class I sub-files to these isolated users.
[0161]
[0162] When the server transmits this part of the content, the mirror is in an idle state. To reduce the system latency, we let the mirror synchronously transmit the linear combination of some Class III sub-files.
[0163] Step d: In the transmission phase II, the server transmits a linear combination of type II sub-files, where type II sub-files are sub-files that are not stored in any mirror; the server transmits the linear combination of type II sub-files to all mirrors and isolated users.
[0164]
[0165] To simplify the representation, the value of k in the symbol is u (i,j) or u t , accordingly, The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2] and t∈[1:K3]; after receiving the symbols from the server, the mirror directly forwards them to the user; however, some symbols received by mirror i are not relevant to its user. These redundant symbols are
[0166]
[0167] where i'∈[1:K1]\{i}, and Therefore, when the mirror receives a symbol that is redundant for its user, it does not forward it, but instead synchronously transmits a linear combination of some of the Class III subfiles;
[0168] Step e: In the transmission phase III, the server does not need any transmission, and the mirror directly transmits the linear combination of the remaining type III sub-files to its user; the symbol transmitted by mirror i is
[0169]
[0170] in and Since some linear combinations of the type III sub-files have been transmitted through mirroring in the transmission I and transmission II stages, each mirror only needs to transmit the linear combinations of the remaining type III sub-files.
[0171] Furthermore, the summary of transmission I, II, and III is as follows:
[0172] Table 1 Summary of transmission I, II, and III
[0173]
[0174] Each column in Table 1 represents the transmission phase to which it belongs, and the sub-file type involved in the content transmitted in parallel by the server and each mirror;
[0175] The analysis of special cases is as follows:
[0176] When M2 ≥ N, it is obvious that each user can obtain all N files from the server during the content placement phase, so the server does not need to transmit any content and the encoding delay T is 0;
[0177] When M1≥N, the situation is equivalent to M1=N. In this case, the mirror caches all the files on the server, and the server does not need any transmission. The sub-files required by each user degenerate into Where k is u (i,j) or u t , accordingly The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2], t∈[1:K3]; The server only needs to transmit To meet the needs of isolated users,
[0178] The above transmission scheme is called Scheme A, and a Scheme B is constructed. Schemes A and B are mixed by selecting appropriate parameters α and β. The specific steps are as follows:
[0179] In solution B, there is no need to consider the mirror's caching function. The mirror only forwards the received information. Once a symbol is received from the server, each mirror immediately forwards it to the user, achieving almost parallel transmission with the server.
[0180] In the hybrid scheme, the entire system is divided into two subsystems, A and B, and schemes A and B are adopted respectively; let α, β∈[0,1] be fixed parameters, and each file in the server is divided into two parts of size αF and (1-α)F bits, located in subsystems A and B respectively; subsystem A also includes the entire cache of the mirror and the size of βM2F bits of each user cache, and subsystem B includes the size of the remaining (1-β)M2F bits of each user cache.
[0181] An embodiment is given below for Algorithm 2:
[0182] This embodiment provides K1=8, The construction method of mapping f. First execute the first subroutine. According to the second step of the algorithm, K1 is decomposed into the sum of 3 positive integers. The resulting array is
[0183] (1,1,6),(1,2,5),(1,3,4),(2,2,4),(2,3,3),
[0184] For the array (1, 2, 5), execute step 3 of the algorithm and obtain two rotation groups:
[0185] {(1,2,5),(2,5,1),(5,1,2)},
[0186] {(1,5,2),(2,1,5),(5,2,1)}.
[0187] Select the lexicographically smallest arrays (1,2,5) and (1,5,2) from each group and put them into a list The same steps are performed on other arrays to obtain
[0188]
[0189] According to step 4 of the algorithm, the sorted list for
[0190]
[0191] Then execute the second subroutine, the process of which is shown in Table 2.
[0192] Table 2 Execution process of the second subroutine of Algorithm 2
[0193]
[0194] For the convenience of representation, the array (a1, a2, ..., a n ) is abbreviated to a1a2...a n In this case, the resulting set for
[0195]
[0196] Finally, the third subroutine is executed, and the generated and As shown in Table 3, Each column element is A mapping of the elements in each column of .
[0197] Table 3 Execution results of the third subroutine of Algorithm 2
[0198]
[0199]
[0200] The following is an example of the placement and transmission process of the entire system:
[0201] In this embodiment, a two-layer asymmetric layered coding cache network is considered, and the server stores N=5 files, which are recorded as W. n , n∈[1:5]. K1=K2=2, K3=1, and M1,M2∈(0,N].
[0202] Step 1: Mark 5 users in the system as
[0203] u (1,1) =1,u (1,2) =2,u (2,1) =3,u (2,2) =4,u1=5.
[0204] Step 2: In the placement phase, mirror 1 and mirror 2 are loaded from each file W n Each user independently and randomly selects M1F / 5 bits of content from each file and puts it into their own cache. Each of the five users independently and randomly selects M2F / 5 bits of content from each file and puts it into their own cache. Indicates that it is stored in Mirror image and File W of the user in n sub-files of For example, It is the sub-file stored in the image 1 and the cache of users 3 and 4. Therefore, the file W n Can be divided into sub-files as follows:
[0205]
[0206] Step 3: In the transmission phase, according to the present invention, it can be further divided into three parts: transmission I(i), I(ii), I(iii), II and III. In transmission I(i), the server transmits to all mirrors:
[0207]
[0208] Almost at the same time, image 1 transmits to user 1 and user 2:
[0209]
[0210] Image 2 transmits to users 3 and 4:
[0211]
[0212] In transmission I(ii), from Algorithm 2, we can get f({1,2}) = {1}, and the server transmits to the mirror and isolated users:
[0213]
[0214] Almost at the same time, image 1 transmits to user 1 and user 2:
[0215]
[0216] Image 2 transmits to users 3 and 4:
[0217]
[0218] However, the image still needs to be transferred to isolated users:
[0219] in When mirrors transmit information to isolated users, each mirror can transmit a linear combination of some Class III sub-files.
[0220] In transmission I(iii), the server transmits only to the isolated user:
[0221]
[0222] At this stage, each mirror can transmit a linear combination of some Class III sub-files.
[0223] In Transfer II, the server transfers to the mirror and isolated users:
[0224]
[0225] Among the linear combinations of these type II sub-files, the redundant parts for mirror 1 are:
[0226]
[0227] After receiving the symbol from the server, Mirror 1 forwards it to User 1 and User 2 if it recognizes it as a valid symbol. If it recognizes it as a redundant symbol, meaning that neither User 1 nor User 2 needs it, it transmits a linear combination of some Class III sub-files to the user. Similarly, for Mirror 2, the redundant part is:
[0228]
[0229] The transfer process of image 2 is similar to that of image 1.
[0230] In transmission III, image 1 transmits to user 1 and user 2:
[0231]
[0232] in Equal to {1} or {1,2}. Similarly, image 2 transmits to user 3 and user 4:
[0233]
[0234] in ={2} or {1,2}. The linear combination of some of the type III sub-files has been sent in transmissions I(ii), I(iii) and II, so each mirror only needs to transmit the remaining symbols in this stage.
[0235] Figure 2 、 Figure 3 A numerical comparison of the present invention with existing work is given, where and are the system delays obtained by scheme A, scheme B and the hybrid scheme of the present invention, is the system delay of the existing work, and is the theoretical lower bound of the system delay. Numerical results show that the proposed scheme outperforms existing work.
[0236] It will be understood that the present invention is described by way of some embodiments, and it will be appreciated by those skilled in the art that various changes or equivalent substitutions may be made to these features and embodiments without departing from the spirit and scope of the present invention. In addition, under the teachings of the present invention, these features and embodiments may be modified to adapt to specific circumstances and materials without departing from the spirit and scope of the present invention. Therefore, the present invention is not limited to the specific embodiments disclosed herein, and all embodiments falling within the scope of the claims of this application are intended to be protected by the present invention.
Claims
1. A low-latency method for asymmetric layered coding caching, characterized in that: The following steps are involved: Step 1: Define the system model of the asymmetric layered coding caching problem: The system model includes a central server storing N files, each file is F bits in size; the nth file is denoted as W n , where n∈{1,2,...,N}; denote {1,2,...,N} as [1:N]; denote the file set as The central server is connected to K1 mirrors and K3 users via an error-free shared link, and each mirror serves K2 users. Therefore, there are K1K2+K3 end users in the system. Each mirror and user is equipped with a cache of size M1F and M2F bits, respectively, where M1 and M2 are normalized cache sizes. The jth user connected to mirror i is denoted as mirror user u. (i,j) , where i∈[1:K1] and j∈[1:K2], the user’s index is u (i,j) =K2(i-1)+j; the kth user connected to the central server is recorded as isolated user u k , whose index is u k =k+K1K2 with k∈[1:K3]; Set N≥K1K2+K3, and there are at least two mirrors in the system model; define in Represents the index of all users connected to mirror i, An index representing all isolated users, Represents the index of all users; the content stored in the cache of image i is Z i , mirror user u (i,j) The content stored in the cache is Z (i,j) , the content stored in the cache of isolated user k is Z k ; The system model runs in the content placement phase and the content transmission phase; the content placement phase runs during the low-peak period of network traffic, and all mirrors and end users can access the entire database of the central server and transfer each file to the W n Part of the content is stored in the mirror and the user's cache; The content transfer phase runs during peak network traffic periods, with each user requesting a file from the database. (i,j) The index of the requested file is d (i,j) , isolated user u k The index of the requested file is d k , where d (i,j) ,d k ∈[1:N]; let Represents the user's request vector; According to the user's request vector d and the content Z pre-stored in the user cache (i,j) and Z k , the central server sends the message X of size R1F bits d Sent to the mirror and isolated users; and the mirror i also compares the received information with the content Z in its own cache i Generate R2F bits of information and send them to the mirrored user; R1 and R2 are the transmission rates of the central server and the mirror respectively; Isolated user u k By X d and its cached content Z k Restore the requested file Mirror user u (i,j) pass and its cached content Z (i,j) Restore the requested file Step 2: According to the system model, in the content placement phase, the central server does not know all the user requests, and selects the distributed encoding cache solution as the placement solution. The mirror and user cache arbitrarily select the file content to be stored. Each file W n is divided into multiple sub-files, that is, for n=1,...,N, in W is the file that is both mirrored and stored by the user n Sub-files of The element represents the index of the image stored in the sub-file. The element represents the index of the user cache where the sub-file is stored; the sub-files required by the user are divided into three types, namely, type I, type II and type III sub-files; Step 3: Design a transmission plan based on the placement plan.
2. The low-latency method for asymmetric layered coding caching according to claim 1, characterized in that: In step 2, for the mirror user u (i,j) , the requested type I subfile is in and The requested Category II subfile is in The requested Category III subfile is in and For isolated user u k , the requested type I subfile is in The requested Category II subfile is in 3. The low-latency method for asymmetric layered coding caching according to claim 2, characterized in that: In step 3, the transmission phase is divided into three phases of content transmission for the three types of sub-files, and they are marked as transmission I, transmission II and transmission III; Transmission I is divided into three sub-processes: transmission I(i), I(ii), and I(iii). The sum of the coding delays of these three transmission stages is the achievable coding delay of the entire transmission scheme, which specifically includes the following steps: Consider the case where M1∈(0,N) and M2∈[0,N); Step 3.1: In transmission I(i), the central server only satisfies the mirror user's request, and the central server broadcasts to all mirror users. in represents the modulo-2 sum, Represents user u (i,j) A sub-file required; each set satisfies remember is the mirror number set; J is a subset selected from the user group number set [1:K2], representing the user index set considered for the current transmission; represents the set of all users served by image i and corresponding to user index set J; Q i Indicates the set of mirror users other than mirror i; When mirroring i, When receiving the symbol from the central server, it decodes it according to its own cache content. Then, each mirror i sends the decoded symbols directly to its user, and each user u (i,j) Decode the subfile based on the symbol and its cached content The mirror receives and sends symbols simultaneously; the mirror decodes the currently received symbol and sends the decoding result of the previously received symbol; the delay of the mirror user decoding all the symbols of formula (4) is equal to the transmission rate of the server; Step 3.2: In transmission I(ii), the central server satisfies the requests of both the mirrored user and the isolated user; the central server broadcasts the request to all mirrored and isolated users. in Represents user u t A sub-file required; each set satisfies Record Collection Represents a set of isolated users selected in the current transmission; set Represents the set of mirror users, the set of users served by mirror i and the set of users who do not belong to the image Joint formation; yes A mapping of satisfy and when hour, have Kind of value, have Species value; when hour, There are two different Make Isolated users After receiving the symbols from the central server, it decodes them according to its own cache content. Mirror image i, where After receiving the symbol from the central server, it decodes the And the mirror image i, where Decoded Each mirror then forwards the decoded symbols to the connected users, and each user decodes the subfile definition It is the linear combination of the sub-files required by the mirror user, that is, symbol 1; is a linear combination of the sub-files required by the isolated user, that is, symbol 2; for a symbol 1, if a symbol 2 that satisfies formula (6) and has not been transmitted before can be found, then symbol 1 and symbol 2 are said to be matched, and the symbol transmitted by the server is written in the form of formula (5); In the transmission phase I(ii), the central server first transmits the matching symbols of formula (5) to all mirror and isolated users; the mirror decodes the currently received symbol and sends the decoding results of the previous received symbol as shown in formulas (8) and (9); the delay for the mirror user to decode all the symbols shown in formula (10) is equal to the server's transmission rate; After all matching symbols shown in formula (5) are transmitted, the remaining symbol 2 is transmitted separately to meet the needs of the isolated user, and the remaining symbol 1 is transmitted separately to meet the needs of the mirror user; Generate all symbols 1 and 2 by enumeration; when traversing symbol 1, according to the constructed set In the mapping step, the symbol 2 corresponding to the current symbol 1 is found using formula (6); if the symbol 2 has not been transmitted before, it means that the symbol 1 and the symbol 2 at this time are in the matching form shown in formula (5), and the symbol 2 is marked as transmitted; if the symbol 2 has been transmitted, only the current symbol 1 is sent; finally, the symbol 2 is traversed in sequence, and if the symbol 2 is not marked as transmitted, it is sent; When the central server is transmitting the remaining symbol 2, the mirror is in an idle state; in order to reduce the system delay, the mirror is allowed to synchronously transmit the linear combination of some type III sub-files; Step 3.3, in the transmission I (iii) phase, the central server only satisfies the requests of isolated users. At this time, the central server has transmitted all the Class I sub-files required by the mirror users, but the isolated users still have some Class I sub-files that they have not obtained. The central server transmits the Class I sub-files to these isolated users. When the central server transmits the symbol shown in formula (11), the mirror is in an idle state; let the mirror synchronously transmit the linear combination of some type III sub-files; Step 3.4: In the transmission phase II, the central server transmits a linear combination of type II sub-files, where type II sub-files are sub-files that are not stored in any mirror; the central server transmits to all mirrors and isolated users The value of k in the symbol is u (i,j) or u t , accordingly, The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2] and t∈[1:K3]; after receiving the symbols from the central server, the mirror directly forwards them to the user; however, some symbols received by mirror i are not relevant to its user. These redundant symbols are where i'∈[1:K1]\{i}, and Therefore, when the mirror receives a symbol that is redundant for its user, it does not forward it, but instead synchronously transmits a linear combination of some of the Class III subfiles; Step 3.5: In the transmission phase III, the central server does not need any transmission, and the mirror directly transmits the linear combination of the remaining type III sub-files to its users; the symbol transmitted by mirror i is in and Therefore, each mirror only needs to transmit a linear combination of the remaining Class III sub-files.
4. The low-latency method for asymmetric layered coding caching according to claim 3, characterized in that: When given When constructing a set Mapping specific The following steps are involved: The first step is to construct an array list Step a: Split K1 into The sum of positive integers; for each possible decomposition method, arrange these m positive integers from small to large to form an initial array; Step b: For each initial array generated in step a, perform the following processing: Step b-1, generate all different permutations of the array; Step b-2: Divide these permutations into different groups; the basis for grouping is: if an array in a group can be obtained from another array in the same group through a rotation operation between elements, then the two arrays belong to the same group; Step b-3: From each formed group, select the array that is smallest when arranged in lexicographical order; Step b-4: Collect all the arrays with the smallest lexicographic order selected from their respective groups to form a list Step c. For the list For each array a in the array, count the number of different elements in the array, and then sort the list according to the number of different elements counted. Sort all arrays in ascending order; get the updated list Step 2: Gather Update process Step d. Use the generated list To construct and update a set, denoted as There are two operations on arrays: Step d.1, operation g(·): for the array list Each array a in a contains m elements, denoted as a=(a1,a2,...,a m ); g(a)=(a [1:m-2] ,a m-1 +a m ), indicating that the new array generated by this operation consists of the first m-2 elements of the original array a (a1, a2, ..., a m-2 ) is directly constructed and a new element is appended after it. The value of the new element is the sum of the last two elements of the original array a, that is, a m-1 +a m ; Step d.2, Operation For an array a, Used to generate all the rotation forms of the array a; Step e: Initialize an empty set, denoted as Initialize an empty dictionary, denoted as The dictionary Used to store key-value pairs (k:v), where the key k is an array and the value v is the count of the array; Query dictionary All keys and pass To add a new key-value pair or update the value corresponding to the existing key k; Step f: Process the list in sequence For each array a in Step f-1: Check the collection Is it empty, or check whether the array obtained by g(a) already exists as a key in the dictionary The key set In; if the collection Is empty, or g(a) is not in , then do the following: Step f-1-1, add the current array a to the collection middle; Step f-1-2: For the array obtained by g(a), generate all its rotation forms, that is, For each array r in the dictionary, add it as a key to the dictionary. and set its corresponding value to 1, that is, Step f-1-3: Skip the subsequent processing steps for the current array a and continue processing the list The next array in ; Step g: If is not empty and g(a) exists in , do the following: Step g-1, initialize a conflict count value variable conflict to -1; initialize a Boolean flag variable all-conflict to true; Step g-2: Generate all rotation forms of the current array a, i.e. For each array r in the array, and process each rotation array r: check whether the array obtained by g(r) exists as a key middle, Step g-2-1, if g(r) is not in If found, the current rotation r is added to the set For the array obtained by g(r), generate all its rotation forms, that is, For each array t in the dictionary, add it as a key to the dictionary. and set its corresponding value to 1. Set the flag all-conflict to false; terminate the processing of the remaining rotations of the current array a. The traversal of each array r is completed and the process goes to step g-3; Step g-2-2, if g(r) exists In the dictionary, the comparison The value associated with key g(r) in and the current conflict count value conflict; if conflict is still its initial value -1, or If it is less than conflict, update the conflict value to Store the current rotation r in a temporary variable temp; Step g-3: After completing the processing of all rotation forms of the current array a, check the value of the all-conflict flag; if all-conflict is still true, add the array stored in the temporary variable temp to the collection For the array obtained by g(temp), generate all its rotation forms, that is, For each array r in the dictionary, for each such rotation array, The corresponding value in is increased by 1, that is Step h: Complete the list After processing all arrays in, we get the updated set Step 3: Gather Mapping The generation process Step i: Use the set generated in step 2 And the initial parameter K1 to generate the target set and its corresponding mapping Iterating over a collection Each array b in the array b contains m elements, denoted as b=(b1,b2,...,b m ); Step j: For each array b, establish a generative expression to generate a sequence that depends on a variable x and the elements of array b; the terms of the sequence are defined as follows: the first term is x, the second term is Item 3 is By analogy, the mth term is Among them, the definition b is the operation of positive integer a on positive integer b: Step k: For the current array b, iterate for each integer value of the variable x. The value range of the variable x is from 1 to K1. In each iteration, Step k-1: Use the current value x and the current array b to calculate all the items of the sequence according to the generative formula defined in (2), and use these items as elements to form a set Right now Step k-2: At the same time, generate the set Mapping Defined as a set A subset of All but the last term in , specifically, 5. The low-latency method for asymmetric layered coding caching according to claim 4, characterized in that: Transmission I is divided into three sub-processes: in transmission I(i), the server transmits symbols encoded by the type I sub-file to all mirrors, and the mirrors receive and decode, and transmit the decoded symbols at the same time; in transmission I(ii), the server transmits matching symbols encoded by the type I sub-file to all mirrors and isolated users, and the mirrors receive and decode, and transmit the decoded symbols at the same time; then the server transmits unmatched symbols encoded by the type I sub-file to all isolated users, and the mirrors simultaneously transmit symbols encoded by the type III sub-file; in transmission I(iii), the server transmits symbols encoded by the type I sub-file to all isolated users, and the mirrors simultaneously transmit symbols encoded by the type III sub-file; In transmission II, the server transmits the symbol encoded by the type II sub-file. After receiving the symbol, the mirror determines whether it is a redundant symbol. If it is a redundant symbol, it transmits the symbol encoded by the type III sub-file. Otherwise, it forwards the valid symbol to the user. In transmission III, the server does not perform any transmission and transmits the remaining symbols encoded by the type III sub-file in a mirrored manner.
6. The low-latency method for asymmetric layered coding caching according to claim 5, characterized in that: When M2 ≥ N, each user obtains all N files from the central server during the content placement phase, so the central server does not need to transmit any content and the encoding delay T is 0; When M1 ≥ N, the situation is equivalent to M1 = N; the mirror caches all the files of the central server, and the central server does not need any transmission; the sub-files required by each user degenerate into Where k is u (i,j) or u t , accordingly The value is d (i,j) or d t , where i∈[1:K1], j∈[1:K2], t∈[1:K3]; The central server only needs to transmit To meet the needs of isolated users, 7. The low-latency method for asymmetric layered coding caching according to claim 6, characterized in that: The transmission scheme is called Scheme A, and a Scheme B is constructed. Scheme A and Scheme B are mixed by parameters α and β. The specific steps are as follows: In solution B, there is no need to consider the mirror's caching function. The mirror only forwards the received information. Once a symbol is received from the central server, each mirror immediately forwards it to the user, achieving parallel transmission with the central server. In the hybrid scheme, the entire system is divided into two subsystems, A and B, and schemes A and B are adopted respectively; let α, β∈[0,1] be fixed parameters, and each file in the central server is divided into two parts of size αF and (1-α)F bits, located in subsystems A and B respectively; subsystem A also includes the entire cache of the mirror and the size of βM2F bits of each user cache, and subsystem B includes the size of the remaining (1-β)M2F bits of each user cache.