Edge server, program, and information processing method

The edge server optimizes data transfer by distributing and relocating user data chunks based on communication parameters and access frequency, addressing the challenge of real-time data transfer between edge servers for improved service continuity.

JP7785826B2Active Publication Date: 2025-12-15SOFTBANK CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024025185
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-02-22
Publication Date
2025-12-15
Estimated Expiration
2044-02-22

AI Technical Summary

Technical Problem

Existing technologies face challenges in efficiently transferring large amounts of user data, such as those required for autonomous driving services, between edge servers in real-time due to the significant data sizes involved, which complicates seamless service continuity as users move between different base stations.

Method used

An edge server distributes user data into multiple chunks and stores them across multiple storage locations based on communication parameters like physical distance and metric values, periodically relocates chunks based on access frequency, and predicts future server usage to optimize data transfer and storage for improved real-time performance.

Benefits of technology

This approach enhances real-time performance and load distribution by strategically managing data chunks across storage locations, ensuring optimal communication quality and reducing the load on storage capacities, thereby maintaining service continuity as users move.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007785826000009
    Figure 0007785826000009
  • Figure 0007785826000010
    Figure 0007785826000010
  • Figure 0007785826000011
    Figure 0007785826000011
Patent Text Reader

Abstract

To provide an edge server, a program that causes a computer to function as the edge server, and a data processing method executed by the edge server.SOLUTION: In a system 10, an edge server 100 includes: an acquisition unit that acquires multiple chunks 211 to 213 obtained by dividing user data corresponding to UE (User Equipment) 200 that uses the edge server; a selection unit that selects multiple target storage bases at which the multiple chunks are distributed and placed from multiple storage bases based on parameters related to communication between the edge server and each of AZs (Availability Zones) 300 which are the multiple storage bases; and a transmission unit that transmits the multiple chunks to the multiple target storage bases so that the multiple chunks are distributed and placed at the multiple target storage bases selected by the selection unit.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an edge server, a program, and an information processing method. [Background technology]

[0002] Patent Document 1 describes a system that performs distributed processing of file data in chunk units. [Prior art document] [Patent documents] [Patent Document 1] JP 2012-074039 A Summary of the Invention [Means for solving the problem]

[0003] According to one embodiment of the present invention, there is provided an edge server. The edge server may include an acquisition unit that acquires multiple chunks obtained by dividing user data corresponding to a user terminal using the edge server. The edge server may include a selection unit that selects multiple target storage locations from the multiple storage locations as targets for distributing the multiple chunks based on parameters related to communication between the edge server and each of the multiple storage locations. The edge server may include a transmission unit that transmits the multiple chunks to the multiple target storage locations selected by the selection unit so that the multiple chunks are distributed and allocated to the multiple target storage locations.

[0004] In the edge server, the selection unit may select the target storage locations from the plurality of storage locations by giving priority to a storage location whose parameter indicates better communication with the edge server. The selection unit may select the target storage locations from the plurality of storage locations by giving priority to a storage location whose physical distance to the edge server is shorter. The selection unit may select the target storage locations to distribute the chunks from the plurality of storage locations by giving priority to a storage location whose metric value between the edge server and the plurality of storage locations is lower.

[0005] In any of the edge servers, the acquisition unit may acquire multiple chunks for each of the multiple user data, and the transmission unit may transmit the multiple chunks to the multiple target storage locations selected by the selection unit for each of the multiple user data so that the multiple chunks are distributed and allocated to the multiple target storage locations, and the edge server may further include a frequency management unit that manages an access frequency to the multiple user data by the user terminal in a situation where the multiple chunks of each of the multiple user data are distributed and allocated to the multiple target storage locations, and a relocation control unit that controls changing the allocation of the multiple chunks at the multiple target storage locations based on the access frequency of the multiple user data. The relocation control unit may control to move the multiple chunks of user data with a lower access frequency among the multiple user data to a storage location where the parameter indicates that communication with the edge server is poorer than the storage location where the multiple chunks are allocated. The edge server may further include a prediction unit that predicts which other edge server the user terminal using the edge server will use next, and the relocation control unit may determine which of the multiple chunks to move and the destination storage location based on the prediction result by the prediction unit, and control the relocation of the determined chunk from the stored storage location to the destination storage location. The relocation control unit may determine, as the destination storage location, the storage location where a parameter related to communication with the other edge server indicates better communication than a parameter related to communication with the edge server, and where the parameter related to communication with the edge server satisfies a predetermined condition.

[0006] Any one of the edge servers may be equipped with a prediction unit that predicts which other edge server the user terminal using the edge server will use next, and a relocation control unit that determines which chunk of the multiple chunks to move and the destination storage base based on the prediction result by the prediction unit, and controls the movement of the determined chunk from the storage base where it is stored to the destination storage base.

[0007] According to one embodiment of the present invention, there is provided a program for causing a computer to function as the edge server.

[0008] According to one embodiment of the present invention, there is provided a data processing method executed by an edge server. The data processing method may include an acquisition step of acquiring multiple chunks obtained by dividing user data corresponding to a user terminal using the edge server. The data processing method may include a selection step of selecting multiple target storage locations from the multiple storage locations as targets for distributing the multiple chunks based on parameters related to communication between the edge server and each of the multiple storage locations. The data processing method may include a transmission step of transmitting the multiple chunks to the multiple target storage locations selected in the selection step so that the multiple chunks are distributed and allocated to the multiple target storage locations.

[0009] The above summary of the invention does not list all of the necessary features of the present invention, and subcombinations of these features may also constitute inventions. [Brief explanation of the drawings]

[0010] [Figure 1] 1 illustrates an example of a communication environment of an edge server 100. [Figure 2] 1 shows a schematic diagram of an example of a system 10 according to the present embodiment. [Figure 3] 1 shows an example of the configuration of AZ300. [Figure 4]FIG. 2 is an explanatory diagram for explaining an example of processing by the edge server 100. [Figure 5] FIG. 2 is an explanatory diagram for explaining an example of processing by the edge server 100. [Figure 6] FIG. 2 is an explanatory diagram for explaining an example of processing by the edge server 100. [Figure 7] 1 illustrates an example of a functional configuration of an edge server 100. [Figure 8] 1 illustrates a schematic diagram of one implementation of the system 10. [Figure 9] 1 shows an example of a processing flow in the system 10. [Figure 10] 1 shows an example of a processing flow in the system 10. [Figure 11] 1 shows an example of a processing flow in the system 10. [Figure 12] 1 shows an example of a processing flow in the system 10. [Figure 13] 1 shows an example of a processing flow in the system 10. [Figure 14] 1 shows an example of a processing flow in the system 10. [Figure 15] 1 shows an example of a processing flow in the system 10. [Figure 16] 1 shows an example of a hardware configuration of a computer 1200 that functions as the edge server 100. DETAILED DESCRIPTION OF THE INVENTION

[0011] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.

[0012] Multi-access Edge Computing (MEC) is a technology that distributes computing resources to locations physically close to users. This technology can improve real-time performance by shortening transmission distances and reduce workloads through distributed processing. Services utilizing MEC may provide services tied to specific users, such as cruise control assistance in autonomous driving. In such services, user-specific user data stored in an MEC must be relocated as the user moves. Specifically, if a user who is currently serving a base station and receiving a service using user data stored in an MEC moves to a different base station and uses a different MEC, the user data must be transferred from the original MEC to the next MEC. However, depending on the service, user data can reach gigabytes (GB), making it difficult to transfer data between MECs in real time. In contrast, the edge server 100 according to this embodiment distributes and stores multiple chunks of user data across multiple storage locations accessible from the edge server 100, gradually moving the chunks as the user moves.

[0013] FIG. 1 schematically illustrates an example of a communication environment of an edge server 100. Here, a 5th Generation (5G) mobile communication system will be described as an example, but the present invention is not limited to this. The edge server 100 is disposed between a gNodeB (gNB) 20 and a 5G core network 30. When the edge server 100 provides a service to a User Equipment (UE) 200, it is possible to improve real-time performance by shortening the transmission distance and reduce the load by distributed processing, compared to when a server on a cloud 50 provides a service to the UE 200 via the Internet 40 and the 5G core network 30.

[0014] While an edge server 100 is providing a service to a UE 200, the UE 200 may move and use another edge server 100. For common data shared by multiple UEs 200, the common data can be stored in another edge server 100 in advance in anticipation of such a case, so that the common data can be used without any problems even after the UE 200 moves. However, user data 210 specific to the user of the UE 200 needs to be transferred between edge servers 100. Depending on the type of service, the amount of user data 210 may be in the GB range or more, making it difficult to transfer the data between edge servers 100 in real time.

[0015] For example, when providing an autonomous driving service to a user, the user data 210 includes various types of data related to the vehicle in which the user is riding. Furthermore, due to the nature of the autonomous driving service, there is a high need to transfer the user data 210 in real time. For example, when providing a ThinClientUE service to a user, the user data 210 includes a huge amount of data, such as application data, photos, videos, audio, game data, certificate data, log files, and setting data. In the ThinClientUE service, transferring the user data 210 in real time is highly important, as it is directly related to the user's operability.

[0016] FIG. 2 shows a schematic diagram of an example of a system 10 according to this embodiment. The system 10 includes multiple edge servers 100 and multiple availability zones (AZs) 300. The AZs 300 may be an example of a storage base. The AZs 300 are an example of a storage base, and the storage base may be any type of base as long as it includes facilities for storing data and facilities for communicating with the edge servers 100.

[0017] For example, the edge server 100 first distributes and places multiple chunks (chunk 211, chunk 212, and chunk 213) obtained by dividing the user data 210 in multiple AZs 300 that are relatively close to the edge server 100. This improves real-time performance compared to when the data is placed in AZs 300 that are relatively far from the edge server 100.

[0018] Furthermore, the edge server 100 periodically monitors the access frequency of multiple chunks, and relocates chunks with low access frequency to AZs 300 that are farther away from the edge server 100. This allows the load on the storage capacities of multiple AZs 300 to be appropriately distributed.

[0019] Furthermore, the edge server 100 may detect, for example, a sign that the UE 200 is moving and the edge server 100 used by the UE 200 will be changed, and preemptively relocate frequently accessed chunks to an AZ 300 that is relatively close to the new edge server 100. For example, the edge server 100 may relocate chunks to an AZ 300 that has a certain level of response performance from the edge server 100 itself, but can ensure optimal response performance for the new edge server 100. This allows chunks to be moved appropriately in stages gradually in accordance with the movement of the UE 200, thereby improving the real-time nature of chunk movement.

[0020] 3 shows a schematic example of the configuration of the AZ 300. The AZ 300 includes a power supply facility 302 and multiple racks 310. The racks 310 include multiple storage devices 312. The storage devices 312 include multiple HWs 314 that store data. Data received by the AZ 300 from the edge server 100 is stored in the HWs 314 of the storage devices 312 in the racks 310.

[0021] 4 is an explanatory diagram illustrating an example of processing by the edge server 100. The edge server 100 configures logical volumes 110 corresponding to a plurality of AZs 300.

[0022] 4 illustrates AZ320, AZ330, AZ340, AZ350, AZ360, and AZ370 as examples of the multiple AZs 300. In FIG. 4, the locations of the multiple AZs 300 are illustrated as locations according to parameters related to communication with the edge server 100 (sometimes referred to as communication-related parameters).

[0023] An example of a communication relationship parameter between the edge server 100 and the AZ 300 is the physical distance between the edge server 100 and the AZ 300. In this case, the distance between the edge server 100 and the AZ 300 in Fig. 4 may indicate the actual physical distance between the edge server 100 and the AZ 300. The shorter the distance between the AZ 300 and the edge server 100, the higher the probability that the communication between the edge server 100 and the AZ 300 is good.

