WO2021110176A1 - Edge system and method for processing data operation request - Google Patents
Edge system and method for processing data operation request Download PDFInfo
- Publication number
- WO2021110176A1 WO2021110176A1 PCT/CN2020/134345 CN2020134345W WO2021110176A1 WO 2021110176 A1 WO2021110176 A1 WO 2021110176A1 CN 2020134345 W CN2020134345 W CN 2020134345W WO 2021110176 A1 WO2021110176 A1 WO 2021110176A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- site
- target
- level
- level circle
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012545 processing Methods 0.000 title claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/457—Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
Definitions
- This application relates to the field of computer technology, in particular to an edge system and a method for processing data operation requests executed by the edge system.
- cloud service providers deploy sites near the edge of users.
- the geographic locations of these sites may be highly discrete, and the server clusters in each site are generally not large, but the number of sites can be relatively large, and the networks between sites are often not guaranteed by dedicated lines.
- FIG. 1 In order to manage these highly discrete sites, one way is to use a traditional centralized management architecture, as shown in Figure 1.
- this architecture After site installation and deployment are started, site information needs to be registered with the central management site, and the site is required to periodically confirm the connection survival with the central management site.
- the central management site needs to deploy database services to manage the host resources, tenant resources and other information of each site. Since this information is stored in the central management site, the issuance, management, and query of resources required by the cloud services running on the site all need to manipulate this information.
- the disadvantage of the centralized management architecture is that the huge fan-out center-and-spoke topology will have problems such as limited site management scale and unsatisfied low-latency user requests. With the increase in the number of sites and the further expansion of the geographical dispersion of sites, the centralized management architecture will become a management bottleneck.
- This application provides an edge system, which implements mobile data following through a multi-circle-layer site design, and improves the processing efficiency of data operation requests and data security.
- the first aspect provides an edge system, the edge system includes a plurality of first-level circle layers and second-level circle layers, and the geographic area represented by the second-level circle layer includes each of the first-level circle layers. Geographical area.
- Each first-level circle layer includes a plurality of sites, and each site is used to process data operation requests sent by a client, and an initial site among the plurality of sites is also included in the second-level circle layer.
- the initial site is stored in a certain first-level circle layer and second-level circle layer at the same time, and is used to process the data operation in the first-level circle layer and the second circle layer including the initial station request.
- the edge system provided above is designed with multi-level circle sites, and there are site intersections between the multi-level circle layers. These intersection sites can implement data operations in each circle layer, ensuring that data is in different first-level circles. In the case of moving between layers, data security, reliability, and data access efficiency can still be guaranteed.
- the initial site is used to address the target carried in the data operation request in the first-level circle layer including the initial site
- the target site corresponding to the data the target data is sent to the target site of the first-level circle including the initial site; the target site corresponding to the target data is addressed in the second-level circle, and all The target data is sent to the target site of the second-level circle.
- the target site including the first level circle layer of the initial site is used to store the target data.
- the target site of the second level circle layer is used to store the target data.
- the initial site writes the target data in both the first-level circle and the second-level circle, so that if the client subsequently accesses the target data in the same first-level circle, it can efficiently access the target data.
- the client accesses the target data after moving to other first-level circles, since the original first-level circles and the moved first-level circles belong to the same second-level circle, they can pass through the second level.
- the target data stored in the level circle layer provides services for the client, ensuring the security and reliability of the client's access to the data.
- the target site that includes the first-level circle of the initial site is also used to create or update the target data on other sites that include the first-level circle of the initial site Copy.
- the target site of the second-level circle is also used to create or update a copy of the target data on other sites of the second-level circle.
- the initial site is used to address the target carried in the data operation request in the first-level circle layer including the initial site The target site corresponding to the key of the data; the target site of the first-level circle including the initial site, used to determine whether the target data is stored locally in the target site of the first-level circle including the initial site, If the target data is stored locally at the target site including the first level circle layer of the initial site, the target data is sent to the client; if the target data is not stored in the first site including the initial site The target site of the first level circle layer is local, and the target site corresponding to the key of the target data is addressed in the second level circle layer; the target site of the second level circle layer is used to determine the target data storage Send the target data to the client locally at the target site of the second-level circle.
- the target site of the second-level circle is also used to send the target data to the target site of the first-level circle that includes the initial site.
- the second aspect provides a method for processing a data operation request.
- the data operation request is a write request.
- the processing method for the data operation request is applied to an edge system.
- the edge system includes a plurality of first-level circles and a second Level circle layer, the geographic area represented by the second level circle layer includes the geographic area represented by each first level circle layer, each first level circle layer includes multiple sites, and each site is used to process the data sent by the client
- a data operation request, including an initial site in the plurality of sites, is also included in the second-level circle;
- the initial site addresses the data operation request carried in the first-level circle that includes the initial site
- the initial site sends the target data to the target site of the first-level circle that includes the initial site;
- the initial site addresses the target site corresponding to the target data in the second-level circle, and sends the target data to the target
- the actions of addressing the initial site in the first level circle layer including the initial site and the actions of addressing the initial site in the second level circle layer may be performed in parallel.
- the method further includes: the target site of the first-level circle including the initial site creates or updates the target data on other sites of the first-level circle including the initial site a copy of.
- the method further includes: the target site of the second-level circle creates or updates a copy of the target data on other sites of the second-level circle.
- a third aspect provides a method for processing a data operation request.
- the data operation request is a read request.
- the processing method for the data operation request is applied to an edge system.
- the edge system includes a plurality of first-level circles and a second
- the geographic area represented by the second-level circle layer includes the geographic area represented by each first-level circle layer, and each first-level circle layer includes multiple sites, and each site is used to process client sending
- the data operation request of the plurality of sites including an initial site is also included in the second-level circle;
- the initial site addresses the data operation request in the first-level circle that includes the initial site
- the target site of the first-level circle including the initial site determines whether the target data is stored locally in the target site of the first-level circle including the initial site; If the target data is stored locally in the target site including the first level circle layer of the initial site, the target data is sent to the client; if the target data is not stored in the first site including
- the method further includes: the target station of the second-level circle layer sending the target data to the target station of the first-level circle layer including the initial station.
- the target station of the second-level circle layer sends the target data to the target station of the first-level circle layer including the initial station and the target station of the second-level circle layer sends the target data to all
- the actions of the client can be executed in parallel.
- the fourth aspect provides a non-transitory readable storage medium.
- the system executes the aforementioned third aspect and its possible implementation Or the method provided by the fourth aspect and its possible implementations.
- Program instructions are stored in the storage medium.
- the storage medium includes, but is not limited to, volatile storage devices, such as random access storage devices, and non-volatile storage devices, such as flash storage devices, hard disk drives (HDD), and solid state drives (SSDs). ).
- the fifth aspect provides a computer program product.
- the system executes the foregoing third aspect and its possible implementation manners or the fourth aspect and its possible implementation manners.
- the computer program product may be a software installation package.
- the computer program product may be downloaded and executed on each site of the edge system The instructions included.
- FIG. 1 is a schematic diagram of the structure of the edge system provided by this application.
- FIG. 2 is a schematic structural diagram of another edge system provided by this application.
- FIG. 3 is a schematic structural diagram of an edge site provided by this application.
- FIG. 4 is a schematic structural diagram of a hash ring of an addressing algorithm provided by this application.
- FIG. 5 is a schematic structural diagram of a hash ring of another addressing algorithm provided by this application.
- FIG. 6 is a schematic structural diagram of a hash ring of another addressing algorithm provided by this application.
- FIG. 7 is a processing flowchart of a data operation request provided by this application.
- FIG. 8 is a processing flowchart of another data operation request provided by this application.
- Fig. 9 is a schematic structural diagram of a computer provided by this application.
- the present application provides an edge system.
- the edge system includes multiple sites.
- the edge system includes multi-level circles.
- the edge system can have one or more circles of the same level.
- Each site can belong to multiple circles of different levels at the same time.
- Each site cannot belong to multiple circles at the same time.
- Figure 2 shows only a part of the edge system, and other possible devices, such as the edge gateway of the edge system, are omitted.
- Circles generally speaking, different circles represent different geographic areas.
- the high-level circles represent a larger geographic area, and the low-level circles represent a smaller geographic area.
- Different circles at the same level represent different geographical areas at the same level.
- the geographic area represented by each high-level circle includes at least one low-level circle.
- the third-level circle represents a country
- the second-level circle represents a province
- the first-level circle represents a city.
- the geographic area represented by the third-level circle layer includes at least one second-level circle layer
- the geographic area represented by each second-level circle layer includes at least one first-level circle layer.
- the sites in the high-level circle belong to a certain low-level circle included in the geographic area represented by the high-level circle.
- site 1 in the third-level circle belongs to a certain second-level circle included in the third-level circle, and site 1 also belongs to a certain first-level circle included in the second-level circle.
- Stations 13 to 19 in FIG. 2 actually belong to a certain first-level circle, and each station included in the third-level circle actually belongs to a certain second and first circle.
- the stations in each circle layer belong to an addressing domain, such as a hash domain.
- stations 1 to 6 belong to a first-level addressing domain
- stations 7 to 12 belong to another first-level addressing domain
- site 1 , Site 13 to Site 19 belong to a second-level addressing domain, this part will be expanded later.
- the delay of the station in the third level circle to respond to the client request is 50 milliseconds
- the second level circle The delay for stations in the layer to respond to client requests is 20 milliseconds
- the delay for stations in the first level circle to respond to client requests is 10 milliseconds. Therefore, the edge system will respond to client requests as much as possible with sites in the lower-level circle that are close to the client.
- the client can be a hardware terminal, such as a computer, a mobile phone, or a software module running on the hardware terminal.
- the client generates data operation requests according to business requirements, such as read requests/write requests, and sends the data operation requests to the edge system to operate on the data stored in the edge system.
- the data operation request includes information such as the key and operator of the target data.
- the target data is the operation object of the data operation request, and the key is the information such as the access path and access address of the target data.
- Each site includes at least one operating unit, and each operating unit is a physical computer or a virtual machine.
- the modules included in each site can be distributed to run on each operating unit included in the site.
- the multiple operating units can store each target data in a distributed manner, and each operating unit stores a part of the target data (a fragment of the target data).
- the multiple operating units include a metadata server. When a site includes multiple operating units, the site described below is actually the metadata server.
- the communication network between the stations and the communication network between the station and the client can be a wired communication network or a wireless communication network, for example: the fifth-generation mobile communication technology (5th-Generation, 5G) system, long-term evolution (long term evolution, LTE) system, wireless fidelity (wireless fidelity, WiFi).
- 5th-Generation, 5G fifth-generation mobile communication technology
- LTE long-term evolution
- WiFi wireless fidelity
- the site includes a data storage module for actually storing data.
- the data storage module also stores metadata.
- the metadata records the correspondence between the key of the data and the storage address of the data. Taking object storage as an example in the data storage module, the metadata records the correspondence between the key of the data and the address of the bucket where the data is located.
- the station also includes an addressing module, which is used for addressing in the circle layer where the station is located according to the data operation request after the station receives the data operation request.
- the addressing module includes multiple circle layer addressing modules, and each circle layer addressing module manages an addressing domain.
- the high-level circle-level addressing module continues to address in the high-level circle. Taking site 1 in Figure 2 as an example, site 1 belongs to the first-level circle, the second-level circle, and the third-level circle at the same time.
- station 1 After station 1 receives the data operation request, it is first addressed by the first-level circle-level addressing module in the first-level circle. If the station where the target data is located cannot be found in the first-level circle, it will be The second-level circle-level addressing module addresses in the second-level circle. If the site where the target data is still cannot be found in the second-level circle, the third-level circle-level addressing module will be in the third level. Addressing within the circle layer. The specific addressing algorithm adopted by the addressing module will be introduced later.
- the site also includes a storage interface processing module, which is used to receive data operation requests, parse the data operation requests, and send the parsed parameters to the required modules.
- the site also includes a copy placement strategy configuration module, which is used to configure a copy placement strategy for data requested to be written/modified by a data operation. For example, synchronous processing between replicas in the same circle layer, two copies of three copies in the same circle layer synchronously processing one copy asynchronous processing, and asynchronous processing between copies of the low-level circle layer and the high-level circle layer, etc.
- the station also includes an addressing domain configuration module, which is used to create and modify (when a station is added) each addressing domain, that is, to configure the addressing domain module.
- the site can also run various services. For example, database services, various applications, etc.
- the client accesses the edge system, it may regard the edge system as a storage system, and directly send data operation requests to the edge gateway of the edge system, and the edge gateway sends the data operation request to the storage interface of a certain site for processing Module. In this case, the site does not need to run various services.
- a service is running on the site.
- the client regards the edge system as a database service, the client sends the service call request of the database to the edge gateway, and the edge gateway sends the service call request to A database service running on a site.
- the database service executes the database operation request, it generates a data operation request corresponding to the database operation request, and sends the data operation request to the storage interface processing module.
- the target data of the data operation request may be stored in a site in the lower level circle, or it may be stored in a site in the high level circle.
- the following describes the addressing algorithm in the edge system (that is, looking for The way of the site where the target data is located).
- the data operation request generated by the client is sent to the initial site, and the addressing module in the initial site first addresses the addressing domain of the lowest level circle layer where the initial site is located.
- the addressing algorithm in the addressing domain may adopt flexible routing table (flexible routing table), distributed hash table (distributed hash table) and other methods for addressing.
- the addressing module of each site can directly record the metadata of the data stored in each site in the circle, and the addressing module of the initial site can directly search for the site where the target data is located. This situation is also called the entire network ⁇ (full mesh). In the case of a full grid, since the addressing module needs to record a large amount of metadata, a large amount of storage space is occupied.
- the metadata of the addressing module of each site needs to be modified synchronously, resulting in relatively large communication consumption. Therefore, the full grid is suitable for smaller circles. Floor.
- the distributed hash table can be used for addressing, or further, the flexible routing table can be used for addressing.
- each piece of data stored in the circle layer is represented as a KV (key, value) pair, and the value is the IP address of the site where the data is stored (or other description information of the site).
- KV pairs constitute the index table of the data stored in the circle layer.
- the index table is split and distributed to each site in the circle layer, so that each site is responsible for maintaining part of the index table. Then, by continuously forwarding data operation requests between the sites, it is constantly approaching the site where the target data is located.
- Chord guarantees consistent hashing by mapping sites and keys to the same space.
- a hash function is used to generate a 2 m space (2 m is not less than the largest NID).
- the integers in the space are connected end to end to form a ring, which is called a Chord ring.
- Each point on the Chord ring is called a marker. If a certain site is mapped to a certain identifier, the identifier is called a node.
- the node located in front of a node is called the predecessor node of the node, and the node located behind the node is called the successor node.
- the first successor node is called the immediate successor node
- the first successor node is called the immediate successor node.
- the node identifier (NID, node identifier) can be obtained.
- the NID is obtained by the hash operation from the IP address of the site, and the key identifier (KID) can be obtained after the key is hashed on the Chord ring. ), KID is obtained from the key through hash operation.
- the NID is placed on the Chord ring clockwise from small to large.
- the data corresponding to KID 10 is allocated to NID 14 for storage, and the data corresponding to KID 24 and KID 30 are allocated to NID.
- the data corresponding to KID 38 is allocated to NID 38 for storage, and the data corresponding to KID 54 is allocated to NID 56 for storage.
- Each NID maintains a routing table with at most m entries (also called finger table) for addressing.
- the routing table of a NID contains at least the position of the NID+2 (m-1). Based on the example shown in FIG. 4, refer to FIG. 5.
- KID is denoted as K
- NID is denoted as N.
- the left column of the N8 routing table contains locations from N8+1 to N8+32, and the right column is the actual site corresponding to each location.
- the first row (that is, the correspondence between N8+1 and N14) indicates that the data at the first position after N8 is responsible for N14
- the second row (that is, the correspondence between N8+2 and N14) It means that N14 is responsible for the data in the second position after N8, and the meanings of other rows are similar. Therefore, the routing table of each node contains only a small part of the node's information. The routing table of each node records more locations that are responsible for neighboring successor nodes. For example, N8 records 3 data responsible for N14, while only 1 data responsible for N21 is recorded.
- N42 It can be known from the routing table of N42 that the successor node of N42 is N48, which does not match
- the requirement of 54 ⁇ (42;48] indicates that N48 does not hold the data corresponding to K54, so it starts to look up on the routing table of N42.
- the successor node of the N51 node is N56, which conforms to 54 ⁇ (51;56], addressing is complete.
- the data query request of KID 54 is sent to the station corresponding to NID 51 for processing (hop 3).
- the Chord ring will also be refreshed accordingly.
- the new sites will form new nodes on the Chord ring, and the routing table of each node will be updated accordingly.
- the first-level circle belongs to a second-level circle (for example, the Hubei province circle).
- the client moves to other first-level circles, when the client tries to access the data in the moved first-level circles, the status of each site in the moved first-level circles
- the addressing module will find that no site can be addressed to store the data in this circle.
- the client when the client manipulates the data in the lower level, the data will be synchronized to the higher level or even the higher level.
- the client moves to other first-level circles, although the other first-level circles cannot be addressed to a site to store the target data, if the client's original first-level circle and the The moved first-level circle belongs to the same second-level circle, so if the client cannot address the target data in the moved first-level circle, it can be addressed in the second-level circle The target data, and read the target data to the station in the moved first-level circle for subsequent visits.
- the client's original first-level circle and the moved first-level circle belong to the same In a higher-level circle, if the client cannot address the target data in the moved first-level circle, the target data can be addressed in the higher-level circle, and the target The data is read to the station in the first level circle layer after the movement.
- Figure 7 shows the process of processing the data operation request by the edge system.
- S201 The client requests the edge gateway to send a site access request to request address information of the site.
- the client and the edge gateway communicate through the HTTP/HTTPS protocol, and the client accesses the edge gateway through the domain name of the edge system.
- the edge gateway may be a domain name server (domain name service, DNS).
- DNS domain name service
- the edge gateway selects an initial site for the client based on one or more parameters such as the delay between the client and each site, the workload of each site, and the physical distance between the client and each site.
- S202 The edge gateway sends the selected address information of the initial site to the client.
- the client may send a data operation request or a service invocation request (in the case where the client's direct purpose is to invoke a service running on the site) to the initial site.
- the initial site obtains the data operation request, and parses the data operation request through the storage interface processing module.
- the service running on the initial site generates a data operation request according to the service invocation request.
- the data operation request includes the key and the value of the target data.
- the data operation request may also include circle layer information, and the circle layer information may include a default or indicate a certain level of circle layer. among them,
- Default Instruct the site to complete the writing of target data and the creation/update of the copy in the lowest level circle where the site is located according to the preset method in the copy placement strategy configuration module, and complete the writing of target data to the high level circle. Import and copy creation/update to achieve mobile data follow-up. In which advanced circle layers, data follow can be configured.
- Specified_layer Instruct the site to write target data only in the specified level circle.
- the method of writing the target data can also complete the writing of the target data in the specified level circle according to the preset method in the copy placement strategy configuration module And the creation/update of copies.
- the lowest-level circle-level addressing module of the initial site according to the key of the target data, addresses within the lowest-level circle where the initial site is located, and determines the target site corresponding to the key of the target data.
- the initial site Since the initial site is generally a site closer to the client, not the site responsible for storing the target data specified in the addressing domain, the initial site needs to determine a target based on the key of the target data in the addressing domain where the lowest level circle is located. Site.
- the initial site is the site corresponding to NID 8. If the key of the target data is hashed to obtain a KID of 40, then on the hash ring shown in Figure 6, KID 40 should be stored in NID 42 on the corresponding site. Then, the site corresponding to NID 8 needs to send the target data to the site corresponding to NID 42 for storage.
- S206 The initial site sends the key of the target data and the target data to the target site.
- the initial site determines the address information of the target site according to the index table recorded by itself. According to the address information of the target site, the key and target data of the target data are sent to the target site.
- the target site stores the target data.
- the target site stores the target data, and the target site updates the locally recorded metadata, recording the corresponding relationship between the key of the target data and the storage address of the target data.
- the target site creates/updates the replica in the lowest level circle according to a preset method in the replica placement strategy configuration module. If the target data is newly written data, the target site will create a copy of the target data on other sites in the lowest level circle. If the target data is an overwrite of existing data, then the target site will update a copy of the existing data on other sites in the lowest level circle.
- the specific update method can be synchronous processing of all copies, synchronous processing of partial copies and asynchronous processing of partial copies, and so on.
- S209 The target site notifies the initial site that the target data is written successfully.
- S210 The initial site notifies the client that the target data is successfully written.
- the processing flow of the data operation request is as described in S205 to S210, and the lowest level circle level in S205 to S210 can be replaced with the designated level circle level.
- the execution of S209 can be performed in parallel with the execution of subsequent steps, that is, the execution of S210 does not have to wait for the completion of the replicas in the advanced circles.
- the replica placement strategy configuration module indicates that the replicas between different levels of circles are synchronized, the execution of S210 needs to wait for the replicas in the advanced circles to be processed, that is, it needs to be executed after confirming that the writing is successful in S209 and S215. S210.
- the advanced circle layer addressing module of the initial site addresses the advanced circle layer where the initial site is located according to the key of the target data, and determines other target sites corresponding to the key of the target data in the advanced circle layer.
- the target site determined by the first-level circle-level addressing module of the initial site then in S211, the second-level circle-level addressing module of the initial site continues to search for other target sites in the second-level circle.
- target sites determined in the advanced circle layer are the sites responsible for storing the target data in the addressing domain of the advanced circle layer.
- S212 The initial site sends the key of the target data and the target data to other target sites in the advanced circle.
- Other target sites store the target data, and other target sites update the locally recorded metadata, recording the correspondence between the key of the target data and the storage address of the target data.
- S214 other target sites create/update replicas in the advanced circle layer according to a preset method in the replica placement strategy configuration module.
- the execution of S214 is specifically similar to S208. The difference is that S208 is the operation of the target site on the copy in the lowest level circle, while S214 is the operation of other target sites on the copy in the high level circle.
- the execution of S211 to S215 can be performed in parallel for multiple rounds, each time extending into a higher-level circle.
- the first execution of S211 to S215 writes the target data in the second level circle
- the second execution of S211 to S215 writes the target data in the third level circle, and so on, up to the highest level where the initial site is located
- the target data has been written in the circle.
- the target site determined by the first-level circle-level addressing module of the initial site in S205, the second-level circle-level addressing module of the initial site in S211 continues to search for other target sites in the second-level circle and executes S212 to S215, in parallel, the third-level circle-level addressing module of the initial site continues to search for other target sites in the third-level circle and executes S212 to S215.
- the initial site can send the target data and the key of the target data to other sites belonging to the advanced circle in the lowest circle to perform S211.
- Figure 8 shows the flow of processing the data operation request by the edge system.
- S301 The client requests the edge gateway to send a site access request to request address information of the site.
- the edge gateway selects an initial site for the client.
- the edge gateway sends the selected address information of the initial site to the client.
- the client may send a data operation request or a service call request (in the case where the client's direct purpose is to call a service running on the site) to the initial site.
- S304 The initial site obtains the data operation request, and parses the data operation request through the storage interface processing module.
- the service running on the initial site generates a data operation request according to the service invocation request.
- the data operation request includes the key of the target data.
- the data operation request may also include circle layer information, and the circle layer information may include a default or indicate a certain level of circle layer. among them,
- Default Instruct the site to address the site where the destination data is located from the lowest level circle. If the site where the destination data is located cannot be determined at the lowest level circle level, the site where the destination data is located will be addressed at the high level circle level. .
- Specified_layer Instructs the site to address the site where the destination data is located only in the circle layer of the specified level.
- the circle layer information carried in the data operation request when the target data is written indicates the default
- the circle layer information carried in the data operation request when the target data is subsequently read also indicates default.
- the circle layer information carried in the data operation request when the target data is written indicates the designated circle layer
- the circle layer information carried in the data operation request when the target data is subsequently read also indicates the designated circle layer.
- the lowest-level circle-level addressing module of the initial site addresses the lowest level circle-level where the initial site is located according to the key of the target data, and determines the target site corresponding to the key of the target data.
- S306 The initial site sends the key of the target data to the target site.
- the initial site determines the address information of the target site according to the index table recorded by itself. According to the address information of the target site, the key of the target data is sent to the target site.
- the target site determines whether the target data is stored locally.
- the target site queries the local metadata according to the key of the target data, and judges whether the target data is stored locally at the target site.
- S3081 The destination site sends the destination data to the original site.
- S3082 The initial site sends the destination data to the client.
- the target site can also directly send the target data to the client, and the execution of S3082 is omitted.
- the advanced circle layer addressing module of the destination site addresses in the advanced circle layer where the destination site is located according to the key of the target data, and determines other target sites corresponding to the key of the target data.
- S3084 The target site sends the key of the target data to other target sites.
- S309 The other target sites determine whether the target data is stored locally.
- Other target sites query local metadata based on the key of the target data to determine whether the target data is stored locally on other target sites.
- S3102 The initial site sends the target data to the client.
- the higher level addressing module of other destination sites addresses the higher level ring layer where the destination site is located according to the key of the target data, and determines the target site where the key of the target data is located in the higher level ring layer.
- S307 to S3084 can be repeated multiple times during the process of extending from the low-level circle to the high-level circle.
- the above shows the first repeated process (S309 to S3104).
- the first-level circle-level addressing module of the initial site is addressed in the first-level circle
- the second-level circle-level addressing module of the destination site is addressed in the second-level circle.
- the third-level circle layer addressing modules of other destination sites are addressed in the third-level circle layer.
- the destination site of the lowest-level circle can send the key of the target data to other sites in the lowest-level circle that belong to the high-level circle to perform S3083.
- the destination site in any circle finds the target data, it will stop querying the destination site in the higher level circle, and the data can be retrieved Stored in the destination node of the lowest level circle, so that the destination data can be read later. If the destination data still cannot be queried in the highest-level circle, the destination site in the highest-level circle notifies the initial site that the destination data query failed.
- S3083 and S3084 can be executed by the destination site (other destination sites) or the initial site.
- some optimized addressing algorithms such as distributed sloppy hash table (DSHT)
- DSHT distributed sloppy hash table
- the processing flow of the data operation request is as described in S305 to S307 (the lowest level circle layer is replaced with the specified level circle layer).
- S307 if the target data is stored in To specify the destination site of the level circle, S3081 and S3082 are executed. If the destination data is not stored in the destination site of the designated tier, the destination site of the designated tier will notify the initial site of the failure of the destination data query.
- FIG. 9 provides a computer 400, and each site is implemented by one or more computers 400.
- the operating unit in the site is a physical server
- the operating unit is the computer 400.
- the operating unit in the site is a virtual machine
- the operating unit is a virtual machine running on the computer 400.
- the computer 400 includes a bus 402, a processor 401, and a storage device 403.
- the processor 401 and the storage device 403 communicate through a bus 402.
- the processor 401 may be a central processing unit (CPU).
- the storage device 403 may include a volatile memory device (volatile memory), such as a random access memory device (RAM), or a non-volatile memory device (non-volatile memory), such as a read-only memory device (read-only memory device). -only memory, ROM), flash storage device, HDD or SSD, etc.
- the storage device 403 stores executable instructions, and the processor 401 executes the executable instructions to execute the storage interface processing module, addressing domain configuration module, addressing module, data storage module, and service (optional) in FIG. .
- the storage device 403 may also include executable instructions required to run an operating system (operation system, OS).
- the OS can be LINUX TM , UNIX TM , WINDOWS TM and so on.
- the above embodiments it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
- software it can be implemented in the form of a computer program product in whole or in part.
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instruction may be transmitted from a website, a computer, a server, or a data center through a cable (Such as coaxial cable, optical fiber, digital tenant line or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server or data center.
- the computer-readable storage medium can be accessed by a computer Any usable medium in the data storage device or a data storage device including one or more usable media integrated servers, data centers, etc.
- the usable medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), Or semiconductor media (such as SSD) and so on.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The present disclosure relates to an edge system. The edge system comprises a plurality of first-level circle layers and a second-level circle layer, a geographical area represented by the second-level circle layer comprises geographical areas represented by each of the first-level circle layers, that is, a plurality of first-level circle layers are deployed in the second-level circle layer. Each of the first-level circle layers has a plurality of sites, the plurality of sites comprise an initial site and are included in the second-level circle layer, and the initial site processes a data operation request sent by a client in the first-level circle layer and the second-level circle layer comprising the initial site. The edge system enables more secure and efficient data processing.
Description
本申请涉及计算机技术领域,尤其涉及一种边缘系统以及其执行的数据操作请求的处理方法。This application relates to the field of computer technology, in particular to an edge system and a method for processing data operation requests executed by the edge system.
随着移动通信技术的进步,低时延且计算密集的业务越来越多,例如,虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、车联网。为了降低这类业务对客户端算力的需求,向客户端提供低时延甚至超低时延的服务,云服务提供商将站点(site)部署在靠近用户的边缘。这些站点的地理位置可能高度离散,每个站点内的服务器集群规模一般不大,但是站点个数的规模可以比较大,站点之间的网络往往无专线保障。With the advancement of mobile communication technology, there are more and more low-latency and computationally intensive services, such as virtual reality (VR), augmented reality (AR), and Internet of Vehicles. In order to reduce the computing power requirements of such services on the client and provide low-latency or even ultra-low-latency services to the client, cloud service providers deploy sites near the edge of users. The geographic locations of these sites may be highly discrete, and the server clusters in each site are generally not large, but the number of sites can be relatively large, and the networks between sites are often not guaranteed by dedicated lines.
为了管理这些高度离散的站点,一种方式是采用传统的中心式管理架构,如图1所示。该架构中,站点安装部署启动后,需要向中心管理站点注册站点信息,并要求站点定时向中心管理站点确定连接存活。中心管理站点需要部署数据库服务,用于管理各站点的主机资源、租户资源等信息。由于这些信息存储在中心管理站点,站点上运行的云服务所需的资源的发放、管理、查询都需要操作这些信息。In order to manage these highly discrete sites, one way is to use a traditional centralized management architecture, as shown in Figure 1. In this architecture, after site installation and deployment are started, site information needs to be registered with the central management site, and the site is required to periodically confirm the connection survival with the central management site. The central management site needs to deploy database services to manage the host resources, tenant resources and other information of each site. Since this information is stored in the central management site, the issuance, management, and query of resources required by the cloud services running on the site all need to manipulate this information.
中心式管理架构的弊端在于:扇出(fan out)巨大的中心辐射状拓扑结构会存在站点管理规模受限、低时延用户请求不满足等问题。随着站点数量的增大、站点地理离散性的进一步扩大,中心式管理架构会成为管理的瓶颈。The disadvantage of the centralized management architecture is that the huge fan-out center-and-spoke topology will have problems such as limited site management scale and unsatisfied low-latency user requests. With the increase in the number of sites and the further expansion of the geographical dispersion of sites, the centralized management architecture will become a management bottleneck.
发明内容Summary of the invention
本申请提供了一种边缘系统,该边缘系统通过多圈层的站点设计,实现了移动数据跟随,提升了数据操作请求的处理效率以及数据安全。This application provides an edge system, which implements mobile data following through a multi-circle-layer site design, and improves the processing efficiency of data operation requests and data security.
第一方面提供了一种边缘系统,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域。每个第一级圈层包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层。所述初始站点,由于同时存储在于某一第一级圈层和第二级圈层,用于在包括所述初始站点的第一级圈层和所述第二圈层内处理所述数据操作请求。The first aspect provides an edge system, the edge system includes a plurality of first-level circle layers and second-level circle layers, and the geographic area represented by the second-level circle layer includes each of the first-level circle layers. Geographical area. Each first-level circle layer includes a plurality of sites, and each site is used to process data operation requests sent by a client, and an initial site among the plurality of sites is also included in the second-level circle layer. The initial site is stored in a certain first-level circle layer and second-level circle layer at the same time, and is used to process the data operation in the first-level circle layer and the second circle layer including the initial station request.
以上提供的边缘系统,设计了多级圈层的站点,并且多级圈层之间有站点交汇,这些交汇的站点可以在各圈层内实现数据的操作,保证了数据在不同第一级圈层间移动的情况下,仍然可以保证数据安全、可靠以及数据访问的效率。The edge system provided above is designed with multi-level circle sites, and there are site intersections between the multi-level circle layers. These intersection sites can implement data operations in each circle layer, ensuring that data is in different first-level circles. In the case of moving between layers, data security, reliability, and data access efficiency can still be guaranteed.
一种可能的实现方式中,所述数据操作请求为写请求的情况下;所述初始站点,用于在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据对 应的目标站点,将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点;在所述第二级圈层内寻址所述目标数据对应的目标站点,将所述目标数据发送至所述第二级圈层的目标站点。包括所述初始站点的第一级圈层的目标站点,用于存储所述目标数据。所述第二级圈层的目标站点,用于存储所述目标数据。In a possible implementation manner, when the data operation request is a write request; the initial site is used to address the target carried in the data operation request in the first-level circle layer including the initial site The target site corresponding to the data, the target data is sent to the target site of the first-level circle including the initial site; the target site corresponding to the target data is addressed in the second-level circle, and all The target data is sent to the target site of the second-level circle. The target site including the first level circle layer of the initial site is used to store the target data. The target site of the second level circle layer is used to store the target data.
写请求的情况下,初始站点在第一级圈层和第二级圈层均写入了目标数据,使得客户端后续在同一第一级圈层访问目标数据的情况下,可以高效的在该第一级圈层的站点内获取目标数据。同时,在客户端移动到其他第一级圈层后访问目标数据的情况下,由于原第一级圈层和移动后的第一级圈层同属于一个第二级圈层,可以通过第二级圈层内存储的目标数据为客户端提供服务,保证了客户端访问数据的安全性和可靠性。In the case of a write request, the initial site writes the target data in both the first-level circle and the second-level circle, so that if the client subsequently accesses the target data in the same first-level circle, it can efficiently access the target data. Obtain target data in the first-level circle site. At the same time, when the client accesses the target data after moving to other first-level circles, since the original first-level circles and the moved first-level circles belong to the same second-level circle, they can pass through the second level. The target data stored in the level circle layer provides services for the client, ensuring the security and reliability of the client's access to the data.
一种可能的实现方式中,包括所述初始站点的第一级圈层的目标站点,还用于在包括所述初始站点的第一级圈层的其他站点上创建或更新所述目标数据的副本。In a possible implementation manner, the target site that includes the first-level circle of the initial site is also used to create or update the target data on other sites that include the first-level circle of the initial site Copy.
一种可能的实现方式中,所述第二级圈层的目标站点,还用于在所述第二级圈层的其他站点上创建或更新所述目标数据的副本。In a possible implementation manner, the target site of the second-level circle is also used to create or update a copy of the target data on other sites of the second-level circle.
通过在各级圈层内实现目标数据的副本,提升了目标数据的安全性。By realizing the copy of the target data at all levels, the security of the target data is improved.
一种可能的实现方式中,所述数据操作请求为读请求的情况下;所述初始站点,用于在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据的键key对应的目标站点;包括所述初始站点的第一级圈层的目标站点,用于确定所述目标数据是否存储于包括所述初始站点的第一级圈层的目标站点本地,如果所述目标数据存储于包括所述初始站点的第一级圈层的目标站点本地,将所述目标数据发送至所述客户端,如果所述目标数据未存储于包括所述初始站点的第一级圈层的目标站点本地,在所述第二级圈层内寻址所述目标数据的key对应的目标站点;所述第二级圈层的目标站点,用于确定所述目标数据存储于所述第二级圈层的目标站点本地,将所述目标数据发送至所述客户端。In a possible implementation manner, when the data operation request is a read request; the initial site is used to address the target carried in the data operation request in the first-level circle layer including the initial site The target site corresponding to the key of the data; the target site of the first-level circle including the initial site, used to determine whether the target data is stored locally in the target site of the first-level circle including the initial site, If the target data is stored locally at the target site including the first level circle layer of the initial site, the target data is sent to the client; if the target data is not stored in the first site including the initial site The target site of the first level circle layer is local, and the target site corresponding to the key of the target data is addressed in the second level circle layer; the target site of the second level circle layer is used to determine the target data storage Send the target data to the client locally at the target site of the second-level circle.
读请求的情况下,如前文所述,首先尝试在距离客户端较近的第一级圈层内寻找目标数据,如果无法找到的情况下,在第二级圈层内寻找目标数据,实现了数据操作的效率和安全的兼顾。In the case of a read request, as described above, first try to find the target data in the first-level circle that is closer to the client. If it cannot be found, search for the target data in the second-level circle. The efficiency and safety of data operation are both considered.
一种可能的实现方式中,所述第二级圈层的目标站点,还用于将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点。In a possible implementation manner, the target site of the second-level circle is also used to send the target data to the target site of the first-level circle that includes the initial site.
将目标数据发送至包括所述初始站点的第一级圈层的目标站点,使得该目标数据后续在包括所述初始站点的第一级圈层内被访问时,可以直接在包括所述初始站点的第一级圈层内寻找到,提升了工作效率。Send target data to the target site of the first-level circle that includes the initial site, so that when the target data is subsequently accessed in the first-level circle that includes the initial site, it can be directly included in the initial site. It is found in the first-level circle, which improves work efficiency.
第二方面提供了一种数据操作请求的处理方法,该数据操作请求为写请求,所述数据操作请求的处理方法应用于边缘系统,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域,每个第一级圈层包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层;所述初始站点在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据对应的目标站点;所述初始站点将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点;包括所述初 始站点的第一级圈层的目标站点存储所述目标数据;所述初始站点在所述第二级圈层内寻址所述目标数据对应的目标站点,将所述目标数据发送至所述第二级圈层的目标站点;所述第二级圈层的目标站点存储所述目标数据。The second aspect provides a method for processing a data operation request. The data operation request is a write request. The processing method for the data operation request is applied to an edge system. The edge system includes a plurality of first-level circles and a second Level circle layer, the geographic area represented by the second level circle layer includes the geographic area represented by each first level circle layer, each first level circle layer includes multiple sites, and each site is used to process the data sent by the client A data operation request, including an initial site in the plurality of sites, is also included in the second-level circle; the initial site addresses the data operation request carried in the first-level circle that includes the initial site The target site corresponding to the target data of the initial site; the initial site sends the target data to the target site of the first-level circle that includes the initial site; the target site storage of the first-level circle that includes the initial site The target data; the initial site addresses the target site corresponding to the target data in the second-level circle, and sends the target data to the target site of the second-level circle; the second The target sites in the tier circle store the target data.
所述初始站点在包括所述初始站点的第一级圈层内寻址和所述初始站点在所述第二级圈层内寻址的动作可以并行执行。The actions of addressing the initial site in the first level circle layer including the initial site and the actions of addressing the initial site in the second level circle layer may be performed in parallel.
一种可能的实现方式中,该方法还包括:包括所述初始站点的第一级圈层的目标站点在包括所述初始站点的第一级圈层的其他站点上创建或更新所述目标数据的副本。In a possible implementation manner, the method further includes: the target site of the first-level circle including the initial site creates or updates the target data on other sites of the first-level circle including the initial site a copy of.
一种可能的实现方式中,该方法还包括:所述第二级圈层的目标站点在所述第二级圈层的其他站点上创建或更新所述目标数据的副本。In a possible implementation manner, the method further includes: the target site of the second-level circle creates or updates a copy of the target data on other sites of the second-level circle.
第三方面提供了一种数据操作请求的处理方法,该数据操作请求为读请求,所述数据操作请求的处理方法应用于边缘系统,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域,每个第一级圈层,包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层;所述初始站点在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据的键key对应的目标站点;包括所述初始站点的第一级圈层的目标站点确定所述目标数据是否存储于包括所述初始站点的第一级圈层的目标站点本地;如果所述目标数据存储于包括所述初始站点的第一级圈层的目标站点本地,将所述目标数据发送至所述客户端;如果所述目标数据未存储于包括所述初始站点的第一级圈层的目标站点本地,在所述第二级圈层内寻址所述目标数据的key对应的目标站点;所述第二级圈层的目标站点确定所述目标数据存储于所述第二级圈层的目标站点本地,将所述目标数据发送至所述客户端。A third aspect provides a method for processing a data operation request. The data operation request is a read request. The processing method for the data operation request is applied to an edge system. The edge system includes a plurality of first-level circles and a second The geographic area represented by the second-level circle layer includes the geographic area represented by each first-level circle layer, and each first-level circle layer includes multiple sites, and each site is used to process client sending The data operation request of the plurality of sites including an initial site is also included in the second-level circle; the initial site addresses the data operation request in the first-level circle that includes the initial site The target site corresponding to the key of the carried target data; the target site of the first-level circle including the initial site determines whether the target data is stored locally in the target site of the first-level circle including the initial site; If the target data is stored locally in the target site including the first level circle layer of the initial site, the target data is sent to the client; if the target data is not stored in the first site including the initial site The target site of the first level circle layer is local, and the target site corresponding to the key of the target data is addressed in the second level circle layer; the target site of the second level circle layer determines that the target data is stored in the The target site of the second-level circle layer sends the target data to the client locally.
一种可能的实现方式中,该方法还包括:所述第二级圈层的目标站点将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点。In a possible implementation manner, the method further includes: the target station of the second-level circle layer sending the target data to the target station of the first-level circle layer including the initial station.
所述第二级圈层的目标站点将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点和所述第二级圈层的目标站点将所述目标数据发送至所述客户端的动作可以并行执行。The target station of the second-level circle layer sends the target data to the target station of the first-level circle layer including the initial station and the target station of the second-level circle layer sends the target data to all The actions of the client can be executed in parallel.
第四方面提供了一种非瞬态的可读存储介质,该非瞬态的可读存储介质中存储的指令被边缘的各站点系统执行时,该系统执行前述第三方面及其可能的实现方式或第四方面及其可能的实现方式提供的方法。该存储介质中存储了程序指令。该存储介质包括但不限于易失性存储设备,例如随机访问存储设备,和非易失性存储设备,例如快闪存储设备、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。The fourth aspect provides a non-transitory readable storage medium. When the instructions stored in the non-transitory readable storage medium are executed by each edge site system, the system executes the aforementioned third aspect and its possible implementation Or the method provided by the fourth aspect and its possible implementations. Program instructions are stored in the storage medium. The storage medium includes, but is not limited to, volatile storage devices, such as random access storage devices, and non-volatile storage devices, such as flash storage devices, hard disk drives (HDD), and solid state drives (SSDs). ).
第五方面提供了一种计算机程序产品,该计算机程序产品包含的指令被边缘系统执行时,该系统执行前述第三方面及其可能的实现方式或第四方面及其可能的实现方式提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面及其可能的实现方式提供的方法的情况下,可以下载该计算机程序产品并在边缘系统的各站点上执行该计算机程序产品包含的指令。The fifth aspect provides a computer program product. When the instructions contained in the computer program product are executed by the edge system, the system executes the foregoing third aspect and its possible implementation manners or the fourth aspect and its possible implementation manners. . The computer program product may be a software installation package. In the case of using the method provided in the first aspect and its possible implementation manners, the computer program product may be downloaded and executed on each site of the edge system The instructions included.
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需要使用的附图作以简单地介绍。In order to explain the technical methods of the embodiments of the present application more clearly, the following will briefly introduce the drawings that need to be used in the embodiments.
图1为本申请提供的边缘系统的结构示意图;Figure 1 is a schematic diagram of the structure of the edge system provided by this application;
图2为本申请提供的另一边缘系统的结构示意图;Figure 2 is a schematic structural diagram of another edge system provided by this application;
图3为本申请提供的一种边缘站点的结构示意图;Figure 3 is a schematic structural diagram of an edge site provided by this application;
图4为本申请提供的一种寻址算法的哈希环的结构示意图;FIG. 4 is a schematic structural diagram of a hash ring of an addressing algorithm provided by this application;
图5为本申请提供的另一种寻址算法的哈希环的结构示意图;FIG. 5 is a schematic structural diagram of a hash ring of another addressing algorithm provided by this application;
图6为本申请提供的另一种寻址算法的哈希环的结构示意图;FIG. 6 is a schematic structural diagram of a hash ring of another addressing algorithm provided by this application;
图7为本申请提供的一种数据操作请求的处理流程图;FIG. 7 is a processing flowchart of a data operation request provided by this application;
图8为本申请提供的另一种数据操作请求的处理流程图;FIG. 8 is a processing flowchart of another data operation request provided by this application;
图9为本申请提供的一种计算机的结构示意图。Fig. 9 is a schematic structural diagram of a computer provided by this application.
下面结合本申请实施例中的附图,对本申请实施例中的技术方法进行描述。The technical methods in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
如图2所示,本申请提供了一种边缘系统。该边缘系统包括多个站点。该边缘系统中包括多级圈层,该边缘系统中可以有一个或多个同级圈层,每个站点可以同时归属于多个不同级的圈层,每个站点不能同时归属于多个同级圈层。图2中仅示出了边缘系统的一部分,其余可能存在的装置,例如边缘系统的边缘网关被省略了。As shown in Figure 2, the present application provides an edge system. The edge system includes multiple sites. The edge system includes multi-level circles. The edge system can have one or more circles of the same level. Each site can belong to multiple circles of different levels at the same time. Each site cannot belong to multiple circles at the same time. Level circle layer. Figure 2 shows only a part of the edge system, and other possible devices, such as the edge gateway of the edge system, are omitted.
圈层,一般而言,不同的圈层代表了不同的地理区域。高级圈层代表着更大的地理区域,低级圈层代表着更小的地理区域。同级的不同圈层代表着不同的同级地理区域。每个高级圈层代表的地理区域内包括至少一个低级圈层。例如,第三级圈层代表着一个国家,第二级圈层代表着一个省,第一级圈层代表着一个市。那么,第三级圈层代表的地理区域内包括了至少一个第二级圈层,而每个第二级圈层代表的地理区域内包括了至少一个第一级圈层。高级圈层内的站点归属于该高级圈层代表的地理区域内包括的某一低级圈层。例如,第三级圈层内的站点1归属于第三级圈层包括的某一第二级圈层,站点1也归属于第二级圈层包括的某一第一级圈层。图2中的站点13至站点19实际属于某一第一级圈层,第三级圈层包括的每个站点实际也属于某一第二圈层和第一圈层。每个圈层中的站点属于一个寻址域,例如哈希域,例如站点1至站点6属于一个第一级寻址域,站点7至站点12属于另一个第一级寻址域,站点1、站点13至站点19属于一个第二级寻址域,这部分会在后文中展开。Circles, generally speaking, different circles represent different geographic areas. The high-level circles represent a larger geographic area, and the low-level circles represent a smaller geographic area. Different circles at the same level represent different geographical areas at the same level. The geographic area represented by each high-level circle includes at least one low-level circle. For example, the third-level circle represents a country, the second-level circle represents a province, and the first-level circle represents a city. Then, the geographic area represented by the third-level circle layer includes at least one second-level circle layer, and the geographic area represented by each second-level circle layer includes at least one first-level circle layer. The sites in the high-level circle belong to a certain low-level circle included in the geographic area represented by the high-level circle. For example, site 1 in the third-level circle belongs to a certain second-level circle included in the third-level circle, and site 1 also belongs to a certain first-level circle included in the second-level circle. Stations 13 to 19 in FIG. 2 actually belong to a certain first-level circle, and each station included in the third-level circle actually belongs to a certain second and first circle. The stations in each circle layer belong to an addressing domain, such as a hash domain. For example, stations 1 to 6 belong to a first-level addressing domain, and stations 7 to 12 belong to another first-level addressing domain, site 1 , Site 13 to Site 19 belong to a second-level addressing domain, this part will be expanded later.
越高级的圈层内站点部署的物理区域越分散,因此向客户端提供服务的时延也越高,例如第三级圈层内站点响应客户端请求的时延为50毫秒,第二级圈层内站点响应客户端请求的时延为20毫秒,第一级圈层内站点响应客户端请求的时延为10毫秒。因此,边缘系统会尽可能的用靠近客户端的低级圈层内的站点来响应客户端请求。The higher the level of the circle, the more scattered the physical area of the site deployment, so the delay of providing services to the client is also higher. For example, the delay of the station in the third level circle to respond to the client request is 50 milliseconds, and the second level circle The delay for stations in the layer to respond to client requests is 20 milliseconds, and the delay for stations in the first level circle to respond to client requests is 10 milliseconds. Therefore, the edge system will respond to client requests as much as possible with sites in the lower-level circle that are close to the client.
客户端,可以为硬件终端,例如电脑、手机,或者运行在硬件终端上的软件模块。客户端根据业务需求产生数据操作请求,例如读请求/写请求,将数据操作请求发送至边缘系统以对边缘系统内存储的数据进行操作。数据操作请求包括了目标数据的键key和操作符等信息,目标数据也即该数据操作请求的操作对象,key为目标数据的 访问路径、访问地址等信息。The client can be a hardware terminal, such as a computer, a mobile phone, or a software module running on the hardware terminal. The client generates data operation requests according to business requirements, such as read requests/write requests, and sends the data operation requests to the edge system to operate on the data stored in the edge system. The data operation request includes information such as the key and operator of the target data. The target data is the operation object of the data operation request, and the key is the information such as the access path and access address of the target data.
每个站点包括了至少一个运行单元,每个运行单元为一台物理计算机或一台虚拟机。每个站点包括的模块可以分布式的运行在该站点包括的各个运行单元上。当站点包括多个运行单元时,这多个运行单元可以分布式的存储每个目标数据,每个运行单元存储该目标数据的一部分(目标数据的分片)。这多个运行单元包括一个元数据服务器(metadata server)在站点包括多个运行单元时,下文描述的站点实际是该元数据服务器。站点之间的通信网络和站点和客户端之间的通信网络可以是有线的通信网络,也可以是无线的通信网络,例如:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long term evolution,LTE)系统、无线保真(wireless fidelity,WiFi)。Each site includes at least one operating unit, and each operating unit is a physical computer or a virtual machine. The modules included in each site can be distributed to run on each operating unit included in the site. When a site includes multiple operating units, the multiple operating units can store each target data in a distributed manner, and each operating unit stores a part of the target data (a fragment of the target data). The multiple operating units include a metadata server. When a site includes multiple operating units, the site described below is actually the metadata server. The communication network between the stations and the communication network between the station and the client can be a wired communication network or a wireless communication network, for example: the fifth-generation mobile communication technology (5th-Generation, 5G) system, long-term evolution (long term evolution, LTE) system, wireless fidelity (wireless fidelity, WiFi).
如图3所示,站点包括数据存储模块,用于实际存储数据,数据存储模块还存储了元数据,元数据记录了数据的key和数据的存储地址的对应关系。以数据存储模块采用对象存储为例,则元数据记录了数据的key和数据所在的桶的地址的对应关系。As shown in Figure 3, the site includes a data storage module for actually storing data. The data storage module also stores metadata. The metadata records the correspondence between the key of the data and the storage address of the data. Taking object storage as an example in the data storage module, the metadata records the correspondence between the key of the data and the address of the bucket where the data is located.
站点还包括寻址模块,寻址模块用于在站点接收到数据操作请求后,根据数据操作请求在站点所在的圈层内寻址。站点属于多个圈层的时候,寻址模块包括多个圈层寻址模块,每个圈层寻址模块管理一个寻址域。低级圈层寻址模块无法在本圈层内寻址到目标数据所在的站点时,由高级圈层寻址模块继续在高级圈层内寻址。以图2中的站点1为例,站点1同时属于第一级圈层、第二级圈层、第三级圈层。因此,站点1接收到数据操作请求后,首先由第一级圈层寻址模块在第一级圈层内寻址,如果无法在第一级圈层内寻找到目标数据所在的站点,则由第二级圈层寻址模块在第二级圈层内寻址,如果仍旧无法在第二级圈层内寻找到目标数据所在的站点,则由第三级圈层寻址模块在第三级圈层内寻址。寻址模块采用的具体寻址算法将在后文中介绍。The station also includes an addressing module, which is used for addressing in the circle layer where the station is located according to the data operation request after the station receives the data operation request. When a site belongs to multiple circle layers, the addressing module includes multiple circle layer addressing modules, and each circle layer addressing module manages an addressing domain. When the low-level circle-level addressing module cannot address the site where the target data is located in this circle-level, the high-level circle-level addressing module continues to address in the high-level circle. Taking site 1 in Figure 2 as an example, site 1 belongs to the first-level circle, the second-level circle, and the third-level circle at the same time. Therefore, after station 1 receives the data operation request, it is first addressed by the first-level circle-level addressing module in the first-level circle. If the station where the target data is located cannot be found in the first-level circle, it will be The second-level circle-level addressing module addresses in the second-level circle. If the site where the target data is still cannot be found in the second-level circle, the third-level circle-level addressing module will be in the third level. Addressing within the circle layer. The specific addressing algorithm adopted by the addressing module will be introduced later.
站点还包括存储接口处理模块,用于接收数据操作请求,解析数据操作请求,将解析出的参数发送至所需的模块。The site also includes a storage interface processing module, which is used to receive data operation requests, parse the data operation requests, and send the parsed parameters to the required modules.
站点还包括副本放置策略配置模块,用于配置数据操作请求写入/修改的数据的副本放置策略。例如,同圈层内各副本间同步处理、同圈层内3个副本中2个副本同步处理1个副本异步处理、低级圈层和高级圈层的副本间异步处理等。The site also includes a copy placement strategy configuration module, which is used to configure a copy placement strategy for data requested to be written/modified by a data operation. For example, synchronous processing between replicas in the same circle layer, two copies of three copies in the same circle layer synchronously processing one copy asynchronous processing, and asynchronous processing between copies of the low-level circle layer and the high-level circle layer, etc.
站点还包括寻址域配置模块,用于创建、修改(有站点加入时)各寻址域,也即对寻址域模块进行配置。The station also includes an addressing domain configuration module, which is used to create and modify (when a station is added) each addressing domain, that is, to configure the addressing domain module.
可选的,站点还可以运行有各类服务。例如,数据库服务,各类应用等。一种情况下,客户端访问边缘系统的时候,可能把边缘系统视为一个存储系统,直接发送数据操作请求至边缘系统的边缘网关,边缘网关将数据操作请求发送至某一站点的存储接口处理模块。这种情况下,站点可以不必运行各类服务。Optionally, the site can also run various services. For example, database services, various applications, etc. In one case, when the client accesses the edge system, it may regard the edge system as a storage system, and directly send data operation requests to the edge gateway of the edge system, and the edge gateway sends the data operation request to the storage interface of a certain site for processing Module. In this case, the site does not need to run various services.
在另一种情况下,站点上运行了服务,以数据库服务为例,客户端将边缘系统视为数据库服务,客户端将数据库的服务调用请求发送至边缘网关,边缘网关将服务调用请求发送至某一站点上运行的数据库服务。数据库服务执行该数据库操作请求后,生成了该数据库操作请求对应的数据操作请求,将数据操作请求发送至存储接口处理模块。In another case, a service is running on the site. Taking the database service as an example, the client regards the edge system as a database service, the client sends the service call request of the database to the edge gateway, and the edge gateway sends the service call request to A database service running on a site. After the database service executes the database operation request, it generates a data operation request corresponding to the database operation request, and sends the data operation request to the storage interface processing module.
在边缘系统中,数据操作请求的目标数据可能存储于低级圈层的某一站点内,也可能存储于高级圈层的某一站点内,以下介绍该边缘系统中的寻址算法(也即寻找目标数据所在的站点的方式)。In the edge system, the target data of the data operation request may be stored in a site in the lower level circle, or it may be stored in a site in the high level circle. The following describes the addressing algorithm in the edge system (that is, looking for The way of the site where the target data is located).
客户端生成的数据操作请求被发送至初始站点,初始站点内的寻址模块首先在该初始站点所在的最低级圈层的寻址域内寻址。具体的,寻址域内的寻址算法可以采用弹性路由表(flexible routing table),分布式哈希表(distributed hash table)等方式寻址。或者每个站点的寻址模块可以直接记录圈层内每个站点存储的数据的元数据,则初始站点的寻址模块可以直接搜索到目标数据所在的站点,这种情况也称之为全网格(full mesh)。全网格情况下,由于寻址模块需要记录大量元数据,占用了大量的存储空间。同时,当任一站点存储的目标数据被修改的情况下,各站点的寻址模块的元数据都需要被同步修改,造成了比较大的通信消耗,因此全网格适用于规模较小的圈层。当圈层规模较大,圈层内站点数量较多的情况下,可以使用分布式哈希表的方式来寻址,或者进一步的,采用弹性路由表的方式来寻址。The data operation request generated by the client is sent to the initial site, and the addressing module in the initial site first addresses the addressing domain of the lowest level circle layer where the initial site is located. Specifically, the addressing algorithm in the addressing domain may adopt flexible routing table (flexible routing table), distributed hash table (distributed hash table) and other methods for addressing. Or the addressing module of each site can directly record the metadata of the data stored in each site in the circle, and the addressing module of the initial site can directly search for the site where the target data is located. This situation is also called the entire network格 (full mesh). In the case of a full grid, since the addressing module needs to record a large amount of metadata, a large amount of storage space is occupied. At the same time, when the target data stored in any site is modified, the metadata of the addressing module of each site needs to be modified synchronously, resulting in relatively large communication consumption. Therefore, the full grid is suitable for smaller circles. Floor. When the scale of the circle is large and the number of sites in the circle is large, the distributed hash table can be used for addressing, or further, the flexible routing table can be used for addressing.
以下以分布式哈希表为例,介绍一个圈层的寻址域内的寻址算法。首先,该圈层内存储的每条数据被表示成一个KV(key,value)对,value为存储该数据的站点的IP地址(或站点的其他描述信息)。这些KV对构成了该圈层内存储的数据的索引表。按照特定的规则把索引表拆分后分布到圈层中的各个站点上,使得每个站点负责维护其中的部分的索引表。然后,通过在站点间不断转发数据操作请求,不断逼近目标数据所在的站点。The following uses a distributed hash table as an example to introduce the addressing algorithm in the addressing domain of a circle layer. First, each piece of data stored in the circle layer is represented as a KV (key, value) pair, and the value is the IP address of the site where the data is stored (or other description information of the site). These KV pairs constitute the index table of the data stored in the circle layer. According to specific rules, the index table is split and distributed to each site in the circle layer, so that each site is responsible for maintaining part of the index table. Then, by continuously forwarding data operation requests between the sites, it is constantly approaching the site where the target data is located.
以Chord算法为例介绍分布式哈希表的一种实现方式。Chord通过把站点和key映射到相同的空间而保证一致性哈希。首先采用哈希函数产生一个2
m的空间(2
m不小于最大的NID),空间内的整数首尾相连形成一个环,称之为Chord环。Chord环上的每个点称为标志符。如果某个站点被映射到了某个标志符,则称该标志符为节点。按Chord环上顺时针方向,位于一节点前面的称为该节点的前继(predecessor)节点,位于一节点后面的该节点的称为后继(successor)节点。第一个前继节点称之为直接前继节点,第一个后继节点称之为直接后继节点。站点被哈希到Chord环上之后可以获得节点标识(NID,node identifier),NID由站点的IP地址通过哈希运算得到,key被哈希到Chord环上之后可以获得键标识(key identifier,KID),KID由key通过哈希运算得到。NID由小至大顺时针放在Chord环上。每个KID对应的数据被分配到NID≥KID的站点上存储。如图4所示,针对m=6的Chord环,有10个NID,5个KID,其中,KID 10对应的数据被分配到NID 14上存储,KID 24和KID 30对应的数据被分配到NID 32上存储,KID 38对应的数据被分配到NID 38上存储,KID 54对应的数据被分配到NID 56上存储。
Take Chord algorithm as an example to introduce an implementation of distributed hash table. Chord guarantees consistent hashing by mapping sites and keys to the same space. First, a hash function is used to generate a 2 m space (2 m is not less than the largest NID). The integers in the space are connected end to end to form a ring, which is called a Chord ring. Each point on the Chord ring is called a marker. If a certain site is mapped to a certain identifier, the identifier is called a node. According to the clockwise direction on the Chord ring, the node located in front of a node is called the predecessor node of the node, and the node located behind the node is called the successor node. The first successor node is called the immediate successor node, and the first successor node is called the immediate successor node. After the site is hashed to the Chord ring, the node identifier (NID, node identifier) can be obtained. The NID is obtained by the hash operation from the IP address of the site, and the key identifier (KID) can be obtained after the key is hashed on the Chord ring. ), KID is obtained from the key through hash operation. The NID is placed on the Chord ring clockwise from small to large. The data corresponding to each KID is allocated to the site with NID≥KID for storage. As shown in Figure 4, for the Chord ring with m=6, there are 10 NIDs and 5 KIDs. Among them, the data corresponding to KID 10 is allocated to NID 14 for storage, and the data corresponding to KID 24 and KID 30 are allocated to NID. 32, the data corresponding to KID 38 is allocated to NID 38 for storage, and the data corresponding to KID 54 is allocated to NID 56 for storage.
每个NID上都维护了最多有m项的路由表(也称之为finger table)用来寻址。一个NID的路由表至少包含到该NID+2
(m-1)的位置。基于图4所示的示例,参见图5,图5中简化的将KID记为K,NID记为N。N8路由表的左边一栏包含了N8+1到N8+32的位置,右边一栏为每个位置对应的实际存在的站点。比如第一行(即N8+1与N14之间的对应关系)表示在N8后的第一个位置上的数据由N14来负责,第二行(即N8+2与N14之间的对应关系)表示N8后的第二个位置上的数据由N14来负责,其他行的 含义类似。因此,每个节点的路由表只包含一小部分节点的信息。每个节点的路由表中对于临近的后继节点负责的位置记录的更多,比如N8中记录了3处对于N14负责的数据,而对N21负责的数据只记录了1处。当在某个节点上查找资源时,首先判断其后继节点是不是就持有该资源,若没有则直接从该节点的路由表中的最远处开始查找,看哪一项离持有数据的节点最近,并将寻址请求发送给该节点,若没有则说明本节点自身就有要寻找的资源,如此迭代。
Each NID maintains a routing table with at most m entries (also called finger table) for addressing. The routing table of a NID contains at least the position of the NID+2 (m-1). Based on the example shown in FIG. 4, refer to FIG. 5. In FIG. 5, KID is denoted as K, and NID is denoted as N. The left column of the N8 routing table contains locations from N8+1 to N8+32, and the right column is the actual site corresponding to each location. For example, the first row (that is, the correspondence between N8+1 and N14) indicates that the data at the first position after N8 is responsible for N14, and the second row (that is, the correspondence between N8+2 and N14) It means that N14 is responsible for the data in the second position after N8, and the meanings of other rows are similar. Therefore, the routing table of each node contains only a small part of the node's information. The routing table of each node records more locations that are responsible for neighboring successor nodes. For example, N8 records 3 data responsible for N14, while only 1 data responsible for N21 is recorded. When searching for a resource on a node, first determine whether its successor node holds the resource, if not, start the search directly from the farthest point in the routing table of the node to see which item is away from the one holding the data The node is the most recent and sends an addressing request to the node. If not, it means that the node itself has the resource to be found, so iterate.
例如,参见图5和图6,在N8寻找K54对应的数据,首先,在N8路由表上查找后继节点为N14,发现K54并不符合54∈(8;14]的要求,那么在N8路由表上查找符合要求的表项(由远及近查找,以图5为例也即从路由表的底部向上查找),发现路由表中最远的一项N8+32->N42满足42∈(8;54],则说明N42离持有K54对应的数据的节点最近,那么跳转到N42上继续查找(第1跳)。通过N42的路由表可以得知,N42的后继节点为N48,不符合54∈(42;48]的要求,说明N48不持有K54对应的数据,因此开始在N42的路由表上查找。在N42节点的路由表中由远及近开始查找,发现N42+8->N51满足51∈(42;54],则说明N51离持有K54对应的数据的节点最近,那么此时跳到N51节点上继续查找(第2跳)。N51节点的后继节点为N56,符合54∈(51;56],寻址完成。KID 54的数据查询请求被发送至NID 51对应的站点进行处理(第3跳)。For example, referring to Figures 5 and 6, looking for the data corresponding to K54 in N8, first, search the N8 routing table for the successor node N14, and find that K54 does not meet the requirements of 54 ∈ (8; 14), then in the N8 routing table Look up the entry that meets the requirements (from far to near, take Figure 5 as an example, that is to look up from the bottom of the routing table), and find that the farthest entry in the routing table N8+32->N42 satisfies 42 ∈ (8 54], it means that N42 is closest to the node holding the data corresponding to K54, then jump to N42 to continue searching (first hop). It can be known from the routing table of N42 that the successor node of N42 is N48, which does not match The requirement of 54∈(42;48] indicates that N48 does not hold the data corresponding to K54, so it starts to look up on the routing table of N42. In the routing table of N42 node, it starts to look up from far to near, and it is found that N42+8-> If N51 satisfies 51 ∈ (42; 54], it means that N51 is closest to the node holding the data corresponding to K54, then jump to the N51 node to continue searching (the second hop). The successor node of the N51 node is N56, which conforms to 54 Ε(51;56], addressing is complete. The data query request of KID 54 is sent to the station corresponding to NID 51 for processing (hop 3).
在有新增站点的情况下,Chord环也要随之刷新,新的站点会在Chord环上形成新的节点,各节点的路由表也会随之更新。In the case of newly added sites, the Chord ring will also be refreshed accordingly. The new sites will form new nodes on the Chord ring, and the routing table of each node will be updated accordingly.
如果一个客户端原先在第一级圈层内(例如武汉市圈层)存储了数据,该第一级圈层属于一第二级圈层(例如湖北省圈层)。随着该客户端移动到了其他的第一级圈层后,当该客户端在移动后的第一级圈层内尝试访问该数据时,该移动后的第一级圈层内的各站点的寻址模块会发现在本圈层内无法寻址到任一站点存储了该数据。If a client originally stored data in the first-level circle (for example, the Wuhan city circle), the first-level circle belongs to a second-level circle (for example, the Hubei province circle). As the client moves to other first-level circles, when the client tries to access the data in the moved first-level circles, the status of each site in the moved first-level circles The addressing module will find that no site can be addressed to store the data in this circle.
为了避免这个情况,保证客户端的移动数据跟随,客户端在低级圈层内操作数据的时候,会将该数据同步至高一级圈层乃至更高级圈层。这样,当客户端移动到其他的第一级圈层时,虽然其他的第一级圈层内的无法寻址到一站点存储了目标数据,但如果客户端的原所在的第一级圈层和移动后的第一级圈层属于同一第二级圈层,那么客户端在移动后的第一级圈层内寻址不到目标数据的情况下,可以在第二级圈层内寻址到该目标数据,并将该目标数据读取至移动后的第一级圈层内的站点以便后续的访问。即使客户端的原所在的第一级圈层和移动后的第一级圈层不属于同一第二级圈层,客户端的原所在的第一级圈层和移动后的第一级圈层会同属于某一更高级的圈层,那么客户端在移动后的第一级圈层内寻址不到目标数据的情况下,可以在该更高级圈层内寻址到该目标数据,并将该目标数据读取至移动后的第一级圈层内的站点。In order to avoid this situation and ensure that the mobile data of the client follow, when the client manipulates the data in the lower level, the data will be synchronized to the higher level or even the higher level. In this way, when the client moves to other first-level circles, although the other first-level circles cannot be addressed to a site to store the target data, if the client's original first-level circle and the The moved first-level circle belongs to the same second-level circle, so if the client cannot address the target data in the moved first-level circle, it can be addressed in the second-level circle The target data, and read the target data to the station in the moved first-level circle for subsequent visits. Even if the client’s original first-level circle and the moved first-level circle do not belong to the same second-level circle, the client's original first-level circle and the moved first-level circle belong to the same In a higher-level circle, if the client cannot address the target data in the moved first-level circle, the target data can be addressed in the higher-level circle, and the target The data is read to the station in the first level circle layer after the movement.
以下,以数据操作请求为写请求和读请求分别介绍本申请提供的边缘系统的实施流程。In the following, the implementation process of the edge system provided in this application is introduced with the data operation request as the write request and the read request respectively.
数据操作请求为写请求的情况下,图7展示边缘系统处理数据操作请求的流程。When the data operation request is a write request, Figure 7 shows the process of processing the data operation request by the edge system.
S201,客户端向边缘网关请求发送站点访问请求,以请求站点的地址信息。S201: The client requests the edge gateway to send a site access request to request address information of the site.
常见的,客户端和边缘网关间通过HTTP/HTTPS协议通信,客户端通过边缘系统的域名访问边缘网关。此种情况下,边缘网关可以是域名服务器(domain name service, DNS)。边缘网关根据客户端和各站点之间的时延、各站点的工作负载、客户端和各站点间的物理距离等一项或多项参数,为客户端选择一个初始站点。Commonly, the client and the edge gateway communicate through the HTTP/HTTPS protocol, and the client accesses the edge gateway through the domain name of the edge system. In this case, the edge gateway may be a domain name server (domain name service, DNS). The edge gateway selects an initial site for the client based on one or more parameters such as the delay between the client and each site, the workload of each site, and the physical distance between the client and each site.
S202,边缘网关将选择出的初始站点的地址信息发送至客户端。S202: The edge gateway sends the selected address information of the initial site to the client.
S203,如前文所述,客户端可以发送数据操作请求或服务调用请求(客户端的直接目的是调用站点上运行的服务的情况下)至初始站点。S203, as described above, the client may send a data operation request or a service invocation request (in the case where the client's direct purpose is to invoke a service running on the site) to the initial site.
S204,初始站点获取数据操作请求,通过存储接口处理模块解析数据操作请求。S204: The initial site obtains the data operation request, and parses the data operation request through the storage interface processing module.
S203中客户端发送的是服务调用请求的情况下,初始站点上运行的服务根据服务调用请求生成数据操作请求。In the case that the client sends a service invocation request in S203, the service running on the initial site generates a data operation request according to the service invocation request.
数据操作请求包括目标数据的key,目标数据(value)。可选的,数据操作请求还可以包括圈层信息,圈层信息可以包括默认,或指示某一级圈层。其中,The data operation request includes the key and the value of the target data. Optionally, the data operation request may also include circle layer information, and the circle layer information may include a default or indicate a certain level of circle layer. among them,
默认(default):指示站点按照副本放置策略配置模块内预设的方式在站点所在的最低级圈层内完成目标数据的写入以及副本的创建/更新,同时往高级圈层完成目标数据的写入以及副本的创建/更新以实现移动数据跟随。具体在哪几个高级圈层实现数据跟随可以配置。Default: Instruct the site to complete the writing of target data and the creation/update of the copy in the lowest level circle where the site is located according to the preset method in the copy placement strategy configuration module, and complete the writing of target data to the high level circle. Import and copy creation/update to achieve mobile data follow-up. In which advanced circle layers, data follow can be configured.
指定级(specified_layer):指示站点仅在指定级圈层内写入目标数据,写入目标数据的方式也可以按照副本放置策略配置模块内预设的方式完成指定级圈层内目标数据的写入以及副本的创建/更新。Specified_layer: Instruct the site to write target data only in the specified level circle. The method of writing the target data can also complete the writing of the target data in the specified level circle according to the preset method in the copy placement strategy configuration module And the creation/update of copies.
采用指定级的情况下,一般代表着该次写入的数据放弃移动数据跟随。因此,该目标数据无须往高级圈层写入。In the case of a specified level, it generally means that the data written this time gives up moving data to follow. Therefore, the target data does not need to be written to the advanced layer.
以圈层信息为默认的情况下继续介绍数据操作请求的处理流程。With the circle information as the default, continue to introduce the processing flow of the data operation request.
S205,初始站点的最低级圈层寻址模块,根据目标数据的key,在初始站点所在的最低级圈层内寻址,确定目标数据的key对应的目标站点。S205, the lowest-level circle-level addressing module of the initial site, according to the key of the target data, addresses within the lowest-level circle where the initial site is located, and determines the target site corresponding to the key of the target data.
由于初始站点一般是距离客户端较近的站点,并不是寻址域中规定的负责存储目标数据的站点,初始站点需要在最低级圈层所在的寻址域中根据目标数据的key确定一个目标站点。继续以图4算法为例,假设初始站点为NID 8对应的站点,如果目标数据的key经过哈希后获得KID为40,那么在图6所示的哈希环上,KID 40应该存储于NID 42对应的站点上。那么,NID 8对应的站点需要将目标数据发送至NID 42对应的站点进行存储。Since the initial site is generally a site closer to the client, not the site responsible for storing the target data specified in the addressing domain, the initial site needs to determine a target based on the key of the target data in the addressing domain where the lowest level circle is located. Site. Continuing to take the algorithm of Figure 4 as an example, assume that the initial site is the site corresponding to NID 8. If the key of the target data is hashed to obtain a KID of 40, then on the hash ring shown in Figure 6, KID 40 should be stored in NID 42 on the corresponding site. Then, the site corresponding to NID 8 needs to send the target data to the site corresponding to NID 42 for storage.
如果初始站点正好是目标站点,那么S205后无须执行S206。If the initial site happens to be the target site, there is no need to perform S206 after S205.
S206,初始站点将目标数据的key,目标数据发送至目标站点。S206: The initial site sends the key of the target data and the target data to the target site.
确定目标站点后,初始站点根据自己记录的索引表,确定目标站点的地址信息。根据目标站点的地址信息,将目标数据的key和目标数据发送至目标站点。After determining the target site, the initial site determines the address information of the target site according to the index table recorded by itself. According to the address information of the target site, the key and target data of the target data are sent to the target site.
S207,目标站点存储目标数据。S207: The target site stores the target data.
目标站点存储目标数据,并且目标站点更新本地记录的元数据,记录目标数据的key以及目标数据的存储地址的对应关系。The target site stores the target data, and the target site updates the locally recorded metadata, recording the corresponding relationship between the key of the target data and the storage address of the target data.
S208,目标站点根据副本放置策略配置模块内预设的方式,在最低级圈层内创建/更新副本。如果目标数据是新写数据,那么目标站点会在最低级圈层内的其他站点 上创建目标数据的副本。如果目标数据是对已有数据的覆盖,那么目标站点会在最低级圈层内更新的其他站点上已有数据的副本。具体的更新方式可以是全部副本同步处理、部分副本同步部分副本异步处理等。S208: The target site creates/updates the replica in the lowest level circle according to a preset method in the replica placement strategy configuration module. If the target data is newly written data, the target site will create a copy of the target data on other sites in the lowest level circle. If the target data is an overwrite of existing data, then the target site will update a copy of the existing data on other sites in the lowest level circle. The specific update method can be synchronous processing of all copies, synchronous processing of partial copies and asynchronous processing of partial copies, and so on.
目标站点确定S208成功执行后,判断本次写入成功。After the target site determines that S208 is successfully executed, it judges that this writing is successful.
S209,目标站点通知初始站点,目标数据写入成功。S209: The target site notifies the initial site that the target data is written successfully.
S210,初始站点通知客户端,目标数据写入成功。S210: The initial site notifies the client that the target data is successfully written.
如果数据操作请求携带的圈层信息为指定级的情况下,数据操作请求的处理流程如S205至S210所述,将S205至S210中的最低级圈层换为指定级圈层即可。If the circle level information carried in the data operation request is a designated level, the processing flow of the data operation request is as described in S205 to S210, and the lowest level circle level in S205 to S210 can be replaced with the designated level circle level.
如果数据操作请求携带的圈层信息指示默认的话,S208后,还需要执行后续流程。If the circle layer information carried in the data operation request indicates the default, after S208, the subsequent process needs to be executed.
副本放置策略配置模块指示不同级的圈层间的副本为异步处理的情况下,S209的执行可以和后续步骤的执行并列,也即S210的执行不必等待高级圈层内的副本处理完毕。副本放置策略配置模块指示不同级的圈层间的副本为同步处理的情况下,S210的执行需要等待高级圈层内的副本处理完毕,也即需要在S209和S215中确认写入成功后才能执行S210。In the case where the replica placement strategy configuration module indicates that the replicas between different levels of circles are processed asynchronously, the execution of S209 can be performed in parallel with the execution of subsequent steps, that is, the execution of S210 does not have to wait for the completion of the replicas in the advanced circles. When the replica placement strategy configuration module indicates that the replicas between different levels of circles are synchronized, the execution of S210 needs to wait for the replicas in the advanced circles to be processed, that is, it needs to be executed after confirming that the writing is successful in S209 and S215. S210.
S211,初始站点的高级圈层寻址模块,根据目标数据的key,在初始站点所在的高级圈层内寻址,在高级圈层内确定目标数据的key对应的其他目标站点。In S211, the advanced circle layer addressing module of the initial site addresses the advanced circle layer where the initial site is located according to the key of the target data, and determines other target sites corresponding to the key of the target data in the advanced circle layer.
如果S205中,初始站点的第一级圈层寻址模块确定出的目标站点,那么S211中,初始站点的第二级圈层寻址模块继续在第二级圈层中搜寻其他目标站点。If in S205, the target site determined by the first-level circle-level addressing module of the initial site, then in S211, the second-level circle-level addressing module of the initial site continues to search for other target sites in the second-level circle.
一般的,高级圈层内确定出的其他目标站点,就是高级圈层的寻址域中负责存储该目标数据的站点。Generally, other target sites determined in the advanced circle layer are the sites responsible for storing the target data in the addressing domain of the advanced circle layer.
S212,初始站点将目标数据的key,目标数据发送至在高级圈层内的其他目标站点。S212: The initial site sends the key of the target data and the target data to other target sites in the advanced circle.
S213,其他目标站点存储目标数据。S213, other target sites store target data.
其他目标站点存储目标数据,并且其他目标站点更新本地记录的元数据,记录目标数据的key以及目标数据的存储地址的对应关系。Other target sites store the target data, and other target sites update the locally recorded metadata, recording the correspondence between the key of the target data and the storage address of the target data.
S214,其他目标站点根据副本放置策略配置模块内预设的方式,在高级圈层内创建/更新副本。S214的执行,具体与S208相似,区别在于S208是目标站点在最低级圈层内对副本的操作,而S214是其他目标站点在高级圈层内对副本的操作。S214, other target sites create/update replicas in the advanced circle layer according to a preset method in the replica placement strategy configuration module. The execution of S214 is specifically similar to S208. The difference is that S208 is the operation of the target site on the copy in the lowest level circle, while S214 is the operation of other target sites on the copy in the high level circle.
S215,其他目标站点通知初始站点,写入成功。In S215, other target sites notify the initial site that the writing is successful.
在初始站点归属于多个高级圈层的情况下,S211至S215的执行可以并行执行多轮,每次向更高级的圈层内延伸。S211至S215的第一次执行在第二级圈层内写入目标数据,S211至S215的第二次执行在第三级圈层内写入目标数据,依次类推,直至初始站点所在的最高级圈层内已经写入目标数据。In the case that the initial site belongs to multiple high-level circles, the execution of S211 to S215 can be performed in parallel for multiple rounds, each time extending into a higher-level circle. The first execution of S211 to S215 writes the target data in the second level circle, the second execution of S211 to S215 writes the target data in the third level circle, and so on, up to the highest level where the initial site is located The target data has been written in the circle.
例如,S205中初始站点的第一级圈层寻址模块确定出的目标站点,S211中初始站点的第二级圈层寻址模块继续在第二级圈层中搜寻其他目标站点并执行S212至S215,并行的,初始站点的第三级圈层寻址模块继续在第三级圈层中搜寻其他目标站点并执行S212至S215。使得目标数据被同步到多个高级圈层,保证了客户端后续在 更大范围内移动的情况下,仍然可以访问到该目标数据。For example, the target site determined by the first-level circle-level addressing module of the initial site in S205, the second-level circle-level addressing module of the initial site in S211 continues to search for other target sites in the second-level circle and executes S212 to S215, in parallel, the third-level circle-level addressing module of the initial site continues to search for other target sites in the third-level circle and executes S212 to S215. This allows the target data to be synchronized to multiple high-level circles, ensuring that the client can still access the target data even if the client subsequently moves in a larger range.
如果初始站点不属于高级圈层,那么初始站点可以将目标数据以及目标数据的key发送至最低级圈层中属于高级圈层的其他站点来执行S211。If the initial site does not belong to the advanced circle, the initial site can send the target data and the key of the target data to other sites belonging to the advanced circle in the lowest circle to perform S211.
数据操作请求为读请求的情况下,图8展示边缘系统处理数据操作请求的流程。When the data operation request is a read request, Figure 8 shows the flow of processing the data operation request by the edge system.
S301,客户端向边缘网关请求发送站点访问请求,以请求站点的地址信息。S301: The client requests the edge gateway to send a site access request to request address information of the site.
同S201,边缘网关为客户端选择一个初始站点。Same as S201, the edge gateway selects an initial site for the client.
S302,边缘网关将选择出的初始站点的地址信息发送至客户端。S302: The edge gateway sends the selected address information of the initial site to the client.
S303,客户端可以发送数据操作请求或服务调用请求(客户端的直接目的是调用站点上运行的服务的情况下)至初始站点。S303: The client may send a data operation request or a service call request (in the case where the client's direct purpose is to call a service running on the site) to the initial site.
S304,初始站点获取数据操作请求,通过存储接口处理模块解析数据操作请求。S304: The initial site obtains the data operation request, and parses the data operation request through the storage interface processing module.
S303中客户端发送的是服务调用请求的情况下,初始站点上运行的服务根据服务调用请求生成数据操作请求。In the case that the client sends a service invocation request in S303, the service running on the initial site generates a data operation request according to the service invocation request.
数据操作请求包括目标数据的key。可选的,数据操作请求还可以包括圈层信息,圈层信息可以包括默认,或指示某一级圈层。其中,The data operation request includes the key of the target data. Optionally, the data operation request may also include circle layer information, and the circle layer information may include a default or indicate a certain level of circle layer. among them,
默认(default):指示站点从最低级圈层开始寻址该目的数据所在的站点,如果在最低级圈层无法确定该目的数据所在的站点,则在高级圈层寻址该目的数据所在的站点。Default: Instruct the site to address the site where the destination data is located from the lowest level circle. If the site where the destination data is located cannot be determined at the lowest level circle level, the site where the destination data is located will be addressed at the high level circle level. .
指定级(specified_layer):指示站点仅在指定级的圈层寻址该目的数据所在的站点。Specified_layer: Instructs the site to address the site where the destination data is located only in the circle layer of the specified level.
一般来说,在该目标数据写入时(S203)的数据操作请求携带的圈层信息指示默认的情况下,该目标数据后续读取时(S303)的数据操作请求携带的圈层信息也指示默认。在该目标数据写入时(S203)的数据操作请求携带的圈层信息指示指定圈层的情况下,该目标数据后续读取时(S303)的数据操作请求携带的圈层信息也指示指定圈层。Generally speaking, when the circle layer information carried in the data operation request when the target data is written (S203) indicates the default, the circle layer information carried in the data operation request when the target data is subsequently read (S303) also indicates default. When the circle layer information carried in the data operation request when the target data is written (S203) indicates the designated circle layer, the circle layer information carried in the data operation request when the target data is subsequently read (S303) also indicates the designated circle layer. Floor.
以圈层信息为默认的情况下继续介绍数据操作请求的处理流程。With the circle information as the default, continue to introduce the processing flow of the data operation request.
S305,初始站点的最低级圈层寻址模块,根据目标数据的key,在初始站点所在的最低级圈层内寻址,确定目标数据的key对应的目标站点。S305, the lowest-level circle-level addressing module of the initial site, addresses the lowest level circle-level where the initial site is located according to the key of the target data, and determines the target site corresponding to the key of the target data.
S306,初始站点将目标数据的key发送至目标站点。S306: The initial site sends the key of the target data to the target site.
确定目标站点后,初始站点根据自己记录的索引表,确定目标站点的地址信息。根据目标站点的地址信息,将目标数据的key发送至目标站点。After determining the target site, the initial site determines the address information of the target site according to the index table recorded by itself. According to the address information of the target site, the key of the target data is sent to the target site.
S307,目标站点确定目标数据是否存储于本地。S307: The target site determines whether the target data is stored locally.
目标站点根据目的数据的key查询本地的元数据,判断目的数据是否存储于目的站点本地。The target site queries the local metadata according to the key of the target data, and judges whether the target data is stored locally at the target site.
如果目的数据存储于目的站点,则执行S3081和S3082。If the destination data is stored at the destination site, execute S3081 and S3082.
S3081,目的站点将目的数据发送至初始站点。S3081: The destination site sends the destination data to the original site.
S3082,初始站点将目的数据发送至客户端。S3082: The initial site sends the destination data to the client.
S3081中,也可以由目的站点直接将目的数据发送至客户端,省略S3082的执行。In S3081, the target site can also directly send the target data to the client, and the execution of S3082 is omitted.
如果目的数据未存储于目的站点,则执行S3083、S3084以及后续步骤。If the destination data is not stored in the destination site, perform S3083, S3084 and subsequent steps.
S3083,目的站点的高级圈层寻址模块,根据目标数据的key,在目的站点所在的高级圈层内寻址,确定目标数据的key对应的其他目标站点。S3083, the advanced circle layer addressing module of the destination site, addresses in the advanced circle layer where the destination site is located according to the key of the target data, and determines other target sites corresponding to the key of the target data.
S3084,目的站点将目标数据的key发送至其他目标站点。S3084: The target site sends the key of the target data to other target sites.
S309,其他目标站点确定目标数据是否存储于本地。S309: The other target sites determine whether the target data is stored locally.
其他目标站点根据目的数据的key查询本地的元数据,判断目的数据是否存储于其他目的站点本地。Other target sites query local metadata based on the key of the target data to determine whether the target data is stored locally on other target sites.
如果目的数据存储于其他目的站点,则执行S3101和S3102。If the destination data is stored in other destination sites, execute S3101 and S3102.
S3101,其他目的站点将目的数据发送至初始站点。S3101, other destination sites send the destination data to the original site.
S3102,初始站点将目的数据发送至客户端。S3102: The initial site sends the target data to the client.
S3101中,也可以由其他目的站点直接将目的数据发送至客户端,省略S3102的执行。In S3101, other destination sites can also directly send the destination data to the client, omitting the execution of S3102.
如果目的数据未存储于其他目的站点,则执行S3103、S3104以及后续步骤。If the destination data is not stored in other destination sites, perform S3103, S3104 and subsequent steps.
S3103,其他目的站点的更高级圈层寻址模块,根据目标数据的key,在目的站点所在的高级圈层内寻址,确定目标数据的key在更高级圈层内的目标站点。S3103, the higher level addressing module of other destination sites, addresses the higher level ring layer where the destination site is located according to the key of the target data, and determines the target site where the key of the target data is located in the higher level ring layer.
S3104,其他目的站点将目标数据的key发送至高级圈层内的其他目标站点。S3104, other destination sites send the key of the target data to other target sites in the advanced circle.
S307至S3084可以由低级圈层向高级圈层延伸的过程中被重复执行多次,以上展示了第一次重复的过程(S309至S3104)。例如,S305中,初始站点的第一级圈层寻址模块在第一级圈层内寻址,S3083中,目的站点的第二级圈层寻址模块在第二级圈层内寻址,S3103中,其他目的站点的第三级圈层寻址模块在第三级圈层内寻址。S307 to S3084 can be repeated multiple times during the process of extending from the low-level circle to the high-level circle. The above shows the first repeated process (S309 to S3104). For example, in S305, the first-level circle-level addressing module of the initial site is addressed in the first-level circle, and in S3083, the second-level circle-level addressing module of the destination site is addressed in the second-level circle. In S3103, the third-level circle layer addressing modules of other destination sites are addressed in the third-level circle layer.
如果最低级圈层的目的站点初始站点不属于高级圈层,那么最低级圈层的目的站点可以目标数据的key发送至最低级圈层中属于高级圈层的其他站点来执行S3083。If the initial site of the destination site of the lowest-level circle does not belong to the high-level circle, the destination site of the lowest-level circle can send the key of the target data to other sites in the lowest-level circle that belong to the high-level circle to perform S3083.
由低级圈层向高级圈层重复执行目的数据的查询的过程中,如果有任一圈层内的目的站点查找到了目的数据,则停止在更高级的圈层内查询目的站点,并且可以将数据存入最低级圈层的目的节点中,以便目的数据后续被读取。如果最高级圈层内仍然无法查询到目的数据,最高级圈层内的目的站点通知初始站点目的数据查询失败。In the process of repeating the query of the target data from the lower level to the higher level, if the destination site in any circle finds the target data, it will stop querying the destination site in the higher level circle, and the data can be retrieved Stored in the destination node of the lowest level circle, so that the destination data can be read later. If the destination data still cannot be queried in the highest-level circle, the destination site in the highest-level circle notifies the initial site that the destination data query failed.
S3083和S3084(S3103和S3104)可以由目的站点(其他目的站点)也可以由初始站点来执行,采用一些优化的寻址算法的情况下,例如分布式松散哈希表(distributed sloppy hash table,DSHT),由目的站点(其他目的站点)执行可以更快的找到更高级圈层内的目的站点(跳数更少)。S3083 and S3084 (S3103 and S3104) can be executed by the destination site (other destination sites) or the initial site. When some optimized addressing algorithms are used, such as distributed sloppy hash table (DSHT) ), executed by the destination site (other destination sites) can quickly find the destination site in the higher level circle (fewer hops).
如果数据操作请求携带的圈层信息为指定级的情况下,数据操作请求的处理流程如S305至S307所述(将最低级圈层换为指定级圈层),S307后,如果目的数据存储于指定级圈层的目的站点,则执行S3081和S3082。如果目的数据未存储于指定级圈层的目的站点,指定级圈层的目的站点通知初始站点目的数据查询失败。If the circle layer information carried in the data operation request is the specified level, the processing flow of the data operation request is as described in S305 to S307 (the lowest level circle layer is replaced with the specified level circle layer). After S307, if the target data is stored in To specify the destination site of the level circle, S3081 and S3082 are executed. If the destination data is not stored in the destination site of the designated tier, the destination site of the designated tier will notify the initial site of the failure of the destination data query.
图9提供了一种计算机400,每个站点通过一个或多个计算机400实现。在站点中的运行单元是物理服务器的情况下,运行单元为计算机400。在站点中的运行单元 是虚拟机的情况下,运行单元为运行在计算机400上的虚拟机。FIG. 9 provides a computer 400, and each site is implemented by one or more computers 400. In the case where the operating unit in the site is a physical server, the operating unit is the computer 400. When the operating unit in the site is a virtual machine, the operating unit is a virtual machine running on the computer 400.
计算机400包括总线402、处理器401、存储设备403。处理器401和存储设备403之间通过总线402通信。处理器401可以为中央处理器(central processing unit,CPU)。存储设备403可以包括易失性存储设备(volatile memory),例如随机存取存储设备(random access memory,RAM),或非易失性存储设备(non-volatile memory),例如只读存储设备(read-only memory,ROM),快闪存储设备,HDD或SSD等。The computer 400 includes a bus 402, a processor 401, and a storage device 403. The processor 401 and the storage device 403 communicate through a bus 402. The processor 401 may be a central processing unit (CPU). The storage device 403 may include a volatile memory device (volatile memory), such as a random access memory device (RAM), or a non-volatile memory device (non-volatile memory), such as a read-only memory device (read-only memory device). -only memory, ROM), flash storage device, HDD or SSD, etc.
存储设备403中存储有可执行指令,处理器401执行该可执行指令以执行前述图3中的存储接口处理模块、寻址域配置模块、寻址模块、数据存储模块以及服务(可选的)。存储设备403还可以包括运行操作系统(operation system,OS)所需的可执行指令。OS可以为LINUX
TM,UNIX
TM,WINDOWS
TM等。
The storage device 403 stores executable instructions, and the processor 401 executes the executable instructions to execute the storage interface processing module, addressing domain configuration module, addressing module, data storage module, and service (optional) in FIG. . The storage device 403 may also include executable instructions required to run an operating system (operation system, OS). The OS can be LINUX TM , UNIX TM , WINDOWS TM and so on.
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。The descriptions of the processes corresponding to each of the above figures have their respective focuses. For parts that are not described in detail in a certain process, please refer to related descriptions of other processes.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字租户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented by software, it can be implemented in the form of a computer program product in whole or in part. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present invention are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instruction may be transmitted from a website, a computer, a server, or a data center through a cable (Such as coaxial cable, optical fiber, digital tenant line or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server or data center. The computer-readable storage medium can be accessed by a computer Any usable medium in the data storage device or a data storage device including one or more usable media integrated servers, data centers, etc. The usable medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), Or semiconductor media (such as SSD) and so on.
Claims (13)
- 一种边缘系统,其特征在于,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域;An edge system, characterized in that the edge system includes a plurality of first-level circles and second-level circles, and the geographic area represented by the second-level circles includes the geographic regions represented by each first-level circle. area;每个第一级圈层,包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层;Each first-level circle includes multiple sites, each site is used to process data operation requests sent by the client, and an initial site among the multiple sites is also included in the second-level circle;所述初始站点,用于在包括所述初始站点的第一级圈层和所述第二圈层内处理所述数据操作请求。The initial site is used to process the data operation request in the first-level circle and the second circle that include the initial site.
- 如权利要求1所述的边缘系统,其特征在于,所述数据操作请求为写请求;The edge system of claim 1, wherein the data operation request is a write request;所述初始站点,用于在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据对应的目标站点,将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点;在所述第二级圈层内寻址所述目标数据对应的目标站点,将所述目标数据发送至所述第二级圈层的目标站点;The initial site is configured to address the target site corresponding to the target data carried in the data operation request within the first-level circle including the initial site, and send the target data to the first site that includes the initial site A target site of the first-level circle; address the target site corresponding to the target data in the second-level circle, and send the target data to the target site of the second-level circle;包括所述初始站点的第一级圈层的目标站点,用于存储所述目标数据;The target site of the first-level circle layer including the initial site is used to store the target data;所述第二级圈层的目标站点,用于存储所述目标数据。The target site of the second level circle layer is used to store the target data.
- 如权利要求2所述的边缘系统,其特征在于,包括所述初始站点的第一级圈层的目标站点,还用于在包括所述初始站点的第一级圈层的其他站点上创建或更新所述目标数据的副本。The edge system according to claim 2, wherein the target site of the first-level circle layer including the initial site is also used to create or create on other sites of the first-level circle layer including the initial site. Update the copy of the target data.
- 如权利要求2或3所述的边缘系统,其特征在于,所述第二级圈层的目标站点,还用于在所述第二级圈层的其他站点上创建或更新所述目标数据的副本。The edge system according to claim 2 or 3, wherein the target site of the second-level circle is also used to create or update the target data on other sites of the second-level circle. Copy.
- 如权利要求1所述的边缘系统,其特征在于,所述数据操作请求为读请求;The edge system according to claim 1, wherein the data operation request is a read request;所述初始站点,用于在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据的键key对应的目标站点;The initial site is configured to address the target site corresponding to the key of the target data carried in the data operation request within the first-level circle layer including the initial site;包括所述初始站点的第一级圈层的目标站点,用于确定所述目标数据是否存储于包括所述初始站点的第一级圈层的目标站点本地,如果所述目标数据存储于包括所述初始站点的第一级圈层的目标站点本地,将所述目标数据发送至所述客户端,如果所述目标数据未存储于包括所述初始站点的第一级圈层的目标站点本地,在所述第二级圈层内寻址所述目标数据的key对应的目标站点;The target site including the first-level circle layer of the initial site is used to determine whether the target data is stored locally in the target site of the first-level circle layer including the initial site, and if the target data is stored in the first-level circle layer including the initial site, The target site of the first level circle layer of the initial site is locally sent, and the target data is sent to the client. If the target data is not stored locally in the target site of the first level circle layer including the initial site, Address the target site corresponding to the key of the target data in the second-level circle;所述第二级圈层的目标站点,用于确定所述目标数据存储于所述第二级圈层的目标站点本地,将所述目标数据发送至所述客户端。The target site of the second-level circle is used to determine that the target data is stored locally at the target site of the second-level circle, and send the target data to the client.
- 如权利要求5所述的边缘系统,其特征在于,所述第二级圈层的目标站点,还用于将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点。The edge system of claim 5, wherein the target site of the second level circle layer is further used to send the target data to the target site of the first level circle layer including the initial site.
- 一种数据操作请求的处理方法,其特征在于,所述数据操作请求的处理方法应用于边缘系统,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域,每个第一级圈层包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层;A method for processing a data operation request, wherein the method for processing a data operation request is applied to an edge system, and the edge system includes a plurality of first-level circle layers and second-level circle layers. The geographic area represented by the circle layer includes the geographic area represented by each first-level circle layer, each first-level circle layer includes multiple sites, and each site is used to process data operation requests sent by the client. The multiple sites An initial site is included in the second-level circle layer at the same time;所述初始站点在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据对应的目标站点;Addressing, by the initial site, the target site corresponding to the target data carried in the data operation request within the first-level circle layer including the initial site;所述初始站点将所述目标数据发送至包括所述初始站点的第一级圈层的目标站 点;Sending, by the initial site, the target data to a target site in the first-level circle layer including the initial site;包括所述初始站点的第一级圈层的目标站点存储所述目标数据;The target site including the first-level circle layer of the initial site stores the target data;所述初始站点在所述第二级圈层内寻址所述目标数据对应的目标站点,将所述目标数据发送至所述第二级圈层的目标站点;The initial site addresses the target site corresponding to the target data in the second-level circle, and sends the target data to the target site of the second-level circle;所述第二级圈层的目标站点存储所述目标数据。The target site of the second-level circle layer stores the target data.
- 如权利要求7所述的方法,其特征在于,还包括:The method of claim 7, further comprising:包括所述初始站点的第一级圈层的目标站点在包括所述初始站点的第一级圈层的其他站点上创建或更新所述目标数据的副本。The target site including the first-level circle of the initial site creates or updates a copy of the target data on other sites including the first-level circle of the initial site.
- 如权利要求7或8所述的边缘系统,其特征在于,还包括:The edge system according to claim 7 or 8, further comprising:所述第二级圈层的目标站点在所述第二级圈层的其他站点上创建或更新所述目标数据的副本。The target site of the second-level circle creates or updates a copy of the target data on other sites of the second-level circle.
- 一种数据操作请求的处理方法,其特征在于,所述数据操作请求的处理方法应用于边缘系统,所述边缘系统包括多个第一级圈层和第二级圈层,所述第二级圈层代表的地理区域包括每个第一级圈层代表的地理区域,每个第一级圈层,包括多个站点,每个站点用于处理客户端发送的数据操作请求,所述多个站点中包括一初始站点同时包括于所述第二级圈层;A method for processing a data operation request, characterized in that the method for processing a data operation request is applied to an edge system, and the edge system includes a plurality of first-level circles and second-level circles, and the second-level The geographical area represented by the circle layer includes the geographical area represented by each first-level circle layer. Each first-level circle layer includes multiple sites. Each site is used to process data operation requests sent by the client. The stations include an initial station and are also included in the second-level circle layer;所述初始站点在包括所述初始站点的第一级圈层内寻址所述数据操作请求携带的目标数据的键key对应的目标站点;The initial site addresses the target site corresponding to the key of the target data carried in the data operation request within the first-level circle layer including the initial site;包括所述初始站点的第一级圈层的目标站点确定所述目标数据是否存储于包括所述初始站点的第一级圈层的目标站点本地;The target site of the first-level circle including the initial site determines whether the target data is stored locally at the target site of the first-level circle including the initial site;如果所述目标数据存储于包括所述初始站点的第一级圈层的目标站点本地,将所述目标数据发送至所述客户端;If the target data is stored locally at a target site including the first-level circle layer of the initial site, sending the target data to the client;如果所述目标数据未存储于包括所述初始站点的第一级圈层的目标站点本地,在所述第二级圈层内寻址所述目标数据的key对应的目标站点;If the target data is not stored locally in the target site of the first level circle layer including the initial site, address the target site corresponding to the key of the target data in the second level circle layer;所述第二级圈层的目标站点确定所述目标数据存储于所述第二级圈层的目标站点本地,将所述目标数据发送至所述客户端。The target site of the second-level circle determines that the target data is stored locally at the target site of the second-level circle, and sends the target data to the client.
- 如权利要求10所述的方法,其特征在于,还包括:The method of claim 10, further comprising:所述第二级圈层的目标站点将所述目标数据发送至包括所述初始站点的第一级圈层的目标站点。The target station of the second level circle layer sends the target data to the target station of the first level circle layer including the initial station.
- 一种非瞬态的可读存储介质,其特征在于,所述非瞬态的可读存储介质中存储的指令被边缘系统中的至少一个站点执行时,所述边缘系统执行权利要求7至11任一所述的方法。A non-transitory readable storage medium, characterized in that, when instructions stored in the non-transitory readable storage medium are executed by at least one site in an edge system, the edge system executes claims 7 to 11 Any of the methods described.
- 一种计算机程序产品,其特征在于,所述计算机程序产品包含的指令被边缘系统执行时,所述边缘系统执行权利要求7至11任一所述的方法。A computer program product, wherein when the instructions contained in the computer program product are executed by an edge system, the edge system executes the method according to any one of claims 7 to 11.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20895646.6A EP4057585A4 (en) | 2019-12-06 | 2020-12-07 | Edge system and method for processing data operation request |
US17/830,573 US11895554B2 (en) | 2019-12-06 | 2022-06-02 | Edge system and data operation request processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911242057 | 2019-12-06 | ||
CN201911242057.1 | 2019-12-06 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/830,573 Continuation US11895554B2 (en) | 2019-12-06 | 2022-06-02 | Edge system and data operation request processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021110176A1 true WO2021110176A1 (en) | 2021-06-10 |
Family
ID=76162688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/134345 WO2021110176A1 (en) | 2019-12-06 | 2020-12-07 | Edge system and method for processing data operation request |
Country Status (4)
Country | Link |
---|---|
US (1) | US11895554B2 (en) |
EP (1) | EP4057585A4 (en) |
CN (1) | CN112929459B (en) |
WO (1) | WO2021110176A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088418A (en) * | 2008-02-05 | 2011-06-08 | 华为技术有限公司 | Method and device for establishing route |
WO2012109188A1 (en) * | 2011-02-08 | 2012-08-16 | Autonomy Corporation | A system for the tagging and augmentation of geographically-specific locations using a visual data stream |
CN107211341A (en) * | 2015-01-30 | 2017-09-26 | 华为技术有限公司 | The system, apparatus and method that distributed content is prefetched are carried out to user equipment |
CN108055264A (en) * | 2017-12-13 | 2018-05-18 | 平安科技(深圳)有限公司 | Dispatching device, method and the computer readable storage medium of stream pushing server |
CN110740180A (en) * | 2019-10-17 | 2020-01-31 | 北京奇艺世纪科技有限公司 | multimedia resource scheduling method, device and scheduling server |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7436780B2 (en) * | 2003-12-17 | 2008-10-14 | Time Warner, Inc. | Method and apparatus for approximating location of node attached to a network |
US20060206610A1 (en) * | 2005-03-09 | 2006-09-14 | Yibei Ling | Method, system and apparatus for location-aware content push service and location-based dynamic attachment |
WO2008128133A1 (en) * | 2007-04-13 | 2008-10-23 | Pelago, Inc. | Location-based information determination |
CN101399743B (en) * | 2007-09-28 | 2011-09-14 | 华为技术有限公司 | Method and system for searching data in P2P network base on distributed Hash table |
CA3098038C (en) * | 2011-11-15 | 2022-11-29 | Ab Initio Technology Llc | Data clustering, segmentation, and parallelization |
US9372914B1 (en) * | 2014-01-14 | 2016-06-21 | Google Inc. | Determining computing device characteristics from computer network activity |
WO2016106699A1 (en) | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | Method, device and system for scheduling network node data |
CN105242881B (en) * | 2015-10-12 | 2018-02-16 | 创新科软件技术(深圳)有限公司 | Distributed memory system and its data read-write method |
US10060750B2 (en) * | 2016-08-26 | 2018-08-28 | International Business Machines Corporation | System, method and computer program product for consolidation of requests for access to dynamic map |
US20200192872A1 (en) * | 2018-12-13 | 2020-06-18 | Zoox, Inc. | Device message framework |
-
2020
- 2020-12-07 EP EP20895646.6A patent/EP4057585A4/en active Pending
- 2020-12-07 WO PCT/CN2020/134345 patent/WO2021110176A1/en unknown
- 2020-12-07 CN CN202011417936.6A patent/CN112929459B/en active Active
-
2022
- 2022-06-02 US US17/830,573 patent/US11895554B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088418A (en) * | 2008-02-05 | 2011-06-08 | 华为技术有限公司 | Method and device for establishing route |
WO2012109188A1 (en) * | 2011-02-08 | 2012-08-16 | Autonomy Corporation | A system for the tagging and augmentation of geographically-specific locations using a visual data stream |
CN107211341A (en) * | 2015-01-30 | 2017-09-26 | 华为技术有限公司 | The system, apparatus and method that distributed content is prefetched are carried out to user equipment |
CN108055264A (en) * | 2017-12-13 | 2018-05-18 | 平安科技(深圳)有限公司 | Dispatching device, method and the computer readable storage medium of stream pushing server |
CN110740180A (en) * | 2019-10-17 | 2020-01-31 | 北京奇艺世纪科技有限公司 | multimedia resource scheduling method, device and scheduling server |
Non-Patent Citations (1)
Title |
---|
See also references of EP4057585A4 * |
Also Published As
Publication number | Publication date |
---|---|
US20220303718A1 (en) | 2022-09-22 |
US11895554B2 (en) | 2024-02-06 |
CN112929459B (en) | 2024-06-28 |
EP4057585A1 (en) | 2022-09-14 |
CN112929459A (en) | 2021-06-08 |
EP4057585A4 (en) | 2022-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10291696B2 (en) | Peer-to-peer architecture for processing big data | |
CN103067433B (en) | A kind of data migration method of distributed memory system, equipment and system | |
WO2018000993A1 (en) | Distributed storage method and system | |
CN112565325B (en) | Mirror image file management method, device and system, computer equipment and storage medium | |
US11818209B2 (en) | State management and object storage in a distributed cloud computing network | |
JP2015512551A (en) | A consistent ring namespace that facilitates data storage and organization in network infrastructure | |
US10628050B2 (en) | Data processing method and apparatus | |
CN104811392A (en) | Method and system for processing resource access request in network | |
US11645255B2 (en) | Method, electronic device, and computer program product for storing and searching for data | |
CN104468150A (en) | Method for realizing fault migration through virtual host and virtual host service device | |
US10986065B1 (en) | Cell-based distributed service architecture with dynamic cell assignment | |
CN111327651A (en) | Resource downloading method, device, edge node and storage medium | |
US11108854B2 (en) | Peer-to-peer network for internet of things resource allocation operation | |
US10831714B2 (en) | Consistent hashing configurations supporting multi-site replication | |
CN113055448B (en) | Metadata management method and device | |
WO2021110176A1 (en) | Edge system and method for processing data operation request | |
CN108694102A (en) | A kind of data manipulation method, equipment, system and medium based on Nexus services | |
CN117194439B (en) | Method for creating resource storage system, electronic equipment and storage medium | |
US11971902B1 (en) | Data retrieval latency management system | |
JP6676203B2 (en) | Management device, storage system, storage management method, and program | |
CN114063884A (en) | Partitioning method, apparatus and computer program product for extended storage system | |
JP2019067184A (en) | Information processing device, information processing method, and information processing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20895646 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020895646 Country of ref document: EP Effective date: 20220608 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |