A spatial data management method, a spatial data management system and related products

By dividing the overall space into multiple grid spaces and dynamically managing inactive grid spaces, the problem of insufficient parallel processing capability of the system in interactive scenarios with tens of thousands of users is solved, the system's response speed and resource utilization are improved, and the user experience is optimized.

CN122132122APending Publication Date: 2026-06-02HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411761499.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-02
Publication Date
2026-06-02

AI Technical Summary

Technical Problem

In scenarios involving tens of thousands of users interacting simultaneously, the existing system's parallel processing capability is poor, resulting in only being able to process the operation request of one user at a time, which affects the system's response speed and efficiency.

Method used

By dividing the overall space into multiple grid spaces and determining the target unit space for data updates during the management process, the data update scope is reduced, and parallel processing capabilities are improved. Simultaneously, inactive grid spaces and scheduling resources are dynamically managed to optimize system performance and resource utilization.

Benefits of technology

It improved the system's parallel processing capabilities and response speed, optimized resource utilization, and enhanced user experience and system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122132122A_ABST
    Figure CN122132122A_ABST
Patent Text Reader

Abstract

This application provides a spatial data management method, a spatial data management system, and related products. The method is applied to a first management process running on infrastructure that stores data about the entire space, including a first grid space and a second grid space. The first management process manages the data in the first grid space and is communicatively connected to a first server. The method includes: obtaining a first operation request from a first user, the first operation request including location information; forwarding the first operation request to the first server; obtaining a first location update value sent by the first server; determining a target unit space based on the first location update value, the target unit space being either a unit space within the first grid space or a unit space within the second grid space adjacent to the first grid space; and updating the data in the target unit space. Using this application can improve the parallel processing capability of the system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a spatial data management method, a spatial data management system, and related products. Background Technology

[0002] With the increasing number of internet users and the widespread adoption of online social networking and gaming applications, the demand for real-time interaction supporting tens of thousands of users has also increased. In scenarios involving tens of thousands of users, the frequency of interaction between users is significantly higher than that of interactions involving hundreds or thousands of users. Therefore, effective management of spatial data is necessary to meet the real-time interaction needs of users.

[0003] However, when multiple users in the same grid space initiate operation requests simultaneously, the management process can only process the operation request of one user, resulting in poor parallel processing capability of the system. Summary of the Invention

[0004] This application provides a spatial data management method, a spatial data management system, and related products, which can improve the parallel processing capability of the system.

[0005] In a first aspect, this application provides a spatial data management method. This method is applied to a first management process, which runs on an infrastructure that stores data about the entire space. The entire space includes a first grid space and a second grid space. The first management process manages the data in the first grid space. The first management process communicates with a first server. The method includes:

[0006] Obtain the operation request of the first user, which includes location information to indicate the location of the first user in the first grid space;

[0007] Forward the operation request to the first server;

[0008] Obtain the location update value sent by the first server, which is calculated by the first server based on the location information;

[0009] Based on the location update value, the target cell space is determined. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0010] Update the data in the target cell space.

[0011] In the above scheme, the first and second grid spaces are further divided into multiple cell spaces. After receiving an operation request, the first management process determines the target cell space based on the position update value and updates the data in the target cell space. Compared to existing schemes, where the first management process only determines the grid space containing the position update value and updates the data within the entire grid space, this scheme performs data updates over a smaller range. By reducing the data update range, this scheme can improve the parallel processing capability of the first management process. Especially in high-concurrency scenarios, the first management process can locate the target cell space and update the data more quickly, thereby significantly improving processing speed and responsiveness.

[0012] Based on the first aspect, in a possible implementation, a second management process also runs on the infrastructure. This second management process manages the data in the second grid space. When the target cell space is a cell space of the second grid space, after updating the data in the target cell space, the method further includes:

[0013] Send connection update information to the client to which the first user belongs. The connection update information is used to instruct the client to which the first user belongs to establish a communication connection with the second management process.

[0014] In the above scheme, when the target cell space is the second grid space, it means that the grid space where the first user is located has changed. The first management process sends connection update information to the client to which the first user belongs, which enables the client to which the first user belongs to quickly communicate with the second management process.

[0015] Based on the first aspect, in a possible implementation, the second grid space is in an inactive state, a second management process and a scheduler also run on the infrastructure, the second management process is in an idle state, and the scheduler is communicatively connected to the first management process. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the method further includes:

[0016] An activation request is sent to the scheduler. The activation request carries the identifier of the second grid space. The activation request is used to instruct the scheduler to wake up the second management process so that the second management process can manage the spatial data in the second grid space. The second management process communicates with the scheduler.

[0017] In the above scheme, no management process is assigned to manage the data in the inactive second grid space. When the target cell space is the second grid space, the first management process sends an activation request to the scheduler, which can instruct the scheduler to wake up the second management process so that it can manage the spatial data in the second grid space. The second management process is in an idle state. This dynamic management method can improve the system's resource utilization and optimize system performance.

[0018] Based on the first aspect, in possible implementations, the operation request further includes movement information, which indicates a change in the first user's position in the overall space, and the method includes:

[0019] Obtain the location update value sent by the first server. The location update value is calculated by the first server based on the location information and movement information.

[0020] Based on the first aspect, among possible implementations, the method also includes:

[0021] Obtain the data query instruction input by the second user, which includes the query range;

[0022] Based on the data query instruction, determine the cell space to be queried. The cell space to be queried is the cell space in the overall space that overlaps with the query range.

[0023] Identify user data within the query range that falls within the cell space to be queried;

[0024] Send the user data within the query range in the unit space to the client of the second user.

[0025] It's understandable that when the first grid space isn't divided into cell spaces, the first management process needs to perform range queries across the entire first grid space, resulting in processing a large amount of data for each query and leading to low query efficiency. However, if the first grid space is divided into multiple cell spaces, the first management process only needs to focus on the cell space being queried when performing range queries, which reduces the amount of data processed and improves query efficiency.

[0026] Based on the first aspect, among possible implementations, the method also includes:

[0027] Determine the query unit space corresponding to each user located in the first grid space, wherein the query unit space corresponding to each user is the unit space in the overall space that overlaps with the query range of each user;

[0028] Determine the query results for each user, wherein the query results for each user are user data within the query range of each user in the query unit space corresponding to each user;

[0029] The query results for each user are sent to the client to which each user belongs.

[0030] In the above scheme, the first management process actively performs a range query on all users in the first grid space and sends the query results to the client to which the user in the first grid space belongs. This means that the user can receive the latest relevant information without active operation, reducing the number of communications between the client and the management process, improving the user experience and reducing communication overhead.

[0031] Based on the first aspect, among the possible implementations, the overall space can be any one of two-dimensional space, non-spherical three-dimensional space, and spherical space.

[0032] This solution supports various spatial types (e.g., two-dimensional space, non-spherical three-dimensional space, and spherical space), and can select the appropriate spatial coordinate system and query method according to the spatial type. This flexibility enables the spatial data management system to improve query accuracy and adapt to different scenarios, making it highly applicable.

[0033] Secondly, this aspect provides a spatial data management method. The method is applied to a scheduler that runs on infrastructure. The infrastructure stores data of the entire space, which includes a first grid space and a second grid space. A first management process is used to manage the data of the first grid space. The method includes:

[0034] The side length of the first grid space or the second grid space is determined based on the computing power of the first management process and the data density of the overall space, wherein the first management process runs on the infrastructure;

[0035] The side length of the target cell space is determined based on the data density of the overall space and the query radius. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0036] It's understandable that the computing power of the first management process represents its computational or processing capabilities. If the first management process has strong computing power, a larger grid space side length can be chosen to process more data more efficiently. If the first management process has limited computing power, a smaller grid space side length can be chosen to reduce computational load and improve system performance and efficiency. The overall data density represents the amount of data per unit space. Determining the side length of the first grid space based on the overall data density allows for better data management across the entire space. If the overall data density is high, a smaller grid space side length can be chosen for more granular data management and manipulation. If the overall data density is low, a larger grid space side length can be chosen to reduce unnecessary subdivision and management overhead. Determining the side length of the unit space based on the overall data density and query radius allows for better adaptation to data distribution and query requirements.

[0037] Based on the second aspect, in a possible implementation, the scheduler is used to schedule the second management process, the second management process being in an idle state. The method further includes:

[0038] When the number of users in the first grid space exceeds a preset threshold, the second management process is activated.

[0039] Migrate all or part of the data in the first grid space to the second management process;

[0040] Users managed by the first management process are transferred to the second management process.

[0041] It is understandable that when the number of users in the first grid space exceeds a preset threshold, the first management process may be unable to efficiently handle the increased load, leading to increased response time and, in severe cases, system crashes. In this situation, waking up an idle management process and distributing some user operation requests to the idle management process can alleviate the pressure on the first management process, improve the processing efficiency of each management process, and thus improve the stability and reliability of the system.

[0042] Based on the second aspect, in a possible implementation, after scheduling some users managed by the first management process to the second management process, the method further includes:

[0043] When the number of users in the first grid space is less than or equal to a preset threshold, all data in the first grid space is migrated to the first management process and all users managed by the second management process are scheduled to the first management process; or, all data in the first grid space is migrated to the second management process and all users managed by the first management process are scheduled to the second management process.

[0044] It should be understood that after relocating some users managed by the first management process to the second management process, if the number of users in the first grid space is less than or equal to a preset threshold, it means that only one management process is needed to handle the operation requests of users in the first grid space. Continuing to maintain additional management processes to handle the reduced load may lead to resource waste. To optimize resource utilization, this application either migrates all data from the first grid space to the first management process and relocates all users managed by the second management process to the first management process, or migrates all data from the first grid space to the second management process and relocates all users managed by the first management process to the second management process. This method of adjusting resources based on the number of users helps the system more effectively cope with different loads.

[0045] Thirdly, this application provides a spatial data management method applied to a spatial data management system. The spatial data management system includes a first client, a first management process, and a first server. The first management process runs on an infrastructure that stores data of the entire space, which includes a first grid space and a second grid space. The first management process manages the data of the first grid space. The first client communicates with the first management process, and the first management process communicates with the first server. The method includes:

[0046] The first client sends an operation request to the first management process. The operation request includes location information, which is used to indicate the location of the first user in the first grid space.

[0047] The first management process forwards the operation request to the first server;

[0048] The first server calculates the location update value based on the location information. The location update value is calculated by the first server based on the location information.

[0049] The first management process receives the location update value sent by the first server;

[0050] The first management process determines the target cell space based on the location update value. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0051] The first management process updates the data in the target cell space.

[0052] In the above scheme, the first grid space and the second grid space are further divided into multiple cell spaces. The first client sends an operation request to the first management process, which includes location information indicating the first user's position in the first grid space. After receiving the operation request, the first management process determines the target cell space based on the location update value and updates the data in the target cell space. The location update value is calculated by the first server based on the location information. By implementing this scheme, the parallel processing capability of the first management process is improved by reducing the data update range.

[0053] Based on the third aspect, in possible implementations, the spatial data management system also includes a scheduler, and the method further includes:

[0054] The scheduler determines the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space;

[0055] The scheduler determines the side length of the target cell space based on the data density of the overall space and the query radius. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0056] It is understandable that the computing power of the first management process represents its computational or processing capabilities, while the data density of the overall space represents the amount of data within a unit space. Determining the side length of the grid space based on the computing power of the first management process and the data density of the overall space allows for better data management of the entire space. Furthermore, determining the side length of the cell space based on the data density of the overall space and the query radius allows for better adaptation to data distribution and query requirements.

[0057] Fourthly, this application provides a management device that operates on an infrastructure that stores data for an overall space, including a first grid space and a second grid space. The management device is used to manage data in the first grid space, and a first management process manages and communicates with a server. The device includes:

[0058] The acquisition module is used to acquire user operation requests, which include location information, indicating the user's position in the first grid space.

[0059] The communication module is used to forward operation requests to the server;

[0060] The acquisition module is also used to acquire the location update value sent by the server, which is calculated by the server based on the location information;

[0061] The determination module is used to determine the target cell space based on the position update value. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0062] The update module is used to update the data in the target cell space.

[0063] Based on the fourth aspect, in a possible implementation, another management device also runs on the infrastructure. This other management device is used to manage the data of the second grid space. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the communication module is used to send connection update information to the client to which the first user belongs. The connection update information is used to instruct the client to which the first user belongs to establish a communication connection with the other management device.

[0064] Based on the fourth aspect, in a possible implementation, the second grid space is in an inactive state. Another management device and scheduler also run on the infrastructure. The other management device is in an idle state. The scheduler is communicatively connected to the management process device. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the communication module is used to send an activation request to the scheduler. The activation request carries the identifier of the second grid space. The activation request is used to instruct the scheduler to wake up the other management device so that the other management device can manage the spatial data in the second grid space. The other management device is communicatively connected to the scheduler.

[0065] Based on the fourth aspect, in possible implementations, the operation request also includes movement information, which is used to indicate the position change of the first user in the overall space, and an acquisition module, which is used to acquire the position update value sent by the first server, which is calculated by the first server based on the position information and the movement information.

[0066] Based on the fourth aspect, in a possible implementation, the acquisition module is used to acquire the data query instruction input by the second user, the data query instruction including the query range;

[0067] The determination module is used to determine the query cell space based on the data query instruction. The query cell space is the cell space in the overall space that overlaps with the query range.

[0068] The determination module is also used to determine user data within the query range that falls within the query unit space;

[0069] The communication module is used to send user data within the query range in the unit space to the client of the second user.

[0070] Based on the fourth aspect, in possible implementations, a determining module is used to determine the query unit space corresponding to each user within the first grid space, wherein the query unit space corresponding to each user is the unit space in the overall space that overlaps with the query range of each user.

[0071] The determination module is also used to determine the query results for each user, where the query results for each user are user data within the query range of each user in the query cell space corresponding to each user;

[0072] The communication module is used to send the query results of each user to the client to which each user belongs.

[0073] Based on the fourth aspect, among the possible implementation methods, the overall space can be any one of two-dimensional space, non-spherical three-dimensional space, and spherical space.

[0074] Fifthly, this application provides a scheduler that runs on infrastructure storing data for an overall space, the overall space including a first grid space and a second grid space. The scheduler is used to schedule a first management process, the first management process being used to manage data in the first grid space. The scheduler includes:

[0075] The determination module is used to determine the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space;

[0076] The determination module is also used to determine the side length of the target cell space based on the data density of the overall space and the query radius, wherein the target cell space is a cell space of the first grid space or a cell space of the second grid space adjacent to the first grid space.

[0077] Based on the fifth aspect, in a possible implementation, the scheduler is used to schedule the second management process, the second management process is in an idle state, and the scheduler also includes a wake-up module, which is used to wake up the second management process when the number of users in the first grid space is greater than a preset threshold.

[0078] The scheduler also includes a migration module, which is used to migrate all or part of the data in the first grid space to the second management process;

[0079] The migration module is also used to schedule some users managed by the first management process to the second management process.

[0080] Based on the fifth aspect, in a possible implementation, the migration module is further configured to, after scheduling some users managed by the first management process to the second management process, migrate all data of the first grid space to the first management process and schedule all users managed by the second management process to the first management process when the number of users in the first grid space is less than or equal to a preset threshold, or migrate all data of the first grid space to the second management process and schedule all users managed by the first management process to the second management process.

[0081] Sixthly, this application provides a spatial data management system, which includes a first client, a first management process, and a first server. The first management process runs on an infrastructure that stores data for the entire space, including a first grid space and a second grid space. The first management process manages the data in the first grid space. The first client communicates with the first management process, and the first management process communicates with the first server.

[0082] The first client is used to send operation requests to the first management process. The operation requests include location information, which is used to indicate the location of the first user in the first grid space.

[0083] The first management process is used to forward operation requests to the first server;

[0084] The first server is used to calculate the location update value based on the location information;

[0085] The first management process is also used to receive location update values ​​sent by the first server;

[0086] The first management process is also used to determine the target cell space based on the location update value, wherein the target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space;

[0087] The first management process is also used to update the data in the target cell space.

[0088] Based on the sixth aspect, in possible implementations, the spatial data management system also includes a scheduler, which determines the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space.

[0089] The scheduler determines the side length of the target cell space based on the data density of the overall space and the query radius. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0090] In a seventh aspect, this application provides a computing device, including a memory and a processor, wherein the processor is configured to execute instructions stored in the memory to enable the computing device to implement the method described in the first aspect and any possible implementation thereof, or to implement the method described in the second aspect and any possible implementation thereof, or to implement the method described in the third aspect and any possible implementation thereof.

[0091] Eighthly, this application provides a computing device cluster, including at least one computing device, the at least one computing device including a memory and a processor, the processor of the at least one computing device being configured to execute instructions stored in the memory of the at least one computing device to enable the computing device cluster to implement the method described in the first aspect and any possible implementation of the first aspect, or to implement the method described in the second aspect and any possible implementation of the third aspect.

[0092] Ninthly, this application provides a computer storage medium including program instructions that, when executed on a computing device cluster, enable the computing device cluster to perform the method described in the first aspect and any possible implementation thereof, or to implement the second aspect and any possible implementation thereof, or to implement the third aspect and any possible implementation thereof.

[0093] Tenthly, this application provides a computer program product, including program instructions that, when executed on a computing device cluster, cause the computing device cluster to perform the method described in the first aspect or any possible implementation thereof, or the method described in the second aspect or any possible implementation thereof, or the method described in the third aspect or any possible implementation thereof. The computer program product can be a software installation package. When it is necessary to use the method provided by any possible design of the first aspect, or any possible design of the second aspect, or any possible design of the third aspect, the computer program product can be downloaded and executed on the computing device cluster to implement the method described in the first aspect or any possible implementation thereof, or the method described in the second aspect or any possible implementation thereof, or the method described in the third aspect or any possible implementation thereof. Attached Figure Description

[0094] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below.

[0095] Figure 1 A schematic diagram of a multi-user interactive system architecture is provided for this application;

[0096] Figure 2 A schematic diagram of a multi-user interactive system architecture when the client provided in this application is a heavyweight client;

[0097] Figure 3 A schematic diagram of a multi-user interactive system architecture when the client provided in this application is a lightweight client;

[0098] Figure 4 A flowchart illustrating a spatial data management method provided in this application;

[0099] Figure 5 This is a schematic diagram illustrating the interaction of various parts in the interactive system when the grid space where the target unit space is located is the second grid space and the state of the second grid space is inactive, as provided in this application.

[0100] Figure 6 Example diagram of the spatial area maintained by the management process provided in this application;

[0101] Figure 7 A flowchart illustrating another spatial data management method provided in this application;

[0102] Figure 8 A schematic diagram of the structure of a management device provided in this application;

[0103] Figure 9 A schematic diagram of the structure of a scheduler provided in this application;

[0104] Figure 10 A schematic diagram of the structure of a computing device provided in this application;

[0105] Figure 11 A schematic diagram of another computing device provided in this application;

[0106] Figure 12 This application provides a schematic diagram of the structure of a computing device cluster;

[0107] Figure 13 This application provides a schematic diagram of another computing device cluster structure.

[0108] Figure 14 This is a schematic diagram of another computing device cluster provided in this application. Detailed Implementation

[0109] The technical solution provided in this application will now be described with reference to the accompanying drawings.