[0024] Another example of a communication-related parameter between the edge server 100 and the AZ300 is a metric value between the edge server 100 and the AZ300. In FIG. 4, the distance between the edge server 100 and the AZ300 is shorter as the metric value between the edge server 100 and the AZ300 is lower. The metric value may be a network cost, and the lower the network cost, the lower the metric value. The metric value may be a round-trip response time, and the shorter the round-trip response time, the lower the metric value. The metric value may be a communication bandwidth, and the larger the communication bandwidth, the lower the metric value. The metric value may be a communication capacity, and the larger the communication capacity, the lower the metric value. The metric value may be communication quality, and the higher the communication quality, the lower the metric value. The metric value may be a value determined by two or more of the network cost, the round-trip response time, the communication bandwidth, the communication capacity, and the communication quality.

[0025] In this embodiment, a case where the communication-related parameter between the edge server 100 and the AZ 300 is the physical distance between the edge server 100 and the AZ 300 will be mainly taken as an example for explanation.

[0026] 4, the edge server 100 manages three pieces of user data 220, user data 230, and user data 240 corresponding to the UE 200 by using the logical volume 110. The edge server 100 manages the user data 220 by dividing it into four chunks (sometimes referred to as chunk A, chunk B, chunk C, and chunk D), the user data 230 by four chunks (sometimes referred to as chunk E, chunk F, chunk G, and chunk H), and the user data 240 by four chunks (sometimes referred to as chunk I, chunk J, chunk K, and chunk L).

[0027] The edge server 100 selects, from among the multiple AZs 300, multiple AZs 300 to which multiple chunks are to be distributed, giving priority to AZs 300 that are closer in physical distance to the edge server 100. The edge server 100 may select, from among the multiple AZs 300, multiple AZs 300 that are determined to have sufficient response performance based on the physical distance, or may select a portion of the multiple AZs 300 that are determined to have sufficient response performance based on the physical distance. The edge server 100 may determine whether a physical distance provides sufficient response performance based on, for example, whether the physical distance is shorter than a predetermined threshold.

[0028] The edge server 100 may determine whether or not a given AZ 300 has sufficient response performance based on a metric value between the edge server 100 and the AZ 300, in addition to the physical distance between the edge server 100 and the AZ 300. The edge server 100 may store in advance determination data for determining whether or not a given combination of a physical distance and a metric value satisfies sufficient response performance, and may use the determination data to determine, from among the plurality of AZs 300, multiple AZs 300 that have sufficient response performance.

[0029] In the example shown in Figure 4, edge server 100 places chunks A, B, F, H, I, and K in AZ320, which is the closest distance from edge server 100, and places chunks C, D, E, G, J, and L in AZ330, which is the closest distance from edge server 100.

[0030] The edge server 100 may allocate the main chunk and the backup chunk in the AZ 300 to ensure chunk redundancy. For example, the edge server 100 allocates the main chunk A and the backup chunk A for chunk A in the AZ 300. In this case, the edge server 100 may avoid arranging the main chunk and the backup chunk A for one chunk across multiple AZs 300. For example, the edge server 100 does not allocate the main chunk A in AZ 320 and the backup chunk A in AZ 330, but instead allocates the main chunk A and the backup chunk A in either AZ 320 or AZ 330. As illustrated in FIG. 4, multiple chunks divided from one file data may be allocated across multiple AZs 300.

[0031] The edge server 100 does not control which chunks the AZ300 stores in which HW314, but leaves this to the processing logic of the AZ300. However, the AZ300 notifies the edge server 100 of the direct path to the location in AZ300 where the chunks are placed. This improves access performance during reads.

[0032] 5 is an explanatory diagram for explaining an example of processing by the edge server 100. Here, a process will be described in which the edge server 100 reallocates multiple chunks distributed across multiple AZs 300 according to the access frequency of the multiple chunks.

[0033] The edge server 100 manages the access frequency of the plurality of user data 210 by the UE 200 in a situation where a plurality of chunks are distributed across a plurality of AZs 300. For example, the edge server 100 checks the access frequency of the plurality of user data 210 within each predetermined period.

[0034] The edge server 100 may determine whether to relocate chunks corresponding to the user data 210 and, if so, to which AZ 300 to relocate them, based on the access frequencies of the multiple user data 210. For example, when the access frequency to the user data 210 is higher than a first threshold, the edge server 100 may determine not to relocate chunks corresponding to the user data 210. For example, when the access frequency to the user data 210 is lower than the first threshold, the edge server 100 may control the relocation of chunks corresponding to the user data 210 to AZs 300 that are farther away as the access frequency becomes lower. The first threshold may be set arbitrarily and may be changeable after being set.

[0035] 5 illustrates an example in which, among the user data 220, the user data 230, and the user data 240, the access frequency to the user data 220 is high, the access frequency to the user data 230 is medium, and the access frequency to the user data 240 is low. The edge server 100 may determine not to relocate multiple chunks corresponding to the user data 220 determined to have a high access frequency. The edge server 100 may control to relocate multiple chunks corresponding to the user data 230 determined to have a medium access frequency to an AZ 300 that is one level away from the edge server 100. The edge server 100 may control to relocate multiple chunks corresponding to the user data 240 determined to have a low access frequency to an AZ 300 that is two levels away from the edge server 100.

[0036] 5, the edge server 100 relocates chunks E, F, G, and H corresponding to user data 230 with a medium access frequency to AZ 350, which is farther away than AZ 320, and relocates chunks I, J, K, and L corresponding to user data 240 with a low access frequency to the even farther away AZ 370. Note that the number of identification levels for access frequency is not limited to three levels, high, medium, and low, and may be any other number of levels.

[0037] If the frequency of access to the user data 210 corresponding to a chunk that has been relocated to AZ 350 or AZ 370 increases, the edge server 100 may perform control so that the chunk is relocated to a closer AZ 300.

[0038] Fig. 6 is an explanatory diagram for explaining an example of processing by the edge server 100. Here, the process will be described in which, after reallocating a plurality of chunks distributed across a plurality of AZs 300 in accordance with the access frequency of the chunks as shown in Fig. 5, a chunk is reallocated in advance in response to detection of a sign that a UE 200 using an edge server 100 will use another edge server 100.

[0039] For example, the edge server 100 acquires information about the wireless base station in which the UE 200 is located and monitors changes in the wireless base station in which the UE 200 is located. When the edge server 100 predicts that the UE 200, which has been located in one of the wireless base stations corresponding to itself, will be located in one of the wireless base stations corresponding to another edge server 100, the edge server 100 may determine that this is a sign that the UE 200 will use another edge server 100. The edge server 100 may acquire information about the wireless communication area in which the UE 200 is located from the UE 200, or may acquire it from the wireless base station in which the UE 200 is located, etc.

[0040] For example, the edge server 100 acquires location information of the UE 200 from the UE 200 and monitors changes in the location of the UE 200. The UE 200 may transmit the location information of the UE 200 acquired by a positioning process such as GNSS (Global Navigation Satellite System) positioning, Wi-Fi (registered trademark) positioning, and cell positioning to the edge server 100. When the edge server 100 predicts that the UE 200, which has been located in an area corresponding to the edge server 100, will move to an area corresponding to another edge server 100, the edge server 100 may determine that this is a sign that the UE 200 will use another edge server 100.

[0041] When the edge server 100 determines that there is a sign that the UE 200 will use another edge server 100, the edge server 100 controls to reallocate multiple chunks corresponding to the user data 210 of the UE 200. For example, the edge server 100 may control to reallocate multiple chunks corresponding to the user data 210 to an AZ 300 that has a certain level of response performance from the edge server 100 but has better response performance from the other edge server 100 that the UE 200 has determined to use.

[0042] 6, the edge server 100 determines that the UE 200 will use the edge server 180. The edge server 100 controls so that chunks A and B stored in AZ 320 are relocated to AZ 340, which has a certain level of response performance from the edge server 100 and a better response performance from the edge server 180. The edge server 100 also controls so that chunks F and G stored in AZ 350 are relocated to AZ 360, which has a certain level of response performance from the edge server 100 and a better response performance from the edge server 180.

[0043] 7 shows an example of the functional configuration of the edge server 100. The edge server 100 includes a storage unit 120, an acquisition unit 122, a selection unit 124, a transmission unit 126, a correspondence unit 128, a frequency management unit 130, a relocation control unit 132, and a prediction unit 134. Note that it is not essential for the edge server 100 to include all of these units.

[0044] The storage unit 120 stores various types of data.

[0045] The acquisition unit 122 acquires various data and stores the acquired data in the storage unit 120.

[0046] For example, the acquiring unit 122 acquires user data corresponding to the UE 200 that uses the edge server 100 (sometimes referred to as the device itself). The acquiring unit 122 may acquire the user data from the UE 200. The acquiring unit 122 may acquire the user data from another device. The acquiring unit 122 may acquire the user data generated on the edge server 100. The acquiring unit 122 may acquire a plurality of pieces of user data.

[0047] For example, the acquisition unit 122 acquires multiple chunks obtained by dividing user data. The acquisition unit 122 may acquire the multiple chunks by dividing the user data stored in the storage unit 120. The acquisition unit 122 may acquire the multiple chunks from an external device. For example, the acquisition unit 122 acquires the multiple chunks from the UE 200. The acquisition unit 122 may acquire multiple chunks for each of the multiple pieces of user data.

[0048] The selection unit 124 selects, from the multiple storage locations, multiple storage locations (sometimes referred to as target storage locations) to which multiple chunks will be distributed and placed, based on parameters (sometimes referred to as communication-related parameters) related to communication between the device itself and multiple storage locations.

[0049] The selector 124 may select multiple target storage locations from the multiple storage locations by prioritizing storage locations whose communication-related parameters indicate better communication with the device itself. The degree of communication quality is higher the lower the network cost. The degree of communication quality is higher the shorter the round-trip response time. The degree of communication quality is higher the larger the communication bandwidth. The degree of communication quality is higher the larger the communication capacity. The degree of communication quality is higher the higher the communication quality. This can improve the access performance from the edge server 100 to multiple chunks, contributing to improving communication quality throughout the system 10 and improving user QoE (Quality of Experience).

[0050] The communication-related parameter may be, for example, the physical distance between the edge server 100 and the storage location. The selector 124 may select multiple target storage locations from the multiple storage locations, prioritizing storage locations that are physically closer to the selector 124. For example, when selecting N storage locations, the selector 124 selects the N storage locations in ascending order of physical distance from the selector 124. For example, the selector 124 selects multiple storage locations whose physical distance from the selector 124 is shorter than a predetermined threshold as the multiple target storage locations. For example, the selector 124 selects some of the multiple storage locations whose physical distance from the selector 124 is shorter than a predetermined threshold as the multiple target storage locations. The physical distance between the edge server 100 and the storage location has a high correlation with the quality of communication between the edge server 100 and the storage location. The physical distance between the edge server 100 and the storage location can be specified and registered in advance, and comparison of the physical distance between the edge server 100 and each of the multiple storage locations can be achieved with a very low computational load.

[0051] The communication relationship parameter may be, for example, a metric value between the edge server 100 and a storage location. The selector 124 may select multiple target storage locations from the multiple storage locations by prioritizing storage locations with lower metric values ​​between the selector 124 and the host device. For example, when selecting N storage locations, the selector 124 selects the N storage locations in ascending order of metric values ​​between the selector 124 and the host device. For example, the selector 124 selects multiple storage locations with metric values ​​between the selector 124 and the host device that are lower than a predetermined threshold as the multiple target storage locations. For example, the selector 124 selects some of the multiple storage locations with metric values ​​between the selector 124 and the host device that are lower than a predetermined threshold as the multiple target storage locations.

[0052] The transmitting unit 126 transmits the multiple chunks acquired by the acquiring unit 122 to the multiple target storage bases selected by the selecting unit 124 so that the multiple chunks are distributed and placed at the multiple target storage bases. The transmitting unit 126 may transmit the multiple chunks to the multiple target storage bases selected by the selecting unit 124 for each of the multiple user data so that the multiple chunks are distributed and placed at the multiple target storage bases selected by the selecting unit 124.

[0053] The handling unit 128 handles the user data 210 for the UE 200. For example, when the handling unit 128 receives an access request to the user data from the UE 200, the handling unit 128 reads multiple chunks corresponding to the user data from multiple target storage locations, restores the user data, and provides the restored user data to the gNB 20. For example, when the user data is changed by the UE 200, the handling unit 128 divides the changed user data into multiple chunks and relocates them to the multiple target storage locations from which they were read.

[0054] The frequency management unit 130 manages the frequency of access by the UE 200 to the plurality of user data in a situation where a plurality of chunks of each of the plurality of user data are distributed and allocated to a plurality of target storage locations.

[0055] The relocation control unit 132 controls to change the allocation of multiple chunks in multiple target storage locations based on the access frequency of multiple user data by one user. The relocation control unit 132 may refer to the access frequency of multiple user data managed by the frequency management unit 130 and control to change the allocation of multiple chunks based on the access frequency every time a predetermined period of time elapses. The period of time may be set arbitrarily, or may be changeable after being set.

[0056] The relocation control unit 132 may control the movement of multiple chunks of user data that are accessed less frequently among multiple user data to a storage location where communication-related parameters indicate that communication with the device itself is not as good as the storage location where the multiple chunks are located.

[0057] For example, the relocation control unit 132 controls the movement of multiple chunks of user data with lower access frequencies among the multiple user data to a storage location that is physically farther from the host machine than the storage location where the multiple chunks are located. For example, the relocation control unit 132 controls the movement of multiple chunks of user data with lower access frequencies among the multiple user data to a storage location that has a higher metric value between the host machine and the multiple chunks than the storage location where the multiple chunks are located.

[0058] The frequency management unit 130 may manage a plurality of user data by classifying them according to their access frequencies. For example, the frequency management unit 130 manages a plurality of user data by classifying them into three levels: high access frequency, medium access frequency, and low access frequency. The threshold for classifying them may be set arbitrarily, and may be changeable after being set. Furthermore, the number of classes is not limited to three, and may be any other number.

[0059] The relocation control unit 132, for example, controls the movement of chunks with a medium access frequency to a storage location that is one step farther physically from the host machine than the storage location where the chunks are located, and controls the movement of chunks with a low access frequency to a storage location that is two steps farther physically from the host machine than the storage location where the chunks are located.

[0060] The relocation control unit 132, for example, controls the movement of a chunk with a medium access frequency to a storage location having a metric value one level lower between the storage location where the chunk is located and the storage location where the metric value between the storage location and the host machine is two levels lower than the storage location where the chunk is located.

[0061] When the access frequency of the corresponding user data for a plurality of chunks whose locations have been changed changes, the reallocation control unit 132 may control the reallocation in accordance with the changed access frequency. For example, when the access frequency of a chunk has been low and the access frequency of the corresponding user data changes to medium, the reallocation control unit 132 may control the chunk to be moved to a storage location that is physically two levels away from the host machine, to a storage location that is physically one level away from the host machine.

[0062] The prediction unit 134 predicts another edge server 100 that the UE 200 using the own device will use next. For example, the prediction unit 134 predicts the other edge server 100 in response to detecting a sign that the UE 200 using the own device will use the other edge server 100.

[0063] For example, the acquisition unit 122 acquires information about a radio base station in which the UE 200 is located. The acquisition unit 122 may continuously acquire information about a radio base station in which the UE 200 is located. The acquisition unit 122 may acquire the information from the UE 200. The acquisition unit 122 may acquire the information from the radio base station in which the UE 200 is located or from a management device that manages the radio base station in which the UE 200 is located. The prediction unit 134 may monitor a change in the radio base station in which the UE 200 is located, based on the information acquired by the acquisition unit 122. For example, when the prediction unit 134 predicts that the UE 200, which has been in the range of one of a plurality of radio base stations corresponding to the UE 200, will be in the range of one of a plurality of radio base stations corresponding to another edge server 100, the prediction unit 134 may predict the other edge server 100 as the edge server 100 that the UE 200 will use next.

[0064] For example, the acquisition unit 122 acquires location information of the UE 200. The acquisition unit 122 may continuously acquire the location information of the UE 200. The acquisition unit 122 may acquire the location information from the UE 200. The prediction unit 134 may monitor a change in the location of the UE 200 based on the location information acquired by the acquisition unit 122. For example, when the prediction unit 134 predicts that the UE 200, which has been located in an area corresponding to the UE 200, will move to an area corresponding to another edge server 100, the prediction unit 134 may predict the other edge server 100 as the edge server 100 that the UE 200 will use next.

[0065] Based on the prediction result by the prediction unit 134, the relocation control unit 132 determines which chunks to move from among the multiple chunks located at the multiple target storage bases and the destination storage base, and controls the movement of the determined chunks from the storage base where they are stored to the destination storage base.

[0066] The relocation control unit 132 may determine, as the destination storage site, a storage site whose communication relationship parameters with the other edge server 100 indicate better communication than the communication relationship parameters with its own device and whose communication relationship parameters with its own device satisfy predetermined conditions.

[0067] For example, the relocation control unit 132 may determine, as the destination storage location, a storage location whose physical distance to the other edge server 100 is shorter than the physical distance to the edge server 100 itself and whose physical distance from the edge server 100 is shorter than a predetermined threshold. The threshold may be set on the condition that the response performance is at a minimum. The threshold may be changeable.

