Linear coding caching method and device based on non-semi-sum intersection set and medium
By generating and placing distribution arrays based on non-semissal intersections, the problem of the increase in the number of blocks in coding cache technology with the number of users is solved, and the practicality and flexibility of coding cache technology is improved.
Patent Information
- Application Number
- CN202510673856.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-23
- Publication Date
- 2025-08-19
AI Technical Summary
In the existing coding caching technology, the number of files chunks increases exponentially, sub-exponentially, polynomially or linearly as the number of users increases, resulting in the limitation of the practicality of coding caching technology.
By generating a placement distribution array based on non-half sum intersections, the non-half sum intersections are determined according to the number of users in the network, the element type in the placement distribution array is generated, transmitted to the user side to determine the file block information, and transmitted to the server side to determine the encoding information broadcast by the server.
The practicality and flexibility of coding caching technology are improved, so that the dimensions of placing distribution arrays are associated with the number of users and the number of chunks of files are optimized, and the user cache and server broadcasting process is optimized.
Smart Images

Figure CN120512477A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of information processing technology, and in particular to a linear coding caching method, device and medium based on non-semi-sum intersection sets. Background Art
[0002] In recent years, the proliferation of wireless devices has led to a significant increase in network traffic, resulting in high volatility. This leads to network congestion during peak hours and underutilized network resources during off-peak hours. Caching technology, a promising solution, reduces peak traffic by replicating content in distributed memory during off-peak hours. Caching technologies include code caching.
[0003] In the research on code caching technology in related technologies, many studies are devoted to reducing the number of blocks in the code caching scheme. However, the current code caching technology has the problem that the number of blocks of the file will increase exponentially, sub-exponentially, polynomially or linearly with the increase in the number of users, and thus cannot meet the practical requirements of the code caching technology. Summary of the Invention
[0004] The main purpose of the embodiments of the present application is to provide a linear coding caching method, device and medium based on non-semi-sum intersection sets, aiming to reduce the number of blocks of files in coding caching technology.
[0005] To achieve the above objectives, an embodiment of the present application provides a linear coding caching method based on non-semi-sum intersection sets, comprising the following steps:
[0006] Determining a non-semi-sum intersection set based on the number of users in the network, wherein the non-semi-sum intersection set includes a block group;
[0007] generating a placement distribution array based on the non-semi-sum intersection set, wherein the type of the elements in the placement distribution array is determined by the relationship between the block and the position of the element in the placement distribution array;
[0008] transmitting the placement distribution array to the user end to determine the file block information cached by the user from the server;
[0009] The placement distribution array is transmitted to the server to determine the encoding information broadcast by the server.
[0010] In some embodiments, determining the non-semi-sum intersection set according to the number of users in the network includes:
[0011] Determine the number n of the block groups according to the number of users in the network and the multicast gain relationship;
[0012] Defining a Cartesian product of n sets according to the number n of the block groups and the corresponding n positive integers;
[0013] The block groups are determined by a preset recursive function and the Cartesian product of the n sets, thereby obtaining non-semi-sum intersection sets.
[0014] In some embodiments, generating a placement distribution array based on the non-semi-sum intersection set includes:
[0015] If the difference between the column subscript and the row subscript of the element in the placement distribution array belongs to the block group, then setting the element in the current placement distribution array to a vector according to a preset rule;
[0016] If the difference between the column subscript and the row subscript of the element in the placement distribution array does not belong to the block group, setting the element in the current placement distribution array to a preset value;
[0017] The placement distribution array is generated by using the vector and the preset value.
[0018] To achieve the above objectives, another aspect of the present application provides a linear coding caching method based on non-semi-sum intersection sets, which is applied to a server. The method includes the following steps:
[0019] Obtaining a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array;
[0020] Determine the broadcast coding information from the server to the user in a time slot by placing the same vector in the distribution array;
[0021] The control server broadcasts the broadcast coding information to all users.
[0022] In some embodiments, determining the broadcast coding information from the server to the user in a time slot by placing the same vector in the distribution array includes:
[0023] Finding identical vectors in the placement distribution array;
[0024] Determine block information of a plurality of sub-files requested by the user according to position information of the same vector in the placement distribution array;
[0025] An encoding operation is performed on the block information of the plurality of sub-files to obtain the broadcast encoding information.
[0026] In some embodiments, the control server broadcasts the broadcast coding information to all users, including:
[0027] Determining the total number of broadcast time slots of the server according to the number information of different vectors in the placement distribution array;
[0028] The server is controlled to broadcast the broadcast coding information to all users according to the total number of broadcast time slots.
[0029] To achieve the above-mentioned object, another aspect of the embodiments of the present application provides a linear coding caching method based on non-semi-sum intersection sets, which is applied to a user terminal. The method includes the following steps:
[0030] Obtaining a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array;
[0031] Controlling the user to cache corresponding file block data from the server according to the element type in the placement distribution array;
[0032] Receive broadcast coding information sent by the server;
[0033] Based on the broadcast coding information and the cached file block data, the requested file block data is decoded and obtained.
[0034] In some embodiments, controlling the user to cache corresponding file block data from the server according to the element type in the placement distribution array includes:
[0035] According to the number of rows and columns in the placement distribution array, the element type analysis and caching steps are cyclically performed until all users complete the caching operation of the corresponding file blocks;
[0036] The element type analysis and caching step is to control user k+1 to cache the f+1th block data of all subfiles in the server if the element in the fth row and the kth column in the placement distribution array is a preset value.
[0037] To achieve the above-mentioned purpose, another aspect of an embodiment of the present application provides an electronic device, which includes a memory and a processor, wherein the memory stores a computer program, and the processor implements the above-mentioned method when executing the computer program.
[0038] To achieve the above objectives, another aspect of the embodiments of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program implements the above method when executed by a processor.
[0039] The embodiments of the present application include at least the following beneficial effects:
[0040] The present application provides a linear coding caching method, device, and medium based on non-half-sum intersection sets. The solution determines the non-half-sum intersection set based on the number of users in the network, wherein the non-half-sum intersection set includes a block group; generates a placement distribution array based on the non-half-sum intersection set, wherein the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array; transmits the placement distribution array to the user end to determine the file block information cached by the user from the server; and transmits the placement distribution array to the server end to determine the coding information broadcast by the server. The technical solution of the present application determines the non-half-sum intersection set based on the number of users in the network, so that the dimension of the placement distribution array generated based on the non-half-sum intersection set is associated with the number of users and the number of blocks of the file. This can improve the practicality and flexibility of the coding caching technology in the process of user caching information and the process of server broadcasting information.
[0041] Additional aspects and advantages of the present application will be given in part in the description below, and in part will become obvious from the description below, or will be learned through practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the description of the embodiments in conjunction with the following drawings, in which:
[0043] Figure 1 is a schematic diagram of an abstract network model provided by some embodiments of the present application;
[0044] Figure 2 is a flowchart of a linear coding caching method based on non-semi-sum intersection sets provided by some embodiments of the present application;
[0045] Figure 3 is a flowchart of a linear coding caching method based on non-semi-sum intersection sets applied to a server provided by some embodiments of the present application;
[0046] Figure 4 is a flowchart of a linear coding caching method based on non-semi-sum intersection sets applied to a user terminal provided by some embodiments of the present application;
[0047] Figure 5 is another flow chart of a linear coding caching method based on non-semi-sum intersection sets provided by some embodiments of the present application;
[0048] Figure 6 is a schematic block diagram of a module of a linear coding cache device based on non-semi-sum intersection sets provided by some embodiments of the present application;
[0049] Figure 7 This is a schematic diagram of the hardware structure of a linear coding cache based on non-semi-sum intersection sets provided by some embodiments of the present application. DETAILED DESCRIPTION
[0050] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application is further described in detail below with reference to the accompanying drawings and examples. It should be understood that the reference to "embodiment" in this article means that the specific features, structures or characteristics described in conjunction with the embodiment may be included in at least one embodiment of the present application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment that is mutually exclusive with other embodiments. It is explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the embodiments of the present application. They are merely examples of devices and methods consistent with some aspects of the embodiments of the present application as detailed in the appended claims.
[0051] It will be understood that the terms "first", "second", etc. used in this application may be used herein to describe various concepts, but unless otherwise specified, these concepts are not limited by these terms. These terms are only used to distinguish one concept from another. For example, without departing from the scope of the embodiments of the present application, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the words "if" and "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0052] The terms "at least one", "plurality", "each", "any", etc. used in this application include "at least one", "two" or more, "plurality" or "each", "any" or "any one", "each" or "any one" as used herein.
[0053] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0054] In the following description, specific details such as specific system structures and techniques are provided for purposes of illustration rather than limitation to facilitate a thorough understanding of the embodiments of the present application. However, it will be apparent to those skilled in the art that the present application may be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid obscuring the description of the present application with unnecessary detail.
[0055] In order to make the inventive concept of the present application easy to understand, before explaining the embodiments of the present application in detail, the English abbreviations (terms) / related concepts involved in the embodiments of the present application are first explained. The English abbreviations (terms) / related concepts involved in the embodiments of the present application are subject to the following explanations.
[0056] Placement Delivery Array: Placement Delivery Array (PDA) is a mathematical tool used to characterize coded multicast.
[0057] Encoding cache: Encoding cache is a method that combines encoding technology with caching technology. The encoding cache system usually consists of a server, multiple caching nodes (such as edge servers or user devices), and multiple users. The server has a large content library, and the caching nodes have a certain cache capacity. Before the user requests content, the encoded version of the content is pre-stored in each cache node according to a certain caching strategy. When the user requests content, the server sends data to the user through encoded multicast according to the user's request and the status of the cache node, so that multiple users can obtain the content they need at the same time through a multicast transmission, thereby reducing the transmission bandwidth between the server and the cache node.
[0058] In recent years, with the prevalence of wireless devices, network traffic has grown significantly, driven primarily by multimedia streaming, web browsing, and social networking activities. Furthermore, the high volatility of network traffic leads to network congestion during peak hours and underutilization of network resources during off-peak hours. Caching technology, as a promising solution, reduces traffic during peak hours by leveraging distributed memory to replicate content during off-peak hours. Traditional uncoded caching techniques rely primarily on predicting user demand to develop effective prefetching strategies, thereby achieving "local cache gain," which is closely related to the size of local memory. Coded caching techniques achieve not only local cache gain, but also "global cache gain," which is related to the amount of global memory in the network.
[0059] Codecache technology consists of two phases: the placement phase during low-peak network times and the transmission phase during peak network times. During the placement phase, carefully designing the content of each user's local cache is crucial, given the limited capacity of the user's local cache. This also impacts the efficient transmission during the transmission phase. During the transmission phase, an efficient transmission strategy must be designed based on the content previously stored by the user during the placement phase, ensuring that the encoded signal broadcast by the server can serve as many users as possible.
[0060] Codecache technology has broad application scenarios, including device-to-device networks, hierarchical networks, composite networks, multi-server linear networks, and other network topologies. Researchers are also integrating codecache technology with efficient transmission techniques, such as interference alignment, interference zero forcing, and multi-antenna technology.
[0061] The key metrics for evaluating a centralized codecache solution are: the number of blocks, the ratio of total user cache storage to total server storage (also known as the cache ratio), transmission load, and multicast gain (i.e., the amount of encoded data sent by the server during each time slot can serve multiple users). Codecache solutions strive to achieve flexibility in the cache ratio while minimizing the number of blocks and transmission load and maximizing multicast gain. Within the existing technical framework, numerous studies are dedicated to reducing the number of blocks in codecache solutions.
[0062] However, the number of chunks increases exponentially with the number of users, posing a challenge in practical applications due to limited file sizes. Although theoretical research in information theory typically assumes very large file sizes, with no limit on the number of chunks, in practice, file sizes cannot be infinite. Therefore, for files of limited size, designing a centralized encoding cache solution that reduces the number of chunks is of great research significance.
[0063] To effectively reduce the number of blocks, related art studies code cache solutions using a combination of placement delivery arrays (PDAs). Consequently, many studies have also been conducted based on the PDA concept to reduce the number of blocks in code cache solutions.
[0064] Although there are some coding cache solutions in the related art with flexible user parameters and cache ratio ranges, and the transmission load is relatively low, these solutions have not yet achieved a fundamental breakthrough in the number of blocks, and still grow exponentially or sub-exponentially with the number of users. Of course, there are also some coding cache solutions with relatively low block numbers, whose block numbers grow polynomially or linearly with the number of users. However, it is worth noting that these solutions are relatively special in terms of the number of users or cache ratio, or these solutions require an extremely high cache ratio, and the ratio approaches 1 as the number of users increases.
[0065] In view of this, the present application proposes a linear coding caching method, device and medium based on non-half-sum intersection sets. In an embodiment of the present application, the non-half-sum intersection set is determined according to the number of users in the network, wherein the non-half-sum intersection set includes block groups; a placement distribution array is generated based on the non-half-sum intersection set, wherein the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array; the placement distribution array is transmitted to the user end to determine the file block information cached by the user from the server; the placement distribution array is transmitted to the server end to determine the coding information broadcast by the server. The technical solution of the present application determines the non-half-sum intersection set by the number of users in the network, so that the dimension of the placement distribution array generated according to the non-half-sum intersection set is associated with the number of users and the number of blocks of the file. This can improve the practicality and flexibility of the coding caching technology in the process of user caching information and the process of server broadcasting information.
[0066] The linear coding caching method based on non-semi-sum intersection sets provided in the embodiments of the present application relates to the field of information processing technology and can be applied to the electronic device provided in the present application. The electronic device can be a terminal or a server.
[0067] In some embodiments, the terminal may be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a smart watch, a car terminal, etc., but is not limited thereto.
[0068] The server side can be configured as an independent physical server, or as a server cluster or distributed system consisting of multiple physical servers. It can also be configured as a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. The server can also be a node server in the blockchain network.
[0069] This application can be used in many general or special computer system environments or configurations. For example: personal computers, server computers, handheld or portable devices, tablet devices, multi-processor systems, microprocessor-based systems, set-top boxes, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, and so on. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. This application can also be practiced in a distributed computing environment, where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.
[0070] Before describing the implementation steps of a linear coding cache method based on non-half and intersection sets provided by an embodiment of this application, an abstract network model in the implementation environment of the embodiment of this application will be introduced first. Please refer to Figure 1 , Figure 1 is a schematic diagram of an abstract network model provided by some embodiments of this application. As Figure 1 shown. The server includes N files of the same size, denoted as This server connects K users through a noiseless shared link, denoted as In this invention, the th user is called user k. All users have a memory (also called user cache) that can store M files locally, where the number of files that each cache can store is less than the storage quantity of the server, that is, M < N. In this application, the encoding cache schemes discussed by default all satisfy this prerequisite condition unless otherwise stated.
[0071] A centralized encoding cache scheme is mainly divided into two parts: the placement stage during the low-peak time of network usage and the transmission stage during the high-peak time of network usage. The specific description is as follows:
[0072] Placement stage: Without knowing the user requests, the server divides each file into F equally sized sub-files, which are represented by a set here, that is where the variable F is called the number of chunks. Each user caches several sub-file chunks from the server into its own local cache, and the cache content of user k is represented as
[0073] Transmission stage: Each user randomly requests a file from the central server, and the file labels requested by all users are represented by a vector d = (d1, d2,..., d
[0073] , K , ) ∈ [N]K To indicate that the user The requested file is After receiving the requests from all users, the server broadcasts the encoded signal of the requested file to all users, so that each user can decode the requested file based on the received broadcast signal and the locally stored content.
[0074] This application uses a placement distribution array (PDA) to describe the designed centralized coding cache scheme. Using a placement distribution array to describe a centralized coding cache scheme has the following beneficial effects: First, a transmission scheme in a physical network topology is mathematically abstracted into a two-dimensional array, which reduces a lot of cumbersome text describing the scheme, and clearly explains the two-stage process of placement and transmission of a centralized coding cache scheme at one time through the array. Second, using a placement distribution array to describe the coding cache scheme is conducive to using some new mathematical tools to further design new coding transmission schemes. In this application, a new combination structure is proposed to implement a centralized coding cache scheme.
[0075] The following describes in detail the implementation steps of a linear coding caching method based on non-semi-sum intersection sets provided by an embodiment of the present application with reference to the accompanying drawings.
[0076] Please refer to Figure 2 , Figure 2 Flowcharts of linear coding caching methods based on non-semi-sum intersection sets are provided for some embodiments of the present application. It should be noted that the steps shown in the flowcharts of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowcharts, in some cases, the steps shown or described can be performed in a different order than herein.
[0077] The method of the embodiment of the present application includes the following steps:
[0078] Step 201: determining a non-semi-sum intersection set according to the number of users in the network, where the non-semi-sum intersection set includes a block group;
[0079] Step 202: Generate a placement distribution array based on the non-semi-sum intersection set, wherein the type of the element in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array;
[0080] Step 203: Transmitting the placement distribution array to the user end to determine the file block information cached by the user from the server;
[0081] Step 204: Transmit the placement distribution array to the server to determine the encoding information broadcast by the server.
[0082] Steps 201 to 204 shown in the embodiment of the present application can determine the non-half-sum intersection set based on the number of users in the network, so that the dimensions of the placement distribution array generated based on the non-half-sum intersection set are associated with the number of users and the number of blocks of the file. This can improve the practicality and flexibility of the coding cache technology during the user caching information process and the server broadcasting information process.
[0083] The specific implementation methods of the above steps are introduced below.
[0084] In step 201, a non-semi-sum intersection set is determined according to the number of users in the network, where the non-semi-sum intersection set includes a block group.
[0085] The number of users in the network refers to the number of users connected to the server through a noiseless shared link.
[0086] A non-half-sum intersection set is a set that, for any positive odd number v, has a non-half-sum intersection set. The following conditions must be met at the same time:
[0087] 1. Collection Contains b elements, each of which contains g rings The ring is a finite commutative integer ring.
[0088] 2. Collection There is no intersection between any two elements in .
[0089] 3. For any one in the set The elements of The sum of any two distinct integers in D divided by 2 does not appear in the set middle.
[0090] In a non-semi-sum intersection set, each element D is called a block.
[0091] In some embodiments, the non-semi-sum intersection set is determined based on the number of users in the network, which can be determined by determining the number of block groups n based on the number of users in the network and the multicast gain relationship; defining the Cartesian product of n sets based on the number of block groups n and the corresponding n positive integers; determining the block groups through a preset recursive function and the Cartesian product of the n sets, and then obtaining the non-semi-sum intersection set.
[0092] Optionally, non-semi-sum intersection sets The generation includes:
[0093] Given any positive integer n and n positive integers m1, m2, ..., m n , define the set That is, the Cartesian product of n sets, and when 1≤i≤n, define the following recursive function:
[0094]
[0095] Based on this recursive function, when a positive odd number For any vector There are collections:
[0096]
[0097] Thus we can get a non-semi-sum intersection set in
[0098] For example, if the number of users in the network is 15, that is, K=v=15, then the non-semi-sum intersection set can be determined based on the number of users in the network being 15. Since the number of users in the network is 15, the multicast gain g = 2 n ≤15, the number of blocks can be set to 2 (according to the following analysis, the block group can be 1, 2 or 3), that is, set n = 2, m1 = 2 and m2 = 1. According to the above method, the set Expressed as:
[0099]
[0100] By recursive calculation, we can get f(1)=m1=2, f(2)=m2(2m1+1)=5, thus obtaining the following two sets (two block groups):
[0101]
[0102] Therefore, we get and
[0103] Among them, d() means that the block group in the brackets is in the set The position in.
[0104] It should be understood that in this example, K=v=15, and the multicast gain g=2 n ≤15, so the value range of n can be 1, 2, 3. And because the above definition requires the solution to satisfy the odd number Right now When n = 1, there is only one variable m, but m can take many values. When n = 2, there are two variables m, denoted by m1 and m2. When n = 3, there are three variables m, denoted by m1, m2, and m3. As long as the conditions are met, the value of m can be arbitrary. For example, the mapping of elements in a set, -4 maps to 11 and -6 maps to 9, because the number corresponding to -4 on the finite integer ring is 11, which is obtained by (-4 + 15) = 11, and the number corresponding to -6 on the ring is 9, which is obtained by (-6 + 15) = 9.
[0105] The embodiment of the present application determines the non-half-sum intersection set by the number of users in the network, and can generate a placement distribution array based on the non-half-sum intersection set for subsequent centralized coding caching.
[0106] In step 202 , a placement distribution array is generated based on the non-semi-sum intersection set, wherein the type of elements in the placement distribution array is determined by the relationship between the block and the position of the element in the placement distribution array.
[0107] A placement distribution array may be generated according to the non-half-sum intersection set determined in step 201 .
[0108] In some embodiments, a placement distribution array is generated based on a non-semi-sum intersection set. If the difference between the column subscript and the row subscript of an element in the placement distribution array belongs to a block group, the element in the current placement distribution array is set to a vector according to a preset rule; if the difference between the column subscript and the row subscript of an element in the placement distribution array does not belong to a block group, the element in the current placement distribution array is set to a preset value; and the placement distribution array is generated using the vector and the preset value.
[0109] Optionally, after obtaining a non-half-sum intersection set, a placement distribution array can be obtained according to the following function
[0110]
[0111] in, For block groups In the collection The position in; k represents the user, f represents the block of the file, and the row and column labels of the matrix P belong to That is, the 0th row in the matrix P represents the first block of the file, and the 0th column in the matrix P represents user 1.
[0112] For any positive odd number v ≥ 3, a centralized encoding cache solution can be obtained through the above steps. The solution parameters are: number of users K = v, number of blocks F = K = v, and cache ratio: Transmission load: Multicast gain: g = 2 n ; The total amount of transmission is: The explanation of n and m may refer to the explanation in step 201 .
[0113] For example, after obtaining the non-semi-sum intersection set and According to the above function p f,k , get the placement distribution array:
[0114]
[0115] The above PDA has a total of 15 rows and 15 columns, each column has 7 *, and there are 30 different vectors in the entire array (matrix), so the total transmission amount is 30 time slots.
[0116] The embodiment of the present application generates a placement distribution array through a non-semi-sum intersection set, and can determine the file block information cached by the user from the server and the encoding information broadcast by the server through the placement distribution array.
[0117] In step 203, the placement distribution array is transmitted to the user end to determine the file block information cached by the user from the server.
[0118] The placement distribution array may be transmitted to the user end, and file block information cached from the server by the user during an off-peak period may be determined based on the elements in the placement distribution array.
[0119] Please refer to Figure 4 , Figure 4 This is a flowchart of a linear coding caching method based on non-semi-sum intersection sets applied to a user terminal, provided in some embodiments of the present application.
[0120] The linear coding caching method based on non-semi-sum intersection sets applied to the user end includes the following steps:
[0121] Step 401: Obtain a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and the type of an element in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array;
[0122] Step 402: Control the user to cache the corresponding file block data from the server according to the element type in the placement distribution array;
[0123] Step 403: Receive broadcast coding information sent by the server;
[0124] Step 404: Based on the broadcast coding information and the cached file block data, decode to obtain the requested file block data.
[0125] After the user obtains the placement distribution array generated according to step 202, the user can be controlled to cache corresponding file block data from the server according to the element type in the placement distribution array.
[0126] In some embodiments, controlling users to cache corresponding file block data from the server based on the element type in the placement distribution array may include looping through element type analysis and caching steps based on the number of rows and columns in the placement distribution array until all users complete the caching operation of the corresponding file blocks.
[0127] The element type analysis and caching step is as follows: if the element at the fth row and the kth column in the distribution array is a preset value, the f+1th block data of all sub-files in the user k+1 cache server is controlled.
[0128] For details, please refer to the attached Figure 5 , Figure 5 is another flow chart of a linear coding caching method based on non-semi-sum intersection sets provided by some embodiments of the present application. Figure 5 The flowchart shows a process of controlling the user to cache the corresponding file block data from the server according to the element type in the placement distribution array.
[0129] During the placement phase, the placement distribution array P and all files W are obtained, and each file W is split into F subfiles. Next, k = 0 and f = 0 are initialized. When k is less than K (the total number of users) and f is less than F, a check is performed to determine whether the value in the fth row, kth column of the array P is *. If so, user k+1 is instructed to cache the f+1th block of data for all subfiles on the server. Then, k and f are incremented by 1, and the cycle continues until the set judgment condition is no longer met. This allows users to obtain information about file blocks cached from the server during off-peak periods.
[0130] For example, each file is divided into 15 equal parts by the server (F=K=15), and these sub-files are numbered, and we can get:
[0131]
[0132] N means that the server contains N files of the same size.
[0133] According to the process of the placement phase, the specific file blocks cached by each user during the off-peak period can be obtained as follows:
[0134]
[0135] Afterwards, the server receives the broadcast encoding information and decodes the requested file block data based on the broadcast encoding information and the cached file block data. This section will be described in detail after the linear encoding caching method applied to the server.
[0136] In step 204, the placement distribution array is transmitted to the server to determine the encoding information broadcast by the server.
[0137] The placement distribution array may be transmitted to the server side, and the encoding information broadcast by the server may be determined according to the elements in the placement distribution array.
[0138] That is, each user randomly requests a file from the server. After the server receives the requests from all users, it broadcasts the encoded signal of the requested file to all users, so that each user can decode the requested file based on the received broadcast signal and the locally stored content.
[0139] Please refer to Figure 3 , Figure 3 This is a flowchart of a linear coding caching method based on non-semi-sum intersection sets applied to a server side, provided in some embodiments of the present application.
[0140] The linear coding caching method based on non-semi-sum intersection sets applied to the server includes the following steps:
[0141] Step 301: Obtain a placement distribution array. The placement distribution array is generated by non-semi-sum intersection sets, and the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array.
[0142] Step 302: Determine the broadcast coding information from the server to the user in a time slot by placing the same vector in the distribution array;
[0143] Step 303: The control server broadcasts the broadcast coding information to all users.
[0144] After the server obtains the placement distribution array generated according to step 202, it can determine the broadcast coding information of the server to the user in a time slot according to the same vector in the placement distribution array.
[0145] The placement distribution array has multiple identical and different vectors, wherein the number of different vectors can determine the total number of time slots for the server to broadcast coded information to the user, while the identical vector can determine the broadcast coded information from the server to the user in one time slot.
[0146] In some embodiments, the broadcast coding information from the server to the user in a time slot is determined by placing the same vector in the distribution array. This can be done by searching for the same vector in the distribution array, determining the block information of the sub-files requested by multiple users based on the position information of the same vector in the distribution array, and performing an encoding operation on the block information of the multiple sub-files to obtain the broadcast coding information.
[0147] For example, it is assumed that the vector d=(d1, d2, ..., d 15 ), in each slot (time slot), the server broadcasts the encoded signal. Since the matrix P (placement distribution array) has 30 different vectors, 30 slots are required to broadcast the encoded signal to all users.
[0148] For example, from the placement distribution array P mentioned above, we can find four positions filled with the same vector (0, 1). The row and column labels corresponding to these four positions are f1=2, k1=13; f2=3, k2=12; f3=12, k3=3; f4=13, k4=2. At the same time, it corresponds to user 14 needing the 3rd sub-file of the requested file, user 13 needing the 4th sub-file of the requested file, user 4 needing the 13th sub-file of the requested file, and user 3 needing the 14th sub-file of the requested file. At the same time, the file identifiers requested by these four users are d 14 d 13 , d4 and d3.
[0149] Encode the sub-file block information of these four requests.
[0150] For example, an XOR operation may be used to encode and obtain broadcast coding information.
[0151] Therefore, during one of the time slots, the signal broadcast by the server to all users is:
[0152]
[0153] Afterwards, the control server broadcasts the broadcast coding information to all users.
[0154] Optionally, the total number of broadcast time slots of the server may be determined according to the number of different vectors in the placement distribution array, and the server may be controlled to broadcast the broadcast coding information to all users according to the total number of broadcast time slots.
[0155] For example, if there are 30 different vectors in the placement distribution array, the total number of broadcast time slots of the server is 30; if there are 50 different vectors in the placement distribution array, the total number of broadcast time slots of the server is 50.
[0156] After the server broadcasts the broadcast coding information to all users, for example, after user 14 receives the coded signal sent by the server, since the 4th block sub-file, the 14th block sub-file and the 13th block sub-file of all files are stored in its local memory in advance, the sub-file in the coded signal Subfile and subfiles All are in the local cache of user 14. By decoding, user 14 can decode the third block of the file he requested, that is,
[0157] The decoding process example is as follows:
[0158] Assuming sub-file blocks 0001, sub-file block 0010, sub-file block 0011, sub-file block 0100. When the server receives the request vector d, it encodes the four 01 strings (XOR operation), and the process is as follows: The initial test state is: 0000.
[0159]
[0160] After receiving the broadcast signal 0100 sent by the server, user 14 has already cached it in the off-peak period in his local cache. and Therefore, the requested file block can be decoded based on the XOR operation
[0161] Similarly, after receiving the encoded signal, user 13 has stored the 3rd sub-file of all files on the server, the 14th sub-file of all files, and the 13th sub-file of all files in the local memory during the off-peak period of the network. Therefore, the sub-file in the decoded signal is stored in the local cache of user 13. Subfile and subfiles Therefore, user 13 can obtain the fourth sub-file block of the requested file by decoding, that is, sub-file
[0162] After user 3 receives the coded signal, since the local cache stores the 3rd, 4th and 13th sub-files of all files, the sub-files in the coded signal Subfile and subfiles During the off-peak period of the network, it is stored in the local cache of user 3, so user 3 can obtain the 14th block of the requested file, that is, the sub-file
[0163] Similarly, since user 4 has already stored the 3rd, 4th and 14th sub-files of all files in the placement phase, the sub-files in the coded signal are Subfile and subfiles After receiving the encoded signal broadcast by the server, user 4 can easily decode the 13th block of the requested file, i.e., the sub-file, based on the stored content in the local cache.
[0164] After 30 transmission gaps in the transmission phase, all 15 users can decode the sub-file blocks of the requested file based on the received coded signals and their own local cache contents, thereby obtaining the complete sub-file.
[0165] In this example, the transmission load R = m1m2 = 2. The multicast gain g = 2 2 =4.
[0166] The above example is given in which the number of users K is an odd number. The embodiment provided in this application can also be used in the case where the number of users is an even number. The example in which the number of users is an even number is introduced below.
[0167] When the number of users K is an even number, it can be represented by v'. Then the centralized coding cache solution based on this user can be implemented as follows:
[0168] First, based on the steps described above, a placement distribution array of size (v′+1)×(v′+1) is generated. These v'+1 columns can be represented as v' users and one virtual user.
[0169] The centralized coding cache scheme with v'+1 users in the placement phase is the same as the above odd number of users. During the transmission phase, the column of virtual users can be omitted when traversing the entire array. This method does not affect the v' users in the actual transmission.
[0170] For example, when the number of users is K=14, the parameters n=2, m1=2, and m2=1 can be set. According to the above-described method, a placement distribution array P with 15 rows and 15 columns can be obtained.
[0171]
[0172] During the placement phase, since the number of users is an even number (14), there is a virtual user in the array. Assuming the virtual user is in the last column, the specific file block information cached by these 14 users during the off-peak phase is:
[0173]
[0174] In the transmission phase, assuming that the request vector d=(d1,d2,...,d 14 (Note that there are only 14 users requesting the file.) For vector (0, 1), the row and column indices for these four positions are: f1 = 2, k1 = 13; f2 = 3, k2 = 12; f3 = 12, k3 = 3; and f4 = 13, k4 = 2. You can see that these correspond to user 14, user 13, user 4, and user 3, respectively. There is no corresponding virtual user for the last one, so the server still broadcasts the same encoded signal.
[0175] The above is an introduction to the linear coding caching method based on non-semi-sum intersection sets provided in the embodiments of the present application.
[0176] The following describes in detail an implementation of a linear coding cache device based on non-semi-sum intersection sets provided by an embodiment of the present application with reference to the accompanying drawings.
[0177] Regarding the linear coding cache method based on non-half-sum intersection sets provided in the above embodiment, the embodiment of the present application further provides a linear coding cache device based on non-half-sum intersection sets, for implementing the above method, such as Figure 6 As shown, Figure 6 This is a schematic block diagram of a linear coding cache device 600 based on a non-half-sum intersection set according to an embodiment of the present application. The linear coding cache device 600 based on a non-half-sum intersection set includes:
[0178] A determination module 601 is configured to determine a non-semi-sum intersection set according to the number of users in the network, wherein the non-semi-sum intersection set includes a block group;
[0179] A generating module 602 is configured to generate a placement distribution array based on the non-semi-sum intersection set, wherein the type of an element in the placement distribution array is determined by a relationship between a block group and a position of the element in the placement distribution array;
[0180] A first transmission module 603 is configured to transmit the placement distribution array to the user end to determine the file block information cached by the user from the server;
[0181] The second transmission module 604 is configured to transmit the placement distribution array to the server to determine the encoding information broadcast by the server.
[0182] It can be understood that the contents of the above-mentioned linear coding cache method embodiment based on non-semi-sum intersection sets are all applicable to the embodiment of this device. The functions specifically implemented by the embodiment of this device are the same as those of the above-mentioned method embodiment, and the beneficial effects achieved are also the same as those achieved by the above-mentioned method embodiment.
[0183] Regarding the linear coding caching method based on non-half-sum intersection sets applied to the server provided in the above embodiment, the embodiment of the present application further provides a linear coding caching device based on non-half-sum intersection sets applied to the server, for implementing the above method. The linear coding caching device based on non-half-sum intersection sets applied to the server includes:
[0184] an acquisition module, configured to acquire a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and a type of an element in the placement distribution array is determined by a relationship between a block group and a position of the element in the placement distribution array;
[0185] a determination module, configured to determine the broadcast coding information from the server to the user in a time slot by placing the same vector in the distribution array;
[0186] The control module is used to control the server to broadcast the broadcast coding information to all users.
[0187] It can be understood that the contents of the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the server side are all applicable to the embodiment of the present device. The functions specifically implemented by the present device embodiment are the same as those of the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the server side, and the beneficial effects achieved are also the same as those achieved by the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the server side.
[0188] Regarding the linear coding caching method based on non-half-sum intersection sets applied to a user terminal provided in the above embodiment, an embodiment of the present application further provides a linear coding caching device based on non-half-sum intersection sets applied to a user terminal, for implementing the above method. The linear coding caching device based on non-half-sum intersection sets applied to a user terminal includes:
[0189] an acquisition module, configured to acquire a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and a type of an element in the placement distribution array is determined by a relationship between a block group and a position of the element in the placement distribution array;
[0190] A control module, configured to control the user to cache corresponding file block data from the server according to the element type placed in the distribution array;
[0191] A receiving module, used for receiving broadcast coding information sent by the server;
[0192] The decoding module is used to decode and obtain the requested file block data based on the broadcast coding information and the cached file block data.
[0193] It can be understood that the contents of the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the user end are all applicable to the embodiment of the present device. The functions specifically implemented by the present device embodiment are the same as those of the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the user end, and the beneficial effects achieved are also the same as those achieved by the above-mentioned embodiment of the linear coding caching method based on non-half-sum intersection sets applied to the user end.
[0194] Reference Figure 7 The embodiment of the present application further provides an electronic device 700, which includes a memory 701, one or more processors 702 ( Figure 7Only one is shown) and a computer program stored in memory 701 and executable by processor 702. Memory 701 is used to store software programs and units. Processor 702 executes the software programs and units stored in memory 701 to perform various functional applications and data processing to obtain resources corresponding to the aforementioned preset events. Optionally, processor 702 implements the aforementioned linear coding caching method based on non-half-sum intersection sets, the linear coding caching method based on non-half-sum intersection sets applied to the server, or the linear coding caching method based on non-half-sum intersection sets applied to the user by executing the computer program stored in memory 701.
[0195] The memory 701 is a non-transitory computer-readable medium that can be used to store non-transitory software programs and non-transitory computer executable programs. In addition, the memory 701 may include a high-speed random access memory and may also include a non-transitory memory, such as at least one disk storage device, a flash memory device, or other non-transitory solid-state storage device. In some embodiments, the memory 701 may optionally include a memory remotely located relative to the processor, and these remote memories may be connected to the processor 702 via a network.
[0196] It can be understood that the contents of the above method embodiments are all applicable to the electronic device embodiment. The functions specifically implemented by the electronic device embodiment are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.
[0197] An embodiment of the present application also provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the above-mentioned linear coding caching method based on non-half-sum intersection sets, the linear coding caching method based on non-half-sum intersection sets applied to the server side, or the linear coding caching method based on non-half-sum intersection sets applied to the user side.
[0198] It can be understood that the contents of the above method embodiments are all applicable to the present storage medium embodiment, the functions specifically implemented by the present storage medium embodiment are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.
[0199] An embodiment of the present application also provides a computer program product, which includes a computer program. When the computer program is executed by one or more processors, it can implement the above-mentioned linear coding caching method based on non-half-sum intersection sets, the linear coding caching method based on non-half-sum intersection sets applied to the server side, or the linear coding caching method based on non-half-sum intersection sets applied to the user side.
[0200] It can be understood that the contents of the above method embodiments are all applicable to this computer program product, the functions specifically implemented by this computer program product embodiment are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.
[0201] The linear coding cache method, device, electronic device, medium and computer program product based on non-semi-sum intersection sets provided in the embodiments of the present application can reduce the number of blocks in the centralized coding cache scheme and improve the practicality and flexibility of the coding cache scheme. Specifically, the embodiments of the present application provide a centralized coding cache scheme in which the number of blocks can be equal to the number of users. The linear coding cache scheme in which the number of blocks is equal to the number of users can effectively improve the efficiency of the cache, reduce bandwidth consumption, improve fault tolerance and reliability, reduce costs, etc., and can significantly optimize the performance of large-scale data distribution and storage systems. It is not only crucial to improving user experience (such as video smoothness, fast loading speed, etc.), but also can effectively reduce system resource waste and improve the availability and fault tolerance of the overall system. The embodiments of the present application also provide a new combination structure, namely a non-semi-sum intersection set, which obtains a type of centralized coding cache scheme by combining the classic combination structure Latin square.
[0202] The embodiments described in the embodiments of this application are intended to more clearly illustrate the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Those skilled in the art will appreciate that with the evolution of technology and the emergence of new application scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0203] Although specific embodiments are described herein, those skilled in the art will recognize that many other modifications or alternative embodiments are also within the scope of the present disclosure. For example, any of the functions and / or processing capabilities described in conjunction with a particular device or component may be performed by any other device or component. In addition, although various exemplary implementations and architectures have been described in accordance with the embodiments of the present disclosure, those skilled in the art will recognize that many other modifications to the exemplary implementations and architectures described herein are also within the scope of the present disclosure.
[0204] Some aspects of the present disclosure have been described above with reference to the block diagrams and flow charts of the systems, methods, systems and / or computer program products according to the exemplary embodiments. It should be understood that the combination of one or more blocks in the block diagram and the flow chart and the blocks in the block diagram and the flow chart can be realized by executing computer executable program instructions respectively. Equally, according to some embodiments, some blocks in the block diagram and the flow chart may not need to be executed in the order shown, or may not need to be executed in full. In addition, additional components and / or operations beyond those components and / or operations shown in the blocks in the block diagram and the flow chart may be present in certain embodiments.
[0205] Therefore, the blocks in the block diagrams and flow charts support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions, and program instruction means for performing the specified functions. It should also be understood that each block in the block diagrams and flow charts, and combinations of blocks in the block diagrams and flow charts, can be implemented by a dedicated hardware computer system that performs the specific functions, elements, or steps, or a combination of dedicated hardware and computer instructions.
[0206] The program modules, applications, etc. described herein may include one or more software components, including, for example, software objects, methods, data structures, etc. Each such software component may include computer-executable instructions that, in response to execution, cause at least a portion of the functionality described herein (e.g., one or more operations of the illustrative methods described herein) to be performed.
[0207] Software component can be encoded with any one in various programming languages.A kind of exemplary programming language can be low-level programming language, such as the assembly language associated with specific hardware architecture and / or operating system platform.Comprise that the software component of assembly language instruction may need to be converted to executable machine code by assembler before being executed by hardware architecture and / or platform.Another exemplary programming language can be a more advanced programming language, and it can be transplanted across multiple architectures.Comprise that the software component of more advanced programming language may need to be converted to intermediate representation by interpreter or compiler before execution.Other examples of programming language include but are not limited to macro language, shell or command language, job control language, script language, database query or search language or report writing language.In one or more exemplary embodiments, the software component that comprises the instruction of one in the above-mentioned programming language example can be directly executed by operating system or other software component, without first being converted into another form.
[0208] Software components can be stored as files or other data storage structures. Software components of similar types or related functions can be stored together, such as in a specific directory, folder, or library. Software components can be static (e.g., preset or fixed) or dynamic (e.g., created or modified at execution time).
[0209] The embodiments of the present application are described in detail above in conjunction with the accompanying drawings, but the present application is not limited to the above embodiments. Various changes can be made within the scope of knowledge possessed by ordinary technicians in the relevant technical field without departing from the purpose of the present application.
Claims
1. A linear coding caching method based on non-semi-sum intersection sets, characterized in that: The method comprises the following steps: Determining a non-semi-sum intersection set based on the number of users in the network, wherein the non-semi-sum intersection set includes a block group; generating a placement distribution array based on the non-semi-sum intersection set, wherein the type of the elements in the placement distribution array is determined by the relationship between the block and the position of the element in the placement distribution array; transmitting the placement distribution array to the user end to determine the file block information cached by the user from the server; The placement distribution array is transmitted to the server to determine the encoding information broadcast by the server.
2. The linear coding caching method based on non-semi-sum intersection sets according to claim 1, characterized in that: Determining the non-semi-sum intersection set according to the number of users in the network includes: Determine the number n of the block groups according to the number of users in the network and the multicast gain relationship; Defining a Cartesian product of n sets according to the number n of the block groups and the corresponding n positive integers; The block groups are determined by a preset recursive function and the Cartesian product of the n sets, thereby obtaining non-semi-sum intersection sets.
3. The linear coding caching method based on non-semi-sum intersection sets according to claim 1, characterized in that: The generating of a placement distribution array based on the non-semi-sum intersection set comprises: If the difference between the column subscript and the row subscript of the element in the placement distribution array belongs to the block group, then setting the element in the current placement distribution array to a vector according to a preset rule; If the difference between the column subscript and the row subscript of the element in the placement distribution array does not belong to the block group, setting the element in the current placement distribution array to a preset value; The placement distribution array is generated by using the vector and the preset value.
4. A linear coding caching method based on non-semi-sum intersection sets, characterized in that: Applied to the server side, the method includes the following steps: Obtaining a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array; Determine the broadcast coding information from the server to the user in a time slot by placing the same vector in the distribution array; The control server broadcasts the broadcast coding information to all users.
5. The linear coding caching method based on non-semi-sum intersection sets according to claim 4, characterized in that: The determining, by placing the same vector in the distribution array, broadcast coding information from the server to the user in a time slot, comprises: Finding identical vectors in the placement distribution array; Determine block information of a plurality of sub-files requested by the user according to position information of the same vector in the placement distribution array; An encoding operation is performed on the block information of the plurality of sub-files to obtain the broadcast encoding information.
6. The linear coding caching method based on non-semi-sum intersection sets according to claim 4, characterized in that: The control server broadcasts the broadcast coding information to all users, including: Determining the total number of broadcast time slots of the server according to the number information of different vectors in the placement distribution array; The server is controlled to broadcast the broadcast coding information to all users according to the total number of broadcast time slots.
7. A linear coding caching method based on non-semi-sum intersection sets, characterized in that: Applied to a user terminal, the method comprises the following steps: Obtaining a placement distribution array, wherein the placement distribution array is generated by non-semi-sum intersection sets, and the type of elements in the placement distribution array is determined by the relationship between the block group and the position of the element in the placement distribution array; Controlling the user to cache corresponding file block data from the server according to the element type in the placement distribution array; Receiving broadcast coding information sent by the server; Based on the broadcast coding information and the cached file block data, the requested file block data is decoded and obtained.
8. The linear coding caching method based on non-semi-sum intersection sets according to claim 7, characterized in that: The step of controlling the user to cache corresponding file block data from the server according to the element type in the placement distribution array includes: According to the number of rows and columns in the placement distribution array, the element type analysis and caching steps are cyclically performed until all users complete the caching operation of the corresponding file blocks; The element type analysis and caching step is to control user k+1 to cache the f+1th block data of all subfiles in the server if the element in the fth row and the kth column in the placement distribution array is a preset value.
9. An electronic device, characterized in that: The electronic device includes a memory and a processor, the memory stores a computer program, and the processor implements the linear coding caching method based on non-semi-sum intersection sets as described in any one of claims 1 to 3, 4 to 6, or 7 to 8 when executing the computer program.
10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the linear coding caching method based on non-semi-sum intersection sets according to any one of claims 1 to 3, 4 to 6, or 7 to 8.