[0110] See Figure 1 , Figure 1 This is a schematic diagram of a multi-user interactive system architecture provided for this application. Figure 1 The multi-user interactive system 100 shown includes a client 110, a spatial data management system 120, and a server cluster 130. The client 110 and the spatial data management system 120, as well as the spatial data management system 120 and the server cluster 130, are connected via a network, which can be a wide area network (WAN) or a local area network (LAN).

[0111] Client 110 is used to participate in online multi-user interactive applications. These applications can be online concerts, virtual shopping, multi-user games, and other online applications. Client 110 includes a first client 1101 and a second client 1102. It should be understood that client 110 may include more clients; this application does not specifically limit the number of clients included in client 110. The first client 1101 or the second client 1102 can be software or applications running on a user-controlled terminal device or computing device, such as a personal computer client, a browser-based World Wide Web (WWW) client, or an application (APP) client running on a mobile terminal; this application does not specifically limit this either. The second client 1102 is similar to the first client 1101, and for the sake of patent brevity, it will not be described further here.

[0112] The Spatial Data Management System 120 manages data within the overall space of multiplayer interaction. This overall space data is stored on infrastructure. The overall space can be a virtual space provided by a multiplayer application, such as a game space in a multiplayer game or a shopping environment in a virtual shopping mall. The overall space can be two-dimensional, three-dimensional, or even higher-dimensional; no specific limitation is made here. The overall space comprises multiple grid spaces. The number of grid spaces can be numerous, for example, dozens, hundreds, thousands, or even more. The shape of the grid spaces can be square or cube, etc. Grid spaces have active and inactive states. An active state indicates that a user has logged into the multiplayer application using a client within that grid space, while an inactive state indicates that no user has logged into the multiplayer application using a client within that grid space. Each grid space has its own spatial data, which can be a collection of information about various elements within the virtual space provided by the multiplayer application, such as the position and status information of players in a multiplayer game, or the position and attribute information of objects in a multiplayer game scene.

[0113] The spatial data management system 120 includes a first management process 1201 and a second management process 1202, both of which run on the infrastructure. It should be noted that the spatial data management system 120 may also include more management processes; however, this application does not specify the exact number of management processes included in the spatial data management system 120. For ease of description, the first management process 1201 will be used as an example below. The first management process 1201 can be in either an idle state or a working state. An idle state indicates that the first management process 1201 has not completed initialization, while a working state indicates that the first management process 1201 has completed initialization. The first management process 1201 in the working state manages spatial data in one of the grid spaces that is in an activated state. The first management process 1201 establishes connections with its related management processes for communication. The related management processes refer to the management processes that manage the grid spaces adjacent to the grid space managed by the first management process 1201. The adjacent grid spaces of this grid space are not limited to those grid spaces that are in contact with it on the boundary and share a portion of the boundary. All grid spaces involved in the maintenance space region of this grid space are considered adjacent grid spaces, which will be described in subsequent embodiments. For example, the related process of the first management process 1201 can be the second management process 1202, wherein the grid spaces managed by the first management process 1201 are adjacent to the grid spaces managed by the second management process 1202.

[0114] The spatial data management system 120 may also include a scheduler 1203, which may be a process. The scheduler 1203 is used to monitor the status of each management process in the first management process 1201 and the second management process 1202, as well as to monitor the user distribution in each of the multiple grid spaces.

[0115] The Spatial Data Management System 120 can be deployed on a single computing device or a cluster of multiple computing devices. These computing devices include bare metal servers (BMS), virtual machines, containers, or edge computing devices. Specifically, a BMS refers to a general-purpose physical server, such as an ARM or x86 server; a virtual machine refers to a complete computer system implemented using Network Functions Virtualization (NFV) technology, simulated in software, with full hardware system functionality, and running in a completely isolated environment; a container refers to a group of resource-constrained, isolated data management processes; and edge computing devices are devices closer to the data source and end users, characterized by low latency and high bandwidth, such as intelligent routers and edge servers.

[0116] Server cluster 130 is used for calculations and judgments based on spatial data provided by spatial data management system 120. For example, each server in server cluster 130 can calculate location update values ​​based on spatial data provided by spatial data management system 120, or make judgments on spatial data provided by spatial data management system 120 based on business logic, etc. Server cluster 130 includes a first server 1301 and a second server 1302. It should be noted that server cluster 130 may also include more servers; this application does not specifically limit the number of servers included in server cluster 130. For ease of description, the following description uses the first server 1301 as an example. The state of the first server 1301 in server cluster 130 can be either idle or working. The idle state of the first server 1301 indicates that the first server 1301 has not completed initialization work, and the working state of the first server 1301 indicates that the first server 1301 has completed initialization work. The initialization of the first server 1301 will be described in the subsequent initialization of the multi-user interactive system. The first server 1301 can be one of the following: BMS, virtual machine, container, or edge server. For a detailed description, please refer to the above content, which will not be repeated here.

[0117] Optionally, each client in client 110 and each server in the server cluster can install Unreal Engine (UE) to achieve higher quality graphics rendering and application development, thereby improving the user experience.

[0118] Optionally, when communicating between the first management process 1201 and the second management process 1202, between the first management process 1201 and the first server 1301, between the second management process 1202 and the second server 1302, and between the scheduler 1203 and each management process within the space data management system 120, high-speed network interfaces such as remote direct memory access (RDMA) can be used to accelerate network communication.

[0119] Optionally, in the multi-user interactive system, the first client 1101, the second client 1102, the first management process 1201, the second management process 1202, the scheduler 1203, the first server 1301, and the second server 1302 can call `channeld` to perform serialization or deserialization operations when sending or receiving data. `channeld` is a communication component used for serialization and deserialization operations during data transmission and reception. Serialization refers to converting the data format into a format that can be transmitted over the network, while deserialization refers to converting the serialized data back into the original data format for subsequent processing and use.

[0120] The above example illustrates the situation by setting up server cluster 130 outside of spatial data management system 120. In practical applications, server cluster can also be set up inside spatial data management system 120, and no specific limitation is made here.

[0121] Each client in Client 110 can be divided into two types: heavyweight clients and lightweight clients. Lightweight clients are those with weaker performance and fewer resources, primarily relying on the server for most computation and processing. They are typically only used for receiving and displaying data, without needing to perform complex data processing or rendering. Heavyweight clients, on the other hand, have stronger computing power and resources, capable of independently performing a certain degree of data processing and rendering. They typically have local storage capabilities and diverse application functionalities, and do not completely rely on the server for computation and processing. The multi-user interactive system architecture will differ depending on the type of client in Client 110. The following sections describe the multi-user interactive system architecture corresponding to each type of client.

[0122] like Figure 2 As shown, when the first client 2101 is a heavyweight client, since each management process in a working state manages spatial data in one of the grid spaces, when a user logging into the multi-user interactive program using the first client 2101 is located within the grid space managed by the first management process 2201 in a working state, a communication connection is established between the first client 2101 and the first management process 2201 in a working state. Figure 2 (The solid lines in the diagram represent communication connections). Then, the first client 2101 establishes an idle connection with the relevant data management process of the first management process 2201, which is in an active state. Figure 2 (The dashed lines in the diagram represent idle connections). The number of related data management processes of the first management process 2201 in the active state can be one or more. The grid space managed by the first management process 2201 in the active state is an adjacent grid space to the grid spaces managed by the related management processes of the first management process 2201 in the active state. A communication connection refers to a connection where both parties can transmit data and interact; the connection is in an active state (capable of actual data exchange). An idle connection refers to a connection where both parties have established a connection but do not transmit data or interact; the connection is in an inactive state (maintaining the connection but not exchanging data). If a user logging into the multi-user interactive program using the first client 2101 moves from the grid space managed by the first management process 2201 (which is in an active state) to the grid space managed by one of the related management processes of the first management process 2201 (which is in an active state), the first client 2101 modifies the communication connection established between the first client 2101 and the first management process 2201 (which is in an active state) to an idle connection, and modifies the idle connection established between the first client 2101 and the related management process of the first management process 2201 (which is in an active state) to a communication connection. The second client 2102 is similar to the first client 2101. When the second client 2102 is a heavyweight client, it also performs similar actions to the first client 2101. For the sake of simplicity in the patent, this will not be elaborated further here.

[0123] like Figure 3 As shown, when the first client 3101 is a lightweight client, the space data management system 320 also includes a first client 32041 connected to it. The first client 32041 in the space data management system 320 is a heavyweight client, capable of directly establishing a communication connection with the first management process 3201 in a working state, and able to send video streams from multi-user interactive applications to the first client 3101. The second client 3102 is similar to the first client 3101; when the second client 3102 is a heavyweight client, it also performs similar actions to the first client 3101. For the sake of simplicity, this will not be elaborated further. Furthermore, the first management process 3201 and the first client 32041, and the second management process 3202 and the second client 32042 within the space data management system 320, can utilize high-speed network interfaces such as RDMA to accelerate network communication.

[0124] See Figure 4 , Figure 4 This is a flowchart illustrating a spatial data management method provided in this application. This method is applied to a multi-user interactive system; in this embodiment, the multi-user interactive system is... Figure 2 In the multi-user interactive system, the first client is Figure 2 The first client in the system is 2101, and the spatial data management system is... Figure 2 The spatial data management system 220 in the middle, the first server is Figure 2 The first server in the system is 2301. (For example...) Figure 4 As shown, the spatial data management method in this embodiment includes:

[0125] S401: The first client sends an operation request to the first management process.

[0126] A first user sends an operation request to a first management process through a first client. The first client is the client belonging to the first user located within a first grid space. The first grid space is in an active state. The first client is connected to the first management process, which manages the spatial data of the first grid space. Both the first client and the first management process have been initialized, and the first management process is in a working state. The operation request includes, but is not limited to, location information, movement information, and the first user's identifier (ID). The location information indicates the first user's position within the first grid space, and the movement information indicates changes in the first user's position within the overall space.

[0127] S402: The first management process forwards the operation request to the first server.

[0128] Upon receiving an operation request, the first management process forwards the request to the first server. The first management process and the first server are connected, the first server has completed initialization, and its state is active.

[0129] S403: The first server calculates the location update value based on the location information and movement information.

[0130] After receiving the operation request, the first server calculates the location information of the first user after the data update, i.e., the location update value, based on the location information and movement information in the operation request.

[0131] S404: The first server sends the location update value to the first management process.

[0132] S405: The first management process updates the value based on the location and determines the target cell space.

[0133] The first grid space comprises multiple cell spaces, each with independent spatial data. In one implementation, the first management process determines the target cell space containing the position update value based on the position update value as follows: First, the first management process divides the first user's position coordinates by the side length of the cell space; then, it rounds the result to the nearest integer. Finally, according to the position-to-cell space mapping rule, the first management process obtains the identifier of the target cell space after executing the operation request. The position-to-cell space mapping rule refers to the rule for converting the cell space coordinates obtained by dividing the user's position coordinates by the side length of the cell space and then rounding them to the nearest integer into the identifier of the cell space. This mapping rule is sent by the scheduler to the first management process after establishing a connection with it; the first management process has already established a connection with the scheduler before initialization. The side length of the cell space will be introduced later in the scheduler initialization section.

[0134] S406: The first management process updates the data in the target cell space.

[0135] The process of the first management process updating the data in the target cell space is as follows: First, the first management process locks the target cell space. This locking ensures that the first management process can only update the data of the first user, and cannot modify the data of other users in the target cell space at the current moment, thus guaranteeing data consistency and security. Then, the first management process retrieves the first user's data based on the first user's ID and updates the location value to the first user's data.

[0136] It should be understood that there are three possible scenarios for the grid space where the target cell space is located, and the steps executed by the first management process will differ depending on the scenario.

[0137] Case 1: The grid space where the target cell space is located is the first grid space.

[0138] The first management process obtains the identifier of the grid space where the target cell space is located based on the location update value. When it determines that the grid space where the target cell space is located is the first grid space, the first management process will send the location update value to the first client.

[0139] The process by which the first management process determines the identifier of the grid space containing the target cell is as follows: First, the first management process divides the first user's position coordinates by the side length of the grid space, then rounds down the result to obtain the grid space coordinates. Finally, the first management process obtains the identifier of the grid space to which the position update value belongs, according to the position-grid space mapping rule. The position-grid space mapping rule refers to the rule for converting the user's position coordinates divided by the grid space side length and then rounded down to obtain the grid space coordinates into the grid space identifier. This mapping rule is sent to the first management process by the scheduler after establishing a connection with it. The side length of the grid space will be introduced later in the scheduler initialization process and will not be repeated here.

[0140] For example, the location coordinates of the first user are (5,8), the side length of the grid space is 10, 5 is divided by 10 and rounded down to get 0, 8 is divided by 10 and rounded down to get 0, and the resulting grid space coordinates (0,0) are converted into the grid space identifier, for example, the grid space identifier can be "00-00".

[0141] Case 2: The target cell space is located in the second grid space and the second grid space is in an activated state.

[0142] A second management process also runs on the infrastructure. This second management process is in a working state and manages the data in the second grid space. The first grid space is adjacent to the second grid space, and both are in an active state. Before the first management process updates the data in the target cell space, a communication connection has been established between the first client and the first management process, and an idle connection has been established between the first client and the second management process.

[0143] After the first management process updates the data of the target cell space, it first determines the identifier of the grid space where the target cell space is located, and then determines that the grid space where the target cell space is located is the second grid space. The specific implementation of determining the identifier of the grid space where the target cell space is located is described in Case 1, and will not be repeated here for the sake of patent simplicity. Then, it determines that the state of the second grid space is activated.

[0144] The process by which the first management process determines that the second grid space is in an active state is as follows: The first management process searches for the identifier of the second grid space in the routing table. The routing table records information about each management process in the spatial data management system. This information includes, but is not limited to, the management process's Internet Protocol (IP) address and the identifier of the grid space managed by that management process (if the grid space is in an active state). When a management process is in an idle state, only its IP address is recorded in the routing table, and the identifier of the grid space managed by that process is empty. The first management process can actively obtain the routing table from the scheduler, or the scheduler can actively send the routing table to the first management process. When the second grid space is in an active state, it means that a working management process is managing the spatial data within the second grid space, so the identifier of the second grid space exists in the routing table. Therefore, when the first management process finds the identifier of the second grid space in the routing table, it determines that the second grid space is in an active state.

[0145] When the first management process determines that the grid space containing the target cell is the second grid space and that the second grid space is in an active state, the first management process sends a location update value and connection update information to the first client. The connection update information instructs the first client to change its idle connection with the second management process to a communication connection, and to change its communication connection with the first management process back to an idle connection. The connection update information may include the IP address of the second management process. This application does not impose specific limitations on the connection update information.

[0146] It should be noted that in practical applications, in addition to establishing idle connections with the second management process, the first client also establishes idle connections with related management processes of the first management process. After receiving connection update information, the first client will also determine whether the grid space managed by the related management processes of the first management process is adjacent to the second grid space. If they are not adjacent, the first client will disconnect the idle connections between itself and the management processes managing those non-adjacent grid spaces. The process by which the first management process determines whether the grid space managed by its related management processes is adjacent to the second grid space is as follows: First, the first client searches for the identifiers of adjacent grid spaces in the routing table based on the identifier of the second grid space. The first client can actively obtain the routing table from the scheduler, or the scheduler can actively send the routing table to the first client. Then, based on the identifiers of the adjacent grid spaces of the second grid space, the first client retrieves the IP address of the related management process of the second management process from the routing table. Finally, it is determined whether the IP address of the relevant management process of the first management process is consistent with the IP address of the relevant management process of the second management process. If the IP address of one of the relevant management processes of the first management process (hereinafter referred to as "management process A") is inconsistent with the IP address of the relevant management process of the second management process, it is determined that the grid space managed by management process A is not adjacent to the second grid space.

[0147] It should be understood that the first client changes its connection with the second management process from an idle connection to a communication connection through data transmission. That is, when the first client and the second management process are transmitting data, their connection automatically switches from an idle connection to a communication connection, and the first client does not need to send any instructions to the second management process. Similarly, the first client changes its connection with the first management process from a communication connection to an idle connection through the termination of data transmission. That is, when the first client and the first management process are not transmitting data, their connection automatically switches from a communication connection to an idle connection, and the first client does not need to send any instructions to the first management process.

[0148] Case 3: The target cell space is located in the second grid space and the second grid space is in an inactive state.

[0149] A second management process is also running on the infrastructure. This second management process is in an idle state. The first grid space and the second grid space are adjacent; the first grid space is in an active state, while the second grid space is in an inactive state. A communication connection has been established between the first client and the first management process before the first management process updates the data in the target cell space.

[0150] After the first management process updates the data of the target cell space, it first determines the identifier of the grid space where the target cell space is located, and accordingly determines the grid space where the target cell space is located as the second grid space. The method for determining the identifier of the grid space where the target cell space is located is the same as in Case 1, and will not be repeated here for the sake of patent simplicity. Then, it determines the state of the second grid space to be inactive. The specific method for determining the state of the second grid space to be inactive is the same as the description of the first management process determining the state of the second grid space to be active in Case 2, and will not be repeated here for the sake of patent simplicity.

[0151] When the target unit space is located in the second grid space and the second grid space is in an inactive state, the interaction process of each part of the interactive system is as follows:

[0152] See Figure 5 , Figure 5 This is a schematic diagram illustrating the interaction of various parts in the interactive system when the grid space where the target unit space is located is the second grid space and the second grid space is in an inactive state, as provided in this application.

[0153] S4061: The first management process sends an activation request to the scheduler.

[0154] The activation request carries the identifier of the second grid space. The activation request is used to instruct the scheduler to wake up the second management process so that the second management process can manage the data in the second grid space. The second management process communicates with the scheduler.

[0155] S4062: The scheduler sends the first wake-up command to the second management process.

[0156] The first wake-up command is used to wake up the second management process, which is in an idle state, so that the second management process can manage the data in the third grid space. The first wake-up command carries the identifier and address of the second grid space. The scheduler stores the addresses of each grid space in the spatial data management system.

[0157] In one implementation, the scheduler can select one of several idle management processes as the second management process based on a common scheduling algorithm, and then send a first wake-up command to the second management process. For example, the scheduling algorithm could be the longest wait time scheduling algorithm. It should be understood that selecting one of several idle management processes as the second management process based on a common scheduling algorithm is merely a specific example. In practical applications, the scheduler can also arbitrarily select one idle management process from several idle management processes as the second management process and then send a first wake-up command to the second management process.

[0158] S4063: The second management process is initialized.

[0159] The initialization process of the second management process is described in the subsequent section on management process initialization in the multi-user interactive system initialization. After initialization, the second management process is in a working state. During initialization, the second management process establishes connections with its related management processes to facilitate data transmission.

[0160] S4064: The first management process sends the location update value to the second management process.

[0161] S4065: The second management process obtains data belonging to the spatial area maintained by the second management process from the first management process.