[0068] For example, the relocation control unit 132 may determine, as the destination storage site, a storage site whose metric value between the edge server 100 and the other edge server 100 is lower than the metric value between the edge server 100 and the relocation control unit 132 itself and whose metric value between the edge server 100 and the other edge server 100 is lower than a predetermined threshold. The threshold may be set on the condition that the response performance is at a minimum. The threshold may be changeable.

[0069] This allows chunks to be moved in advance to a storage location that can achieve high response performance after the edge server 100 actually used by the UE 200 is changed, while maintaining a minimum response performance from the device itself.

[0070] FIG. 8 shows a schematic diagram of an example implementation of the system 10. Here, the edge server 100 is referred to as the client, and the AZ 300 is referred to as the server. In the system shown in FIG. 8, a client application 430 and client software 440 are implemented by an operating system (OS) 420 on hardware (HW) 410. Server software 530 is implemented by the OS 520 on the HW 510. Object storage device (OSD) 630 is implemented by the OS 620 on the HW 610.

[0071] The client application 430 includes a client app 432. The client software 440 includes an app manager 441, a client database 442, a relocation handler 443, a chunk controller 444, and a volume manager 445. The server software 530 includes an OSD controller 532 and a server database 534. The OSD 630 includes an OSD daemon 632.

[0072] The application manager 441 accepts control of the distributed storage from the client application 430 and sends an operation request to the chunk controller 444. Examples of control of the distributed storage include creation and deletion of logical volumes and chunk relocation due to a prediction of application migration. The relocation decision decision may be left to the application side. When the relocation decision is made on the application manager 441 side, the application manager 441 may receive information required for the relocation calculation (such as location information of the UE 200 behind the application) from the client application 432.

[0073] The client database 442 is a database necessary for client operation, and includes a chunk controller (CC) list, an OSD controller (OSDC) list, an OSD list, and a chunk list.

[0074] The CC list includes the CC ID, the CC name, and the CC IP address, as shown in Table 1 below.

[0075] [Table 1]

[0076] As shown in Table 2 below, the OSDC list includes the ID of the OSDC, the name of the OSDC, the IP address of the OSDC, and the latitude and longitude indicating the physical location of the OSDC.

[0077] [Table 2]

[0078] The OSD list includes the ID of the OSD, the name of the OSD, and the IP address of the OSD, as shown in Tables 3 and 4 below.

[0079] [Table 3]

[0080] [Table 4]

[0081] As shown in Table 5 below, the chunk list includes a file, a chunk, the OSDC and OSD where the chunk is located, the most recent access date and time, and an access history.

[0082] [Table 5]

[0083] The relocation handler 443 periodically monitors the access frequency in the chunk list, and when it determines that relocation based on the access frequency is necessary, it requests the chunk controller 444 to relocate.

[0084] The chunk controller 444 is responsible for controlling the distributed storage system within the client system. The chunk controller 444 instructs multiple OSD controllers 532 to perform control and returns necessary information to the requester. Examples of control include creating and deleting logical volumes, and arranging, deleting, and re-arranging chunks (allocating and releasing OSD storage areas). The chunk controller 444 communicates with chunk controllers 444 at other locations and imports and exports database information. The chunk controller 444 rewrites the contents of the client database 442 as necessary.

[0085] The volume manager 445 makes the OS recognize the logical volume and controls reading and writing. When writing, the volume manager 445 divides the file, requests the chunk controller 444 to allocate and select an OSD controller 532, and performs chunk write processing on the specified OSD. When reading, the volume manager 445 performs read processing on the OSD where the chunk is saved, restores the file, and returns it to the OS.

[0086] The OSD controller 532 is responsible for controlling the distributed storage system within the server system. In response to requests from the chunk controller 444, the OSD controller 532 performs the necessary control and returns information. Examples of control include allocating and releasing OSD areas and controlling data transfer between OSDs. The OSD controller 532 communicates with OSD controllers 532 at other locations, importing and exporting database information, and controlling OSD cooperation. The OSD controller 532 rewrites the contents of the server database 534 as necessary.

[0087] The server database 534 is a database necessary for server operation, and includes an OSDC list, an OSD list (within the own base), and a chunk list (within the own base).

[0088] As shown in Table 6 below, the OSDC list includes the ID of the OSDC, the name of the OSDC, the IP address of the OSDC, and the latitude and longitude indicating the physical location of the OSDC.

[0089] [Table 6]

[0090] As shown in Table 7 below, the OSD list includes the IDs of the OSDs in the own location, the names of the OSDs, and the IP addresses of the OSDs.

[0091] [Table 7]

[0092] As shown in Table 8 below, the chunk list includes information about chunks in the local location, information about chunk controllers, and the OSDs on which the chunks are located.

[0093] [Table 8]

[0094] The OSD daemon 632 writes and reads chunks to and from physical storage in response to requests from the volume manager 445 or other OSD daemons 632.

[0095] Fig. 9 shows an example of a process flow in the system 10. Fig. 9 shows an example of a process flow for creating a logical volume.

[0096] The client application 432 sends a logical volume creation request to the application manager 441. The application manager 441 sends the logical volume creation request to the chunk controller 444. The chunk controller 444 creates a chunk list and registers it in the client database 442. The chunk controller 444 instructs the volume manager 445 to start the logical volume. After receiving notification of the logical volume, the client application 432 accesses the logical volume via the OS.

[0097] Fig. 10 shows an example of a processing flow in the system 10. Fig. 10 shows an example of a processing flow for deleting a logical volume.

[0098] The client application 432 sends a logical volume deletion request to the application manager 441. The application manager 441 sends a logical volume deletion request to the chunk controller 444. The chunk controller 444 references the chunk list in the client database 442. The chunk controller 444 sends a chunk deletion request to the OSD controller 532. The OSD controller 532 instructs the OSD daemon 632 to delete the chunk data. After deleting the chunk data, the OSD controller 532 requests the server database 534 to delete the corresponding part of the chunk list. The server database 534 notifies the OSD controller 532 and the chunk controller 444 of the deletion. The chunk controller 444 requests the client database 442 to delete the corresponding part of the chunk list.

[0099] Fig. 11 shows an example of a process flow in the system 10. Fig. 11 shows an example of a process flow for writing a file.

[0100] The client application 432 sends a file write request to the volume manager 445. The volume manager 445 divides the file into multiple chunks. The volume manager 445 sends a chunk write request to the chunk controller 444. The chunk controller 444 references the client database 442 and selects an OSD controller 532. The chunk controller 444 sends a chunk write request to the selected OSD controller 532. The OSD controller 532 selects an OSD. The OSD controller 532 sends a space allocation request to the OSD daemon 632 of the selected OSD. The OSD controller 532 updates the chunk list in the server database 534. The OSD controller 532 sends an OSD information notification to the chunk controller 444. The chunk controller 444 updates the chunk list in the client database 442 and sends an OSD information notification to the volume manager 445. The volume manager 445 instructs the OSD daemon 632 to write the chunks.

[0101] Fig. 12 shows an example of a processing flow in the system 10. Fig. 12 shows an example of a file reading flow.

[0102] The client application 432 sends a file read request to the volume manager 445. The volume manager 445 references the chunk list in the client database 442 and sends a chunk read request to the corresponding OSD daemon 632. The volume manager 445 obtains the chunks, restores the file, and sends it to the client application 432.

[0103] Fig. 13 shows an example of a processing flow in the system 10. Fig. 13 shows an example of a chunk rearrangement flow.

[0104] The client application 432 sends a chunk relocation request to the chunk controller 444. The chunk controller 444 sends the chunk relocation request to the OSD controller 532. The OSD controller 532 sends a chunk acceptance request to the OSD controller 532 of the relocation destination. The OSD controller 532 sends an area reservation and chunk acceptance request to the OSD daemon 632. The OSD controller 532 updates the chunk list in the server database 534. The server database 534 notifies the OSD controller 532 of its own site and the OSD controller 532 of the original site of the update result. The OSD controller 532 of the original site sends a chunk creation request to the OSD daemon 632. The OSD daemon 632 transfers the chunk to the OSD daemon 632 of the relocation destination and deletes the chunk. The OSD controller 532 of the original site updates the chunk list in the server database 534. The chunk controller 444 updates the chunk list in the volume manager 445.

[0105] Fig. 14 shows an example of a processing flow in the system 10. Fig. 14 shows an example of a processing flow of reallocation based on access frequency.

[0106] In the monitoring sequence, the relocation handler 443 searches for chunk access frequencies by referencing the client database 442. The relocation handler 443 determines whether or not chunk relocation is necessary. If a chunk that satisfies the conditions exists, the process moves to the relocation sequence.

[0107] In the relocation sequence, the relocation handler 443 refers to the client database 442 and selects the OSD controller 532 as the relocation destination. The relocation handler 443 sends a chunk relocation request to the chunk controller 444. The chunk controller 444 sends the chunk relocation request to the OSD controller 532. The OSD controller 532 executes the chunk relocation sequence.

[0108] Fig. 15 shows an example of a processing flow in the system 10. Fig. 15 shows an example of a processing flow of chunk relocation based on client movement sign detection.

[0109] In the monitoring sequence, the client application 432 provides the location information of the UE 200 to the application manager 441. The application manager 441 determines whether or not chunk rearrangement is necessary. If the condition is met, the process proceeds to the rearrangement sequence.

[0110] In the rearrangement sequence, the application manager 441 refers to the client database 442 and selects the OSD controller 532 as the rearrangement destination. The application manager 441 sends a chunk rearrangement request to the chunk controller 444. The chunk controller 444 sends the chunk rearrangement request to the OSD controller 532. The OSD controller 532 executes the chunk rearrangement sequence.

[0111] 16 schematically illustrates an example of the hardware configuration of a computer 1200 functioning as the edge server 100. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of an apparatus according to the present embodiment, or can cause the computer 1200 to perform operations associated with the apparatus according to the present embodiment or one or more "parts" thereof, and / or can cause the computer 1200 to perform a process according to the present embodiment or steps of the process. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.

[0112] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphics controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications interface 1222, a storage device 1224, a DVD drive, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive may be a DVD-ROM drive, a DVD-RAM drive, or the like. The storage device 1224 may be a hard disk drive, a solid-state drive, or the like. The computer 1200 also includes a ROM 1230 and legacy input / output units such as a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.

[0113] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller itself, and causes the image data to be displayed on the display device 1218.

[0114] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive reads programs or data from a DVD-ROM or the like and provides them to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.

[0115] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or programs that depend on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, etc.

[0116] The programs are provided by a computer-readable storage medium such as a DVD-ROM or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, RAM 1214, or ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and causes cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.

[0117] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, a DVD-ROM, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.

[0118] Furthermore, the CPU 1212 may cause all or a necessary portion of a file or database stored in an external recording medium such as the storage device 1224, a DVD drive (DVD-ROM), an IC card, etc. to be read into the RAM 1214, and may perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write back the processed data to the external recording medium.

[0119] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.

[0120] The above-described programs or software modules may be stored in a computer-readable storage medium on or near the computer 1200. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.

[0121] The blocks in the flowcharts and block diagrams in the present embodiments may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, including integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.

[0122] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.

[0123] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages ​​such as the “C” programming language or similar programming languages.

[0124] Computer-readable instructions may be provided to a general-purpose computer, a special-purpose computer, or another programmable data processing device, or a programmable circuit, either locally or via a local area network (LAN) or a wide area network (WAN) such as the Internet, so that the processor of the programmable data processing device, such as a computer, or the programmable circuit executes the computer-readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Here, the computer may be a personal computer (PC), a tablet computer, a smartphone, a workstation, a server computer, a general-purpose computer, a special-purpose computer, or the like, or may be a computer system in which multiple computers are connected. Such a computer system in which multiple computers are connected is also called a distributed computing system, and is a broad definition of computers. In a distributed computing system, multiple computers collectively execute a program by each executing a portion of the program and passing data between the computers as needed during program execution.