[0162] In this embodiment, the spatial region maintained by the management process of each working state includes the grid space managed by the management process of that working state and a partial spatial region of the adjacent grid spaces. A partial spatial region is a spatial region formed by extending outward from the boundary of the grid space by a query radius. The number of partial spatial regions can be one or more, depending on the number of adjacent grid spaces. The query radius refers to the distance extended outward from a certain location. The query radius is the query radius when the management process of the working state performs a range query operation, and its value can be a fixed value preset by the spatial data management system. The management process of that working state has modification and query permissions for the data in the grid space managed by the management process of that working state, and only query permissions for the data in the partial spatial regions of the adjacent grid spaces. The spatial region maintained by the management process of each working state can be a circle, square, cube, etc., and this application does not impose specific limitations.

[0163] by Figure 6 Taking the fifth management process as an example, this section describes the spatial area maintained by the fifth management process. See [link / reference]. Figure 6 , Figure 6An example diagram of the spatial region maintained by the management process provided in this application. Figure 6 In this system, each grid space comprises multiple cell spaces. The fifth management process manages the data within its grid space, and its status is active. The adjacent grid spaces of the fifth grid space include the first, second, third, fourth, sixth, seventh, eighth, and ninth grid spaces. Starting from the left boundary of the fifth grid, expanding outward by a query radius forms a spatial region. Figure 6 The spatial region 4) forms a part of the fourth grid space. Similarly, by expanding outwards by a query radius from the top left, top boundary, top right, right boundary, bottom left, bottom boundary, and bottom right corner of the fifth grid, a spatial region can be formed. Figure 6 The five management processes maintain the fifth grid space, which includes spatial regions 1, 2, 3, 5, 6, 7, and 8. However, the fifth management process has modification and query permissions for data within the fifth grid space, but only query permissions for data within spatial regions 1, 2, 3, 4, 5, 6, 7, and 8.

[0164] It should be understood that by extending the maintenance space of the working state management process to a portion of the adjacent grid space within the grid space managed by the working state management process, the amount of data transmitted between the working state management process and related management processes during range query operations can be reduced, thereby reducing communication overhead and saving bandwidth.

[0165] Based on the above description, the second management process needs to retrieve data belonging to the spatial region maintained by the second management process from the first management process. In one implementation, the second management process can send a retrieval command to the first management process. After receiving the retrieval command, the first management process can sequentially compare the location of the user within the cell space to which the identifier of the received cell space belongs with the range of the spatial region maintained by the second management process. If the user's location meets the range of the spatial region maintained by the second management process, then the user information corresponding to that user is sent to the second management process. Specifically, the retrieval command instructs the first management process to search for data belonging to the spatial region maintained by the second management process within the specified cell space and send the searched data to the second management process. The retrieval command carries the identifier of the specified cell space and the range of the spatial region maintained by the second management process. The range of the spatial region maintained by the second management process can be expressed as follows: on the x-axis, the range satisfies the interval [minimum value of the third grid space on the x-axis coordinate - query radius, maximum value of the third grid space on the x-axis coordinate + query radius), and on the y-axis, the range satisfies the interval [minimum value of the third grid space on the y-axis coordinate - query radius, maximum value of the third grid space on the y-axis coordinate + query radius). The number of identifiers for the specified cell space can be one or more.

[0166] In one implementation, the identifier of the specified cell space is obtained as follows: First, the first management process calculates the coordinate range of the overlapping area formed by the space region maintained by the second management process and the first grid space (the coordinate range of the overlapping area can be: satisfying the interval [x1, x2) on the x-axis and satisfying the interval [y1, y2) on the y-axis). Then, the first management process calculates the cell space involved in this overlapping area, which is the specified cell space. Finally, the first management process calculates the coordinates of the cell space involved in this overlapping area and converts the coordinates of the specified cell space into the identifier of the specified cell space according to the position and cell space mapping rules.

[0167] It should be understood that the above-mentioned method for obtaining the identifier of the specified unit space is only a specific example. In practical applications, it can also be implemented in other ways, and this application does not make any specific limitations.

[0168] S4066: The scheduler sends a second wake-up command to the second server.

[0169] The second wake-up instruction is used to instruct the scheduler to wake up an idle server (the server has not been initialized, i.e., the server has not established a connection with any working management process). The second wake-up instruction carries the IP address of the second management process. The second server is one of several idle servers. The method by which the scheduler selects a server from several idle servers as the second server can be found in S4062 regarding how to select a management process from several idle management processes as the second management process; for the sake of patent simplicity, it will not be elaborated here.

[0170] S4067: The second server is initialized.

[0171] The initialization process of the second server is described in the subsequent section on server initialization in the multi-user interactive system initialization section, and will not be repeated here. After the second server completes initialization, it is in a working state (i.e., the second server establishes a connection with the second management process based on the IP address of the second management process in the second wake-up command).

[0172] S4068: The scheduler sends the location update value and routing table to the first client.

[0173] The first management process sends the location update value to the first client so that the first client knows the latest location information of the first user.

[0174] Because the second management process is awakened, its state changes from idle to active, and the state of the second and third grid spaces changes from inactive to active. Therefore, the data in the routing table changes. The scheduler updates the previous routing table to obtain the latest one. The difference between the latest and previous routing tables is that the latest table includes a new record: "IP of the second management process: identifier of the second grid space". Therefore, the scheduler needs to send the updated routing table to the first client so that the first client can promptly access the latest routing information.

[0175] It should be noted that after updating the routing table, the scheduler will also send the latest routing table to all clients connected to the scheduler.

[0176] It should be understood that the first client obtaining the latest routing table information based on the updated routing table sent by the scheduler is merely a specific example. In practical applications, the first client can also periodically obtain the latest routing table information from the scheduler.

[0177] S4069: The first client establishes a communication connection with the second management process and establishes an idle connection with the relevant management processes of the second management process.

[0178] The specific process is as follows: First, the first client determines the identifier of the grid space to which the location update value belongs, i.e., the identifier of the second grid space. Specifically, after receiving the location update value, the first client can determine the identifier of the grid space where the location update value is located, i.e., the identifier of the second grid space, according to the description of the first management process determining the identifier of the grid space where the target unit space is located in S406, case 1. Then, the first client searches for the identifiers of the adjacent grid spaces of the second grid space in the routing table based on the identifier of the third grid space, and then obtains the IP addresses of the relevant management processes of the second management process. Subsequently, the first client can disconnect the idle connection between the first client and some management processes by sending a close connection request. Some management processes refer to those management processes that belong to the relevant management processes of the first management process but do not belong to the relevant management processes of the second management process. Finally, the first client establishes a communication connection with the second management process based on the IP address of the second management process, and establishes an idle connection with the relevant management processes of the second management process (excluding the first management process) based on the IP addresses of the relevant management processes of the second management process.

[0179] It should be understood that the first management process is one of the related management processes of the second management process. The first client has already established a communication connection with the first management process before sending an operation request to the first management process. Therefore, the first client needs to change the connection between the first client and the first management process from a communication connection to an idle connection. The first client does not need to re-establish an idle connection with the first management process.

[0180] It should also be understood that, in practical applications, the first management process can also receive data query instructions sent by the second user through the first client. These data query instructions include the query range and the location information of the second user. The query range is an area formed by extending a query radius in all directions from the location of the second user. This application does not specifically limit the value of the query radius. In this case, the first management process first determines the identifier of the query unit space according to the data query instructions. The query unit space refers to a unit space that overlaps with the query range in the overall space. Next, the first management process determines the user data within the query unit space that falls within the query range. Finally, the first management process sends the user data within the query unit space that falls within the query range to the client to which the second user belongs, i.e., the first client. The process by which the first management process determines the identifier of the query unit space according to the data query instructions is as follows: First, the first management process determines the coordinates of the first location and the coordinates of the second location. In one implementation, the first management process determines the coordinates of the first position by subtracting a query radius from the x-axis value of the second user's position and adding a query radius to the y-axis value. Similarly, it determines the coordinates of the second position by adding a query radius to the x-axis value and subtracting a query radius from the y-axis value. Next, the first management process calculates the identifiers of the cell spaces to which the first and second positions belong. For implementation details, refer to S405 for the description of the first management process determining the target cell space containing the position update value based on the position update value. Subsequently, the first management process determines the identifier of the cell space to be queried. Specifically, the first management process calculates the coordinates of all cell spaces located within the range [x3, x4) and [y3, y4), converts the calculated coordinates into identifiers for the cell spaces, and thus obtains the identifier of the cell space to be queried. The coordinates of the cell space to which the first position belongs are (x3, y3), and the coordinates of the cell space to which the second position belongs are (x4, y4). It should be understood that the above process is merely a specific example. In practical applications, the first management process may also determine the identifier of the unit space to be queried in other ways, and this application does not impose any specific limitations.

[0181] Optionally, the first management process can also periodically perform range queries on each user in the first grid space according to the frame rate set by the spatial data management system, and send the query results to the client to which each user in the first grid space belongs, i.e., the first client. For details, please refer to the above description. For the sake of patent brevity, it will not be repeated here.

[0182] It should be noted that before a multi-user interactive system can run, system initialization is required. The following is based on... Figure 2 The initialization of the multi-user interactive system is described below.

[0183] (1) Scheduler initialization

[0184] Scheduler initialization includes setting the maximum query radius, setting the side length of the cell space, setting the side length of the grid space, and obtaining the Internet Protocol (IP) address and port number for providing external services.

[0185] The maximum query radius refers to the maximum allowed search radius for the management process when performing range queries in a spatial data management system. The value of the maximum query radius can be determined by comprehensively considering factors such as application scenarios, user needs, the distribution of data within the overall space, and system performance; this application does not impose specific limitations on it.

[0186] The side length of the cell space can be calculated using formula (1), and the side length of the grid space can be calculated using formula (2).

[0187]

[0188] Where k is a hardware-related constant, typically ranging from 2 to 5, and related to hardware architecture, processor performance, and memory capacity, etc., this application does not impose specific limitations on it; R is the maximum query radius; ρ is an estimate of the overall data density (number of users per unit area); W is an estimate of the side length of the overall space; and E is an estimate of the number of users in the overall space. The values ​​of ρ, W, and E can be estimated based on historical data or statistical information, and this application does not impose specific limitations on them.

[0189] It should be understood that the above formula for calculating the side length of the grid space is only the formula that this application believes can provide the best performance under this setting. In practical applications, the side length of the grid space can also be calculated by other formulas, and this application does not make any specific limitations.

[0190]

[0191] Where ρ is an estimated value of the data density in the overall space; C is the computing power of the management process, which can be set according to the design and performance requirements of the spatial data management system, and this application does not impose specific limitations.

[0192] The scheduler can obtain the IP address and port number for providing services to the outside world through configuration files and network protocols (such as DHCP protocol), and this application does not impose specific limitations.

[0193] (2) Management process initialization.

[0194] After receiving the first wake-up command from the scheduler, the management process will initialize. The first wake-up command carries information about the grid space, including but not limited to the grid space identifier and IP address.

[0195] To facilitate understanding, the initialization process of the management process will be described using the first management process as an example. The first management process can be initialized through the following steps:

[0196] Step 1: After receiving the first wake-up command from the scheduler, the first management process can map the first grid space into its address space using the memory mapping function provided by the operating system. This allows the first management process to manage the spatial data of the first grid space. The first wake-up command carries information about the first grid space.

[0197] Step 2: The first management process obtains the IP addresses of the relevant management processes managing the first management process from the routing table. For details, please refer to the description in S406, Case 2, where the first client obtains the IP addresses of the relevant management processes managing the second management process; this will not be repeated here. Then, the first management process establishes connections with its respective relevant management processes.

[0198] It should be noted that the first management process has established a connection with the scheduler before initialization. Before initialization, the first management process is in an idle state; after initialization, it is in a working state. The connection between the first management process and the scheduler is a network connection. Once the first management process is successfully initialized, the scheduler can send the grid space mapping rules and the location-to-cell space mapping rules to the first management process. The scheduler can also periodically send the routing table to the first management process, and the first management process can also actively retrieve the routing table from the scheduler; this application does not impose specific limitations on these aspects.

[0199] Although the above process only records the initialization process of the first management process, the same method can be used to initialize other management processes in the spatial data management system that are in an idle state.

[0200] (3) Server initialization.

[0201] After receiving the second wake-up command from the scheduler, the server initializes itself, and this second wake-up command carries the IP address of the management process. The server then establishes a connection with the management process based on the management process's IP address.

[0202] It should be noted that the server has established a connection with the scheduler before initialization. The server is in an idle state before initialization and in a working state after initialization. The connection between the server and the scheduler is a network connection.

[0203] (4) Client initialization.

[0204] The client can provide Figure 2 The second client 210 in the configuration initializes itself after receiving a connection request from the user. The client can initialize itself through the following steps:

[0205] Step 1: The client establishes a connection with the scheduler. After the connection is established, the client can obtain the routing table, the user's initial location, the mapping rules between the location and the grid space, and the location from the scheduler.

[0206] It's important to note that a user's initial position is set based on the specific scenario. For example, in a multiplayer game, a user's initial position can be fixed, or users on the same team can share the same initial position. The scheduler can obtain the user's initial position information from any server.

[0207] Step 2: Based on the user's initial position and the mapping rules between the position and the grid space, the client determines the identifier of the grid space where the user is located (hereinafter referred to as "grid space A" for ease of description). For details, please refer to the description of determining the identifier of the grid space where the target cell space is located in the first management process in S406, which will not be repeated here.

[0208] Step 3: Based on the identifier of grid space A, the client finds the identifiers of the adjacent grid spaces of grid space A from the routing table, and then obtains the IP address of the management process that manages grid space A and the IP address of the management process that manages the adjacent grid spaces of grid space A.

[0209] Step 4: The client establishes a communication connection with the management process of grid space A based on the IP address of the management process of grid space A; the client also establishes idle connections with the management processes of the adjacent grid spaces of grid space A based on the IP addresses of the management processes of the adjacent grid spaces of grid space A.

[0210] It should be understood that the client maintains and manages idle connections between the management processes of adjacent grid spaces of grid space A. This allows the client to communicate with the corresponding management processes in a timely manner when the user moves from grid space A to an adjacent grid space of grid space A, thus avoiding frame rate fluctuations caused by re-establishing connections.

[0211] In summary, this application provides a spatial data management method. In this method, the first and second grid spaces are further divided into multiple cell spaces. After receiving an operation request, the first management process determines the target cell space based on the location update value and updates the data within that target cell space. This approach, by reducing the data update range, enhances the parallel processing capability of the first management process. Especially in high-concurrency scenarios, the first management process can more quickly locate the target cell space and update the data, significantly improving processing speed and responsiveness. Furthermore, upon receiving a range query command, the first management process can execute a range query operation on the user. Moreover, when performing a range query, only the relevant cell space needs to be considered, reducing the amount of data processed and improving query efficiency.

[0212] See Figure 7 , Figure 7 A flowchart illustrating another spatial data management method provided in this application is shown. This method is applied to a scheduler, which runs on infrastructure. The infrastructure stores data for the entire space, which includes a first grid space. A first management process manages the data in the first grid space. The method includes:

[0213] S701: Scheduler initialization.

[0214] The scheduler initialization process is described in S406, and will not be repeated here for the sake of patent brevity.

[0215] S702: The scheduler monitors whether the number of users in the first grid space is greater than a preset threshold.

[0216] If the number of users in the first grid space monitored by the scheduler is greater than the preset threshold, execute S703; otherwise, execute S705.

[0217] S703: When the scheduler detects that the number of users in the first grid space is greater than a preset threshold, the second management process is woken up.

[0218] If the scheduler detects that the number of users in the first grid space is greater than a preset threshold, the scheduler will calculate the ratio of the number of users in the first grid space to the preset threshold. If the ratio is greater than 1 and less than 2, the scheduler will first wake up the second management process, where the second management process is in an idle state. The specific implementation process of the scheduler waking up the second management process is shown in S4062, which will not be repeated here. Then, the scheduler migrates all or part of the data in the first grid space to the second management process. Finally, the scheduler schedules some of the users managed by the first management process to the second management process.

[0219] It should be understood that in practical applications, when the scheduler detects that the number of users in the first grid space exceeds a preset threshold, the ratio of the number of users in the first grid space to the preset threshold may be a positive number greater than 2. For example, if the ratio of the number of users in the first grid space to the preset threshold is greater than or equal to 2 and less than 3, the scheduler can wake up any two idle management processes out of multiple idle management processes. As another example, if the ratio of the number of users in the first grid space to the preset threshold is greater than or equal to 3 and less than 4, the scheduler can wake up any three idle management processes out of multiple idle management processes. Similarly, if the ratio of the number of users in the first grid space to the preset threshold is greater than or equal to N and less than N+1, the scheduler can wake up any N idle management processes out of multiple idle management processes. Here, N is a positive number greater than 3.

[0220] S704: If the number of users in the first grid space is less than or equal to a preset threshold, the scheduler releases the first management process or the second management process from managing the data in the first grid space.

[0221] After the second management process manages the data of some users in the first grid space, the scheduler releases the first management process from managing the data in the first grid space. Specifically, the scheduler migrates all the data in the first grid space to the second management process and schedules all users managed by the first management process to the second management process; or, the scheduler releases the second management process from managing the data in the first grid space, specifically, the scheduler migrates all the data in the first grid space to the first management process and schedules all users managed by the second management process to the first management process. When the scheduler migrates all the data in the first grid space to the first management process and schedules all users managed by the second management process to the first management process, the first management process disconnects from the client, from other management processes, and from the server, and its state changes from working to idle. When the scheduler migrates all the data in the first grid space to the second management process and schedules all users managed by the first management process to the second management process, the second management process disconnects from the client, from other management processes, and from the corresponding server, and its state changes from working to idle.

[0222] S705: If the scheduler detects that the number of users in the first grid space is less than or equal to a preset threshold, it continues to monitor the number of users in the first grid space.

[0223] If the scheduler detects that the number of users in the first grid space is less than or equal to a preset threshold, it continues to monitor the number of users in the first grid space. If the first management process detects that the number of users in the first grid space is 0, in order to avoid wasting resources of the spatial data management system, the scheduler needs to release the first management process from managing the data of the first grid space. For details, please refer to the description of the scheduler releasing the first management process from managing the data of the first grid space in S704. For the sake of patent brevity, it will not be repeated here.

[0224] In summary, this application provides a spatial data method applied to a scheduler. The scheduler monitors the number of users in a first grid space. When the number of users in the first grid space exceeds a preset threshold, an idle management process is awakened, and some user operation requests are allocated to the idle management process. When the number of users in the first grid space is less than or equal to the preset threshold, one management process is removed from managing the data within the first grid space. The method by which the scheduler adjusts resources based on the number of users in this application helps the system more effectively cope with different loads.

[0225] This application provides a management device. See also: Figure 8 , Figure 8 This application provides a schematic diagram of the structure of a management device 400. The management device 400 operates on an infrastructure that stores data for an entire space, including a first grid space and a second grid space. The management device 400 manages the data in the first grid space and is communicatively connected to a server. The management device 400 includes:

[0226] The acquisition module 410 is used to acquire the user's operation request, which includes location information, and the location information is used to indicate the user's position in the first grid space.

[0227] Communication module 420 is used to forward operation requests to the server;

[0228] The acquisition module 410 is also used to acquire the location update value sent by the server, wherein the location update value is calculated by the server based on the location information;

[0229] The determination module 430 is used to determine the target cell space based on the position update value. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0230] Update module 440 is used to update the data in the target cell space.