[0125] Examples of processors include computer processors, central processing units, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc. A computer may have one or more processors. In a multiprocessor system with multiple processors, each processor executes a portion of a program and passes data between processors as needed during program execution, allowing the multiple processors to collectively execute the program. For example, in multitasking, each of the multiple processors may execute a portion of each task in small chunks by switching tasks at time slice intervals. In this case, which portion of a program each processor executes changes dynamically. Which portion of a program each of the multiple processors executes may also be statically determined by multiprocessor-aware programming.

[0126] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.

[0127] It should be noted that the execution order of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order. [Explanation of symbols]

[0128] 10 System, 20 gNB, 30 5G Core Network, 40 Internet, 50 Cloud, 100 Edge Server, 110 Logical Volume, 120 Memory Unit, 122 Acquisition Unit, 124 Selection Unit, 126 Transmission Unit, 128 Correspondence Unit, 130 Frequency Management Unit, 132 Relocation Control Unit, 134 Prediction Unit, 180 Edge Server, 190 Logical Volume, 200 UE, 210 User Data, 211, 212, 213 Chunk, 220 User Data, 230 User Data, 240 User Data, 300 AZ, 302 Power Supply Equipment, 310 Rack, 312 Storage Device, 314 HW, 320, 330, 340, 350, 360, 370 AZ, 410 HW, 420 OS, 430 Client Application, 432 Client App, 440 Client software, 441 Application manager, 442 Client database, 443 Relocation handler, 444 Chunk controller, 445 Volume manager, 510 Hardware, 520 Operating system, 530 Server software, 532 OSD controller, 534 Server database, 610 Hardware, 620 Operating system, 630 OSD, 632 OSD daemon, 1200 Computer, 1210 Host controller, 1212 CPU, 1214 RAM, 1216 Graphics controller, 1218 Display device, 1220 Input / output controller, 1222 Communication interface, 1224 Storage device, 1230 ROM, 1240 Input / output chip

Claims

1. An edge server, an acquisition unit that acquires a plurality of chunks obtained by dividing user data corresponding to a user terminal that uses the edge server; a selection unit that selects, from the plurality of storage locations, a plurality of target storage locations to which the plurality of chunks are to be distributed, based on parameters related to communication between the edge server and each of the plurality of storage locations; a transmitting unit that transmits the plurality of chunks to the plurality of target storage sites selected by the selecting unit so that the plurality of chunks are distributed and arranged at the plurality of target storage sites; a prediction unit that predicts another edge server that the user terminal using the edge server will use next; a relocation control unit that determines a chunk to be moved from the plurality of chunks and the storage base of the destination based on the prediction result by the prediction unit, and controls the determined chunk to be moved from the storage base where it is stored to the storage base of the destination; Equipped with the selection unit selects the plurality of target storage locations from the plurality of storage locations, giving priority to a storage location whose parameter indicates better communication with the edge server. Edge server.

2. 2. The edge server according to claim 1, wherein the selection unit selects the plurality of target storage locations from the plurality of storage locations by giving priority to a storage location that is physically closer to the edge server.

3. 2. The edge server according to claim 1, wherein the selection unit selects, from the plurality of storage locations, a plurality of storage locations to which the plurality of chunks are to be distributed, by prioritizing a storage location having a lower metric value between the edge server and the plurality of storage locations.

4. the acquiring unit acquires a plurality of chunks for each of the plurality of user data; the transmitting unit transmits the plurality of chunks to the plurality of target storage bases selected by the selecting unit so as to distribute and allocate the plurality of chunks for each of the plurality of user data to the plurality of target storage bases; the edge server further comprises a frequency management unit that manages an access frequency of the plurality of user data by the user terminal in a situation where the plurality of chunks of each of the plurality of user data are distributed and allocated to the plurality of target storage bases; The edge server according to claim 1 , wherein the relocation control unit controls to change the allocation of the plurality of chunks in the plurality of target storage locations based on the access frequency of the plurality of user data.

5. 5. The edge server according to claim 4, wherein the relocation control unit controls the relocation of the plurality of chunks of user data that are accessed less frequently among the plurality of user data to a storage location where the parameter indicates that communication with the edge server is not as good as the storage location where the plurality of chunks are located.

6. 6. The edge server according to claim 5, wherein the relocation control unit determines, as the destination storage site, the storage site where parameters related to communication with the other edge server indicate better communication than parameters related to communication with the edge server, and where the parameters related to communication with the edge server satisfy predetermined conditions.

7. A program for causing a computer to function as the edge server according to any one of claims 1 to 3.

8. A data processing method performed by an edge server, comprising: an acquisition step of acquiring a plurality of chunks obtained by dividing user data corresponding to a user terminal using the edge server; a selection step of selecting, from the plurality of storage locations, a plurality of target storage locations to which the plurality of chunks are to be distributed, based on parameters related to communication between the edge server and each of the plurality of storage locations; a transmission step of transmitting the plurality of chunks to the plurality of target storage sites selected in the selection step so that the plurality of chunks are distributed and arranged at the plurality of target storage sites; a prediction step of predicting another edge server that the user terminal using the edge server will use next; a relocation control step of determining which chunks of the plurality of chunks to move and the storage base of the destination based on the prediction result of the prediction step, and controlling the determined chunks to be moved from the storage base where they are stored to the storage base of the destination; Equipped with the selecting step includes selecting the target storage locations from the plurality of storage locations, giving priority to a storage location that indicates that the parameter has better communication with the edge server. Data processing methods.

Citation Information

Patent Citations

  • Data rearrangement system, data rearrangement device, and data rearrangement method

    JP2017146764A

  • Distributed file system, and distributed file management method

    JP2021189520A

  • Communication device, communication device control method and control program

    JP2023049816A

  • Storage management device, method, and program

    WO2020116612A1