[0231] In a possible implementation, another management device also runs on the infrastructure. This other management device is used to manage the data of the second grid space. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the communication module 420 is used to send connection update information to the client to which the first user belongs. The connection update information is used to instruct the client to which the first user belongs to establish a communication connection with the other management device.

[0232] In a possible implementation, the second grid space is in an inactive state. Another management device and scheduler are also running on the infrastructure. The other management device is in an idle state. The scheduler is communicatively connected to the management device 400. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the communication module 420 is used to send an activation request to the scheduler. The activation request carries the identifier of the second grid space. The activation request is used to instruct the scheduler to wake up the other management device so that the other management device can manage the spatial data in the second grid space. The other management device is communicatively connected to the scheduler.

[0233] In possible implementations, the operation request also includes movement information, which indicates the change in the first user's position in the overall space, and an acquisition module, which acquires the location update value sent by the first server, which is calculated by the first server based on the location information and the movement information.

[0234] In a possible implementation, the acquisition module 410 is used to acquire the data query instruction input by the second user, the data query instruction including the query range;

[0235] The determination module 430 is used to determine the query cell space according to the data query instruction. The query cell space is the cell space in the overall space that overlaps with the query range.

[0236] The determination module 430 is also used to determine user data within the query range in the query cell space;

[0237] The communication module 420 is used to send user data within the query range in the unit space to the client to which the second user belongs.

[0238] In a possible implementation, the determining module 430 is used to determine the query unit space corresponding to each user in the first grid space, wherein the query unit space corresponding to each user is the unit space in the overall space that overlaps with the query range of each user;

[0239] The determination module 430 is also used to determine the query results for each user, wherein the query results for each user are user data within the query range of each user in the query unit space corresponding to each user;

[0240] The communication module 420 is used to send the query results of each user to the client to which each user belongs.

[0241] In possible implementations, the overall space can be any of two-dimensional space, non-spherical three-dimensional space, or spherical space.

[0242] This application provides a scheduler, see [link to relevant documentation] Figure 9 , Figure 9 This application provides a schematic diagram of the structure of a scheduler 500. The scheduler 500 runs on infrastructure, which stores data of an overall space, including a first grid space and a second grid space. The scheduler 500 is used to schedule a first management process, which manages the data in the first grid space. The scheduler includes:

[0243] The determination module 510 is used to determine the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space.

[0244] The determining module 510 is further configured to determine the side length of the target cell space based on the data density of the overall space and the query radius, wherein the target cell space is a cell space of the first grid space or a cell space of the second grid space adjacent to the first grid space.

[0245] In a possible implementation, the scheduler 500 is used to schedule the second management process, which is in an idle state. The scheduler 500 also includes a wake-up module 520, which is used to wake up the second management process when the number of users in the first grid space is greater than a preset threshold.

[0246] Scheduler 500 also includes migration module 530, which is used to migrate all or part of the data in the first grid space to the second management process;

[0247] The migration module 530 is also used to schedule some users managed by the first management process to the second management process.

[0248] This application provides a spatial data management system, which includes a first client, a first management process, and a first server. The first management process runs on infrastructure that stores data for the entire space, including a first grid space and a second grid space. The first management process manages the data in the first grid space. The first client communicates with the first management process, and the first management process communicates with the first server.

[0249] The first client is used to send operation requests to the first management process. The operation requests include location information, which is used to indicate the location of the first user in the first grid space.

[0250] The first management process is used to forward operation requests to the first server;

[0251] The first server is used to calculate the location update value based on the location information;

[0252] The first management process is also used to receive location update values ​​sent by the first server;

[0253] The first management process is also used to determine the target cell space based on the location update value, wherein the target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space;

[0254] The first management process is also used to update the data in the target cell space.

[0255] In a possible implementation, the spatial data management system also includes a scheduler, which determines the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space.

[0256] The scheduler determines the side length of the target cell space based on the data density of the overall space and the query radius. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space.

[0257] See Figure 10 , Figure 10 This is a schematic diagram of the structure of a computing device 600 provided in this application. The computing device 600 can be deployed in... Figure 8 The operation and / or function of each module in the first management process device 400 and computing device 600 shown are respectively for implementing Figures 4 to 6 The corresponding steps in the spatial data management method shown.

[0258] like Figure 10As shown, the computing device 600 includes a processor 610, a memory 620, and a communication interface 630, wherein the processor 610, the memory 620, and the communication interface 630 can be interconnected via a bus 640.

[0259] The processor 610 can read program code (including instructions) stored in the memory 620, execute the program code stored in the memory 620, and cause the computing device 600 to perform... Figures 4 to 6 The spatial data management method shown.

[0260] The processor 610 can be implemented in various ways, such as a central processing unit (CPU), or a combination of a CPU and hardware chips. The hardware chips can be ASICs, PLDs, or combinations thereof. The PLDs can be CPLDs, FPGAs, GALs, or any combination thereof. The processor 610 executes various types of digital storage instructions, such as software or firmware programs stored in memory 620, enabling the computing device 600 to provide a wide range of services.

[0261] In a specific implementation, as one example, the processor 610 includes one or more CPUs.

[0262] In a specific implementation, as one example, the computing device 600 also includes multiple processors, each of which can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). Here, a processor refers to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).

[0263] The memory 620 is used to store program code, and its execution is controlled by the processor 610 to perform the above-mentioned tasks. Figures 4 to 6 The illustrated spatial data management method embodiment shows the processing steps. The program code may include one or more software modules, which can be... Figure 8 The software modules provided include, for example, the acquisition module 410, the communication module 420, the determination module 430, and the update module 440.

[0264] The memory 620 may include volatile memory, such as random access memory (RAM); the memory 620 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD); the memory 620 may also include combinations of the above types.

[0265] The communication interface 630 can be a wired interface (e.g., an Ethernet interface, a fiber optic interface, or other types of interfaces (e.g., an InfiniBand interface)) or a wireless interface (e.g., a cellular network interface or a wireless LAN interface) for communicating with other computing devices or apparatuses. The communication interface 630 can employ a protocol suite built on top of Transmission Control Protocol / Internet Protocol (TCP / IP), such as Remote Function Call (RFC), Simple Object Access Protocol (SOAP), Simple Network Management Protocol (SNMP), Common Object Request Broker Architecture (CORBA), and distributed protocols, etc.

[0266] The Bus 640 can be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. The Bus 640 can be divided into an address bus, a data bus, and a control bus.

[0267] In addition to the data bus, bus 640 may also include a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus 640 in the diagram. For ease of illustration, Figure 10 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0268] The aforementioned computing device 600 is used to perform Figures 4 to 6 The spatial data management method shown above is implemented in detail in the above method embodiments, and will not be repeated here.

[0269] It should be understood that the computing device 600 is merely one example provided in the embodiments of this application, and the computing device 600 may have more than Figure 10 The illustrated components may include more or fewer components, or two or more components may be combined, or different configurations of components may be used. For details regarding anything not shown or described in the embodiments of this application, please refer to the foregoing. Figures 4 to 6 The relevant descriptions in the embodiments of the spatial data management method shown will not be repeated here.

[0270] See Figure 11 , Figure 11 This is a schematic diagram of another computing device 700 provided in this application, which can be deployed in... Figure 9 The scheduler 500 and the various modules in the computing device 700 shown are designed to implement... Figure 7 The corresponding steps in the spatial data management method shown.

[0271] like Figure 11 As shown, the computing device 700 includes a processor 710, a memory 720, and a communication interface 730, wherein the processor 710, the memory 720, and the communication interface 730 are interconnected via a bus 740. The memory 720 is used to store program code, which is executed under the control of the processor 710 to perform the above-mentioned tasks. Figure 7 The illustrated spatial data management method embodiment shows the processing steps. The program code may include one or more software modules, which can be... Figure 9 The software modules provided include, for example, the determination module 510, the wake-up module 520, and the migration module 530. The computing device 700 is similar to the computing device 600; a detailed description of the computing device 700 can be found in the description of the computing device 600 described above. For the sake of patent brevity, it will not be repeated here.

[0272] This application also provides a computing device cluster 800, which can deploy the management device 400 shown in the figure. The operation and / or function of each module in the computing device cluster 800 are respectively for implementing... Figures 4 to 6The corresponding steps in the spatial data management method are shown.

[0273] like Figure 12 As shown, the computing device cluster 800 includes at least one computing device 600. The memory 620 of one or more computing devices 600 in the computing device cluster 800 may store the same memory for executing... Figures 4 to 6 The instructions for the spatial data management method are shown. The computing device 600 can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device 600 can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0274] In some possible implementations, the memory 620 of one or more computing devices 600 in the computing device cluster 800 may also store memory for execution. Figures 4 to 6 The instructions for the spatial data management method are shown. In other words, a combination of one or more computing devices 600 can jointly execute instructions for performing spatial data management. Figures 4 to 6 The instructions for the spatial data management method are shown.

[0275] It should be noted that the memory 620 in different computing devices 600 in the computing device cluster 800 can store different instructions, which are used to execute some functions of the management device 400 respectively. That is, the instructions stored in the memory 620 in different computing devices 600 can realize the functions of one or more modules among the acquisition module 410, communication module 420, determination module 430 and update module 440.

[0276] This application also provides a computing device cluster 900, which can deploy the scheduler 500 shown in the figure. The operation and / or function of each module in the computing device cluster 900 are respectively for implementing... Figure 7 The corresponding steps in the spatial data management method are shown.

[0277] like Figure 13 As shown, the computing device cluster 900 includes at least one computing device 700. The memory 720 of one or more computing devices 700 in the computing device cluster 900 may store the same memory for executing... Figure 7 The instructions for the spatial data management method are shown. The computing device 700 can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device 700 can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0278] In some possible implementations, the memory 720 of one or more computing devices 700 in the computing device cluster 900 may also store memory for execution. Figure 7 The instructions for the spatial data management method are shown. In other words, a combination of one or more computing devices 700 can jointly execute instructions for performing spatial data management. Figure 7 The instructions for the spatial data management method are shown.

[0279] It should be noted that the memory 720 in different computing devices 700 in the computing device cluster 900 can store different instructions, which are used to execute some functions of the scheduler 500 respectively. That is, the instructions stored in the memory 720 in different computing devices 700 can realize the functions of one or more modules of the determination module 510, wake-up module 520, and migration module 530.

[0280] In some possible implementations, one or more computing devices 600 in the computing device cluster 800 can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 14 A schematic diagram of another computing device cluster provided in this application, such as Figure 14 As shown, two computing devices 600A and 600B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 620 in computing device 600A stores instructions for the functions of the acquisition module 410, communication module 420, determination module 430, and update module 440. Simultaneously, the memory 620 in computing device 600B also stores instructions for executing the functions of the acquisition module 410, communication module 420, determination module 430, and update module 440.

[0281] Figure 13 The connection method between the computing device clusters shown can take into account high-concurrency computing scenarios. For example, if computing device 600A receives a large number of operation requests at the same time, computing device 600A can hand over some of the operation requests to computing device 600B for analysis, thereby improving the overall parallel processing capability of the system.

[0282] It should be understood that Figure 14 The functions of computing device 600A shown can also be performed by multiple computing devices 600. Similarly, the functions of computing device 600B can also be performed by multiple computing devices 600.

[0283] This application also provides a computer program product containing instructions, which may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform... Figures 4 to 6 The spatial data management method or execution shown Figure 7 The spatial data management method shown.

[0284] This application also provides a computer storage medium, which can be any available medium capable of being stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., high-density digital video disc (DVD), or a semiconductor medium (e.g., solid-state drive), etc. The computer storage medium includes instructions that instruct the computing device to execute... Figures 4 to 6 The spatial data management method or execution shown Figure 7 The spatial data management method shown.

[0285] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0286] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium, or a semiconductor medium, etc.

[0287] The above description is merely a specific embodiment of this application. Any variations or substitutions conceived by those skilled in the art based on the specific embodiments provided in this application should be covered within the protection scope of this application.

Claims

1. A spatial data management method, characterized in that, The method is applied to a first management process, which runs on infrastructure that stores data of an overall space, including a first grid space and a second grid space. The first management process manages data in the first grid space and is communicatively connected to a first server. The method includes: Obtain the operation request of the first user, the operation request including location information, the location information being used to indicate the location of the first user in the first grid space; Forward the operation request to the first server; Obtain the location update value sent by the first server, wherein the location update value is calculated by the first server based on the location information; Based on the location update value, a target cell space is determined, wherein the target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space; Update the data in the target cell space.

2. The method according to claim 1, characterized in that, A second management process also runs on the infrastructure. This second management process manages the data in the second grid space. When the target cell space is a cell space of the second grid space, after updating the data in the target cell space, the method further includes: A connection update message is sent to the client to which the first user belongs. The connection update message is used to instruct the client to which the first user belongs to establish a communication connection with the second management process.

3. The method according to claim 1, characterized in that, The second grid space is in an inactive state. A second management process and a scheduler also run on the infrastructure. The second management process is in an idle state. The scheduler is communicatively connected to the first management process. When the target cell space is a cell space of the second grid space, after updating the data of the target cell space, the method further includes: An activation request is sent to the scheduler, wherein the activation request carries the identifier of the second grid space. The activation request is used to instruct the scheduler to wake up the second management process so that the second management process can manage the spatial data in the second grid space. The second management process is communicatively connected to the scheduler.

4. The method according to any one of claims 1 to 3, characterized in that, The operation request further includes movement information, which indicates a change in the position of the first user within the overall space. The method includes: Obtain the location update value sent by the first server, wherein the location update value is calculated by the first server based on the location information and the movement information.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Obtain a data query instruction input by a second user, wherein the data query instruction includes a query range; According to the data query instruction, the query unit space is determined, and the query unit space is the unit space in the overall space that overlaps with the query range; Identify user data within the query range that falls within the query unit space; The user data within the query range in the unit space to be queried is sent to the client to which the second user belongs.

6. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Determine the query unit space corresponding to each user located in the first grid space, wherein the query unit space corresponding to each user is the unit space in the overall space that overlaps with the query range of each user; Determine the query results for each user, wherein the query results for each user are user data within the query range of each user in the query unit space corresponding to each user; The query results for each user are sent to the client to which each user belongs.

7. The method according to any one of claims 1 to 6, characterized in that, The overall space can be any one of two-dimensional space, non-spherical three-dimensional space, and spherical space.

8. A spatial data management method, characterized in that, The method is applied to a scheduler that runs on infrastructure that stores data for an overall space, the overall space including a first grid space and a second grid space. A first management process manages the data in the first grid space. The method includes: The side length of the first grid space or the second grid space is determined based on the computing power of the first management process and the data density of the overall space. The side length of the target cell space is determined based on the data density and query radius of the overall space, wherein the target cell space is either a cell space of the first grid space or a cell space of the second grid space adjacent to the first grid space.

9. The method according to claim 8, characterized in that, The scheduler is used to schedule the second management process, the second management process being in an idle state. The method further includes: When the number of users in the first grid space exceeds a preset threshold, the second management process is activated. Migrate all or part of the data in the first grid space to the second management process; The users managed by the first management process are scheduled to be transferred to the second management process.

10. The method according to claim 9, characterized in that, After transferring users managed by the first management process to the second management process, the method further includes: When the number of users in the first grid space is less than or equal to the preset threshold, all data in the first grid space is migrated to the first management process and all users managed by the second management process are scheduled to the first management process; or, all data in the first grid space is migrated to the second management process and all users managed by the first management process are scheduled to the second management process.

11. A spatial data management method, characterized in that, The method is applied to a spatial data management system, which includes a first client, a first management process, and a first server. The first management process runs on an infrastructure that stores data about the entire space, including a first grid space and a second grid space. The first management process manages the data in the first grid space. The first client communicates with the first management process, and the first management process communicates with the first server. The method includes: The first client sends an operation request to the first management process. The operation request includes location information, which is used to indicate the location of the first user in the first grid space. The first management process forwards the operation request to the first server; The first server calculates a location update value based on the location information, and the location update value is calculated by the first server based on the location information. The first management process receives the location update value sent by the first server; The first management process determines the target cell space based on the location update value. The target cell space is either the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space. The first management process updates the data in the target cell space.

12. The method according to claim 11, characterized in that, The spatial data management system further includes a scheduler, and the method further includes: The scheduler determines the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space. The scheduler determines the side length of the target cell space based on the data density and query radius of the overall space, wherein the target cell space is a cell space of the first grid space or a cell space of a second grid space adjacent to the first grid space.

13. A management device, characterized in that, The management device operates on an infrastructure that stores data for an overall space, the overall space including a first grid space and a second grid space. The management device manages the data in the first grid space and is communicatively connected to a first server. The management device includes: The acquisition module is used to acquire user operation requests, the operation requests including location information, the location information being used to indicate the user's location in the first grid space; A communication module is used to forward the operation request to the server; The acquisition module is further configured to acquire the location update value sent by the server, wherein the location update value is calculated by the server based on the location information; The determination module is used to determine the target cell space based on the position update value, wherein the target cell space is the cell space of the first grid space or the cell space of the second grid space adjacent to the first grid space; The update module is used to update the data in the target cell space.

14. A scheduler, characterized in that, The scheduler runs on infrastructure that stores data for an overall space, including a first grid space and a second grid space. The scheduler schedules a first management process, which manages the data in the first grid space. The scheduler includes: The determination module is used to determine the side length of the first grid space or the second grid space based on the computing power of the first management process and the data density of the overall space. The determining module is further configured to determine the side length of the target cell space based on the data density and query radius of the overall space, wherein the target cell space is a cell space of the first grid space or a cell space of a second grid space adjacent to the first grid space.

15. A spatial data management system, comprising a first client, a first management process, a first server, and a scheduler, wherein the first management process runs on an infrastructure that stores data of an entire space, the entire space comprising a first grid space and a second grid space, the first management process managing data of the first grid space, the first client communicating with the first management process, the first management process communicating with the first server, and the scheduler scheduling the first management process, wherein... The first client is configured to send an operation request to the first management process, the operation request including location information, the location information being used to indicate the location of the first user in the first grid space; The first management process is used to forward the operation request to the first server; The first server is used to calculate a location update value based on the location information; The first management process is further configured to receive a location update value sent by the first server; The first management process is further configured to determine a target cell space based on the location update value, wherein the target cell space is a cell space of the first grid space or a cell space of a second grid space adjacent to the first grid space; The first management process is also used to update the data in the target unit space.

16. A computing device, characterized in that, The device includes a memory and a processor, the processor being configured to execute instructions stored in the memory to cause the computing device to perform the method as claimed in any one of claims 1 to 7, or the method as claimed in any one of claims 8 to 10, or the method as claimed in any one of claims 11 to 12.

17. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1 to 7, or the method as described in any one of claims 8 to 10, or the method as described in any one of claims 11 to 12.

18. A computer storage medium, characterized in that, Includes program instructions that, when executed on a computing device cluster, cause the computing device cluster to perform the method as claimed in any one of claims 1 to 7, or the method as claimed in any one of claims 8 to 10, or the method as claimed in any one of claims 11 to 12.

19. A computer program product, characterized in that, Includes program instructions that, when executed on a computing device cluster, cause the computing device cluster to perform the method as claimed in any one of claims 1 to 7, or the method as claimed in any one of claims 8 to 10, or the method as claimed in any one of claims 11 to 12.