WO2021238583A1 - 操作数据对象的方法、装置、计算设备和存储介质 - Google Patents

操作数据对象的方法、装置、计算设备和存储介质 Download PDF

Info

Publication number
WO2021238583A1
WO2021238583A1 PCT/CN2021/091403 CN2021091403W WO2021238583A1 WO 2021238583 A1 WO2021238583 A1 WO 2021238583A1 CN 2021091403 W CN2021091403 W CN 2021091403W WO 2021238583 A1 WO2021238583 A1 WO 2021238583A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data object
target data
target
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2021/091403
Other languages
English (en)
French (fr)
Inventor
沈胜宇
程中武
吴聿旻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to EP21814314.7A priority Critical patent/EP4137958A4/en
Publication of WO2021238583A1 publication Critical patent/WO2021238583A1/zh
Priority to US17/992,150 priority patent/US20230081889A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • This application relates to the field of computer technology, and in particular to a method, device, computing device, and storage medium for operating data objects.
  • the data center includes multiple nodes, and there may be data object sharing among multiple nodes, so the nodes will access each other's data objects.
  • node 1 accesses data object 1 of node 2, node 1 sends an operation request for each part of data object 1 to node 2 through the network each time, so as to implement operations on data object 1.
  • data object 1 is a floating-point list
  • data object 1 [1.2, 20.1, 3.5, 4.6]
  • the operation performed by node 1 is to search for 5.2 in data object 1
  • node 1 sends to node 2 read 1.2
  • node 1 can obtain the search result of search 5.2.
  • node 1 Since node 1 needs to perform multiple remote accesses to operate data object 1, it will cause a relatively high delay in operating data objects across nodes.
  • This application provides a method, device, computing device, and storage medium for operating data objects, so as to reduce the delay of accessing and operating data objects across nodes.
  • the present application provides a device for manipulating a data object, which is applied to a first node of a data center.
  • the data center includes a first node and a second node, and the device includes:
  • the application program is used to call the library interface to specify the target operation to be performed on the target data object; the library interface is used to determine that the storage node corresponding to the target data object is the second node; the communication module is used to send the target data object to the second node Operation request, the operation request is used to instruct the second node to perform the target operation on the target data object.
  • the application in the first node when it needs to perform a certain operation on the target data object (which may be referred to as a target operation in the following), it can call the library interface to specify the target operation to be performed on the target data object.
  • the library interface of the first node receives the call of the application program, the library interface determines the storage node corresponding to the target data object, that is, obtains the second node corresponding to the target data object.
  • the library interface of the first node notifies the communication module of the first node of the identification of the second node, the identification of the target data object, and the identification of the target operation.
  • the communication module can send the operation request of the target data object to the second node.
  • the request includes the identification of the target data object and the identification of the target operation, so that the second node performs the target operation on the target data object.
  • the first node sends an operation request to the second node to perform the target operation on the target data object stored on the second node, without the need for multiple interactions between the first node and the second node, so it can reduce cross-node Access delay.
  • the library interface when the target operation is the creation operation, the library interface is used according to the node affinity, load situation, bandwidth, delay or central processing unit (Central Processing Unit, of each node in the data center). CPU) one or more of the occupancy rate, determining that the storage node corresponding to the target data object is the second node; the library interface is also used to store the correspondence between the target data object and the second node.
  • CPU Central Processing Unit
  • the library interface of the first node may select the node with the least load among the nodes in the data center and determine it as the second node.
  • the library interface of the first node may also be among the nodes in the data center, and a node having node affinity with the first node may be selected and determined as the second node.
  • the library interface of the first node may also select a node with a CPU occupancy rate among the nodes in the data center, and determine it as the second node.
  • the library interface of the first node may also select the node with the smallest transmission delay from the first node among the nodes in the data center, and determine it as the second node.
  • the library interface of the first node may also select the node with the largest transmission bandwidth with the first node among the nodes in the data center, and determine it as the second node.
  • the library interface of the first node can also combine the above-mentioned multiple situations to select the second node. Then the library interface of the first node stores the corresponding relationship between the target data object and the second node, so that a suitable second node can be selected, and subsequently the first node can still access the target data object.
  • the library interface is used to determine that the storage node corresponding to the target data object is the second node in the correspondence between the target data object and the storage node of the target data object. In this way, the storage node corresponding to the target data object can be quickly obtained.
  • the data structure of the target data object is any of a vector, a set, and a queue.
  • the type of the target operation also includes one or more of search, insert, modify, or delete.
  • the present application provides a device for manipulating a data object, which is applied to a second node of a data center.
  • the data center includes a first node and a second node, and the device includes:
  • the communication module is used to receive the operation request of the target data object sent by the first node; the library instance is used to determine the target storage address of the target data object in the second node; according to the target storage address, perform the operation request on the target data object The indicated target operation.
  • the communication module of the second node receives the operation request of the target data object sent by the first node, and the communication module of the second node forwards the operation request to the library instance of the second node.
  • the library instance of the second node determines the target storage address corresponding to the target data object.
  • the library instance of the second node can access the target storage address, and perform the target operation indicated by the operation request on the target data object stored in the target storage address.
  • the first node sends an operation request to the second node to perform the target operation on the target data object stored on the second node, without the need for multiple interactions between the first node and the second node, so it can reduce cross-node Access delay.
  • the library instance of the second node is used to store the target data object to the target storage address, and the library instance is also used to: store the target data object and the target storage address And store the corresponding relationship between the target data object and the second node. In this way, it is convenient for the second node to find the target data object.
  • the library instance is used to determine the target storage address of the target data object in the second node based on the correspondence between the target data object and the storage address of the target data object. In this way, the second node can quickly find the storage address of the target data object.
  • the library instance of the second node is used to: access the target storage address, delete the target data object; delete the target data object and the storage address of the target data object Correspondence; delete the correspondence between the target data object and the storage node of the target data object. In this way, storage resources can be saved.
  • the communication module of the second node is also used to: before deleting the corresponding relationship between the target data object and the storage node of the target data object, send to nodes other than the second node in the data center
  • the delete message is used to instruct the node receiving the delete message to delete the correspondence between the target data object and the storage node of the target data object.
  • the communication module is also used to receive the migration request of the target data object, the migration request carries the identifier of the storage node after the migration of the target data object; the library instance is also used to lock the target data object; communication The module is also used to send a copy request of the target data object to the migrated storage node.
  • the copy request is used to instruct the migrated storage node to store the corresponding relationship between the target data object and the migrated storage node, and to store the target data object Correspondence with the storage address of the target data object in the migrated storage node; receiving the copy completion message sent by the migrated storage node; the library instance is also used to unlock and delete the target data object.
  • the communication module of the second node receives the migration request of the target data object, and sends the migration request to the library instance of the second node.
  • the library instance of the second node parses the migration request to obtain the identification of the target data object, and then locks the target data object.
  • the communication module of the second node sends the copy request to the communication module of the migrated storage node.
  • the migrated storage node can determine the storage address of the storage target data object in the local storage space (ie, memory).
  • the migrated storage node can store the correspondence between the target data object and the storage address, and store the correspondence between the target data object and the migrated storage node. In this way, the storage address of the target data object is stored in the migrated storage node to facilitate the search for the target data object.
  • the communication module is also used to: before unlocking and deleting the target data object, send a change message of the storage node of the target data object to other nodes, and the change message is used to indicate the node that received the change message Replace the storage node corresponding to the target data object with the migrated storage node, and other nodes are nodes in the data center except the migrated storage node and the second node; receive the change completion message sent by other nodes. In this way, other nodes can access the migrated storage node when operating the target data object, reducing invalid access.
  • the communication module is also used to determine the storage node corresponding to each sub-data object in the target data object; the first sub-data object in the target data object When the corresponding storage node is the third node, send the operation request of the first child data object to the third node, and the operation request of the first child data object is used to instruct the third node to execute the operation request instruction of the first child data object
  • the library instance is also used to determine the storage address of the second sub-data object in the second node in the target data object when the storage node corresponding to the second sub-data object in the target data object is the second node ; According to the storage address of the second sub-data object in the second node, perform the target operation indicated by the operation request on the second sub-data object.
  • the corresponding relationship between the target data object and the storage node of the target data object stores the storage node corresponding to each sub-data object of the target data object.
  • the communication module of the second node searches for the storage node corresponding to each sub-data object in the target data object in this correspondence.
  • the communication module of the second node may send the operation request of the first sub-data object to the communication module of the third node,
  • the operation request includes the identifier of the first sub-data object.
  • the communication module of the third node may send the operation request of the first sub-data object to the library instance of the third node.
  • the library instance of the third node determines the storage address corresponding to the first sub-data object. Then the library instance of the third node accesses the storage address and executes the target operation indicated by the operation request of the first sub-data object on the first sub-data object.
  • the communication module of the second node may send the second node of the target data object to the library instance of the second node. Operation request of child data object.
  • the library instance of the second node can determine the storage address corresponding to the second sub-data object of the target data object, that is, obtain the storage address of the second sub-data object in the second node.
  • the library instance of the second node can access the storage address of the second sub-data object in the second node, and perform the operation indicated by the operation request on the second sub-data object. In this way, when the target data object is a nested data object, an operation request can also be sent to realize the operation on the target data object and reduce the operation delay.
  • the data structure of the target data object is any of a vector, a set, and a queue.
  • the present application provides a method for operating a data object, which is applied to a data center.
  • the data center includes a first node and a second node.
  • the method includes: the first node determines to perform a target operation on the target data object; first The node determines that the storage node corresponding to the target data object is the second node; the first node sends an operation request of the target data object to the second node, and the operation request is used to instruct the second node to perform the target operation on the target data object.
  • the first node sends an operation request to the second node to perform the target operation on the target data object stored on the second node, without the need for multiple interactions between the first node and the second node, so it can reduce cross-node Access delay.
  • the first node determines that the storage node corresponding to the target data object is the second node, which includes: the first node according to the node affinity of each node in the data center, The storage node corresponding to the target data object is determined to be the second node based on one or more of load conditions, bandwidth, delay, or CPU occupancy rate of the central processing unit; the method further includes: the first node stores the target data object and the second node Correspondence of nodes. In this way, a suitable second node can be selected, and subsequently the first node can still access the target data object.
  • the first node determines that the storage node corresponding to the target data object is the second node, including: the first node determines the target data object in the correspondence relationship between the target data object and the storage node of the target data object The corresponding storage node is the second node. In this way, the storage node corresponding to the target data object can be quickly obtained.
  • the data structure of the target data object is any of a vector, a set, and a queue.
  • the type of the target operation also includes one or more of search, insert, modify, or delete.
  • the present application provides a method for operating a data object, which is applied to a data center.
  • the data center includes a first node and a second node.
  • the method includes: the second node receives the operation of the target data object sent by the first node Request; the second node determines the target storage address of the target data object in the second node; the second node performs the target operation indicated by the operation request on the target data object according to the target storage address.
  • the first node sends an operation request to the second node to perform the target operation on the target data object stored on the second node, without the need for multiple interactions between the first node and the second node, so it can reduce the crossover Node access delay.
  • the second node when the target operation is a create operation, performs the target operation indicated by the operation request on the target data object according to the target storage address, including storing the target data object in the target storage address;
  • the method further includes: the second node stores the corresponding relationship between the target data object and the target storage address, and stores the corresponding relationship between the target data object and the second node. In this way, it is convenient for the second node to find the target data object.
  • the second node determining the target storage address of the target data object in the second node includes: the second node determines the corresponding relationship between the target data object and the storage address of the target data object, and determining the target data object The target storage address in the second node. In this way, the second node can quickly find the storage address of the target data object.
  • performing the operation indicated by the operation request on the target data object according to the target storage address includes: the second node accesses the target storage address and deletes the target data object; The second node deletes the correspondence between the target data object and the storage address of the target data object; the second node deletes the correspondence between the target data object and the storage node of the target data object. In this way, storage resources can be saved.
  • the method before deleting the correspondence between the target data object and the storage node of the target data object, the method further includes: the second node sends a delete message to nodes other than the second node in the data center, The delete message is used to instruct the node receiving the delete message to delete the correspondence between the target data object and the storage node of the target data object.
  • the second node sends a delete message to nodes other than the second node in the data center, The delete message is used to instruct the node receiving the delete message to delete the correspondence between the target data object and the storage node of the target data object.
  • the method further includes: the second node receives a migration request of the target data object, the migration request carries the identifier of the storage node after the migration of the target data object; the second node locks the target data object; second The node sends a copy request of the target data object to the migrated storage node.
  • the copy request is used to instruct the migrated storage node to store the corresponding relationship between the target data object and the migrated storage node, and store the target data object and the target data object in migration The corresponding relationship of the storage address in the subsequent storage node; the second node receives the copy complete message sent by the migrated storage node, unlocks and deletes the target data object.
  • the storage address of the target data object is stored in the migrated storage node to facilitate the search for the target data object.
  • the second node before unlocking and deleting the target data object, it further includes: the second node sends a change message of the storage node of the target data object to other nodes, and the change message is used to instruct the node that received the change message to change the target
  • the storage node corresponding to the data object is replaced with the migrated storage node, and the other nodes are nodes in the data center except the migrated storage node and the second node; the second node receives the change completion message sent by other nodes. In this way, other nodes can access the migrated storage node when operating the target data object, reducing invalid access.
  • the method further includes: the second node determines the storage node corresponding to each child data object in the target data object; and the first child data object in the target data object
  • the second node sends the operation request of the first child data object to the third node, and the operation request of the first child data object is used to instruct the third node to execute the first child data
  • the target operation indicated by the operation request of the object when the storage node corresponding to the second sub-data object in the target data object is the second node, the second node determines where the second sub-data object in the target data object is in the second node Storage address; the second node performs the target operation indicated by the operation request on the second sub-data object according to the storage address of the second sub-data object in the second node.
  • a computing device for operating data objects includes a processor and a memory.
  • the memory stores computer instructions, and the processor executes the computer instructions to implement the third aspect and its possible implementations. method.
  • a computing device for operating data objects includes a processor and a memory.
  • the memory stores computer instructions, and the processor executes the computer instructions to implement the fourth aspect and its possible implementations. method.
  • a computer-readable storage medium stores computer instructions.
  • the computing device executes the third aspect and its possibilities.
  • the computing device implements the functions of the above-mentioned first aspect and its possible implementation manners.
  • a computer-readable storage medium stores computer instructions.
  • the computing device executes the fourth aspect and its possibilities.
  • the computing device can realize the functions of the above-mentioned second aspect and its possible implementation manners.
  • a computer program product containing instructions which when running on a computing device, causes the computing device to execute the third aspect and its possible implementation methods, or causes the computing device to implement the first aspect.
  • a computer program product containing instructions which when running on a computing device, causes the computing device to execute the above-mentioned fourth aspect and its possible implementation methods, or causes the computing device to implement the above-mentioned second aspect The function of the device and its possible implementations.
  • a system for operating a data object includes a first node and a second node.
  • the device for manipulating data objects as described in the aspect includes a first node and a second node.
  • FIG. 1 is a system architecture diagram of operating data objects provided by an exemplary embodiment of the present application
  • FIG. 2 is a schematic structural diagram of a node in a data center provided by an exemplary embodiment of the present application
  • FIG. 3 is a schematic structural diagram of a node in a data center provided by an exemplary embodiment of the present application
  • FIG. 4 is a schematic flowchart of a method for operating a data object provided by an exemplary embodiment of the present application
  • FIG. 5 is a schematic flowchart of a method for operating a data object provided by an exemplary embodiment of the present application
  • FIG. 6 is a schematic diagram of a path of operating a data object provided by an exemplary embodiment of the present application.
  • FIG. 7 is a schematic flowchart of a method for creating a data object provided by an exemplary embodiment of the present application.
  • Fig. 8 is a schematic diagram of a path for creating a data object provided by an exemplary embodiment of the present application.
  • FIG. 9 is a system architecture diagram of operating data objects provided by an exemplary embodiment of the present application.
  • FIG. 10 is a schematic flowchart of a method for migrating data objects provided by an exemplary embodiment of the present application.
  • FIG. 11 is a schematic diagram of a path for migrating data objects provided by an exemplary embodiment of the present application.
  • FIG. 12 is a schematic flowchart of a method for operating a data object provided by an exemplary embodiment of the present application.
  • FIG. 13 is a schematic diagram of a path of operating a data object provided by an exemplary embodiment of the present application.
  • Fig. 14 is a schematic structural diagram of a computing device provided by an exemplary embodiment of the present application.
  • the data center includes multiple nodes (multiple nodes include the first node and the second node described later, the first node and the second node are different nodes), each node can be a computing Devices, applications are deployed on each node. A wired or wireless communication connection is established between each node.
  • Each node included in the data center can also be a virtual machine.
  • the nodes in the data center can also be logically composed of multiple parts.
  • the nodes in the data center can include application programs 210, library interfaces 220, communication modules 230, library instances 240, etc.
  • the application program 210 can be any application program.
  • the library interface 220 includes various interface functions. The library interface 220 is used to determine the node where the data object is stored, the communication module 230 is used to communicate with other nodes, and the library instance 240 is used to execute operation data. Disposal of the object.
  • the nodes in the data center may also include a cache memory (cache) 250, etc., and the cache is used to cache data and the like.
  • cache cache memory
  • the first node provided by the embodiment of the present application can implement the process shown in FIG. 4 below.
  • the application program 210 is used to call the library interface 220 to specify the target operation to be performed on the target data object;
  • the library interface 220 is used to determine that the storage node corresponding to the target data object is the second node;
  • the communication module 230 is configured to send an operation request of the target data object to the second node, and the operation request is used to instruct the second node to perform the target operation on the target data object.
  • the library interface 220 is used to determine the node affinity, load condition, bandwidth, delay, or CPU usage of each node in the data center. One or more of, determining that the storage node corresponding to the target data object is the second node;
  • the library interface 220 is also used to store the corresponding relationship between the target data object and the second node.
  • the library interface 220 is used to determine the storage node corresponding to the target data object as the second node in the corresponding relationship between the stored target data object and the storage node of the target data object.
  • the data structure of the target data object is any of a vector, a set, and a queue.
  • the type of the target operation also includes one or more of search, insert, modify, or delete.
  • the second node provided by the embodiment of the present application can implement the process shown in FIG. 5 below, and the communication module 230 is configured to receive the operation request of the target data object sent by the first node;
  • the library instance 240 is used to determine the target storage address of the target data object in the second node; according to the target storage address, perform the target operation indicated by the operation request on the target data object. .
  • the library instance 240 is used to store the target data object to the target storage address;
  • the library instance 240 is also used to store the correspondence between the target data object and the target storage address, and store the correspondence between the target data object and the second node.
  • the type of operation request is delete; the library instance 240 is used to determine the stored correspondence between the target data object and the storage address of the target data object to determine that the target data object is in the second The target storage address in the node.
  • the library instance 240 is used to: access the target storage address and delete the target data object; delete the correspondence between the target data object and the storage address of the target data object; Delete the correspondence between the target data object and the storage node of the target data object.
  • the communication module 230 is further configured to: before deleting the correspondence between the target data object and the storage node of the target data object, send a delete message to nodes other than the second node in the data center, The delete message is used to instruct the node receiving the delete message to delete the correspondence between the target data object and the storage node of the target data object.
  • the communication module 230 is also used to receive the migration request of the target data object, the migration request carries the identifier of the storage node after the migration of the target data object; the library instance 240 is also used to lock the target data object
  • the communication module 230 is also used to send a copy request of the target data object to the migrated storage node, the copy request is used to instruct the migrated storage node to store the corresponding relationship between the target data object and the migrated storage node, and to store the target data The corresponding relationship between the storage address of the object and the target data object in the migrated storage node; receiving the copy completion message sent by the migrated storage node; the library instance 240 is also used to unlock and delete the target data object.
  • the communication module 230 is further configured to: before unlocking and deleting the target data object, send a change message of the storage node of the target data object to other nodes, and the change message is used to indicate that the change message is received.
  • the node replaces the storage node corresponding to the target data object with the migrated storage node, and the other nodes are nodes in the data center except the migrated storage node and the second node; receiving the change completion message sent by other nodes.
  • the communication module 230 is also used to determine the storage node corresponding to each sub-data object in the target data object; in the target data object, the first sub-data object
  • the storage node corresponding to the object is the third node
  • the operation request of the first child data object is used to instruct the third node to execute the operation request of the first child data object
  • the indicated target operation; the library instance 240 is also used to determine the second node of the second sub-data object in the target data object when the storage node corresponding to the second sub-data object in the target data object is the second node Storage address; according to the storage address of the second sub-data object in the second node, perform the target operation indicated by the operation request on the second sub-data object.
  • the data structure of the target data object is any of a vector, a set, and a queue.
  • each functional module may be integrated in a processor, or may exist alone physically, or two or more modules may be integrated into one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software function modules.
  • the method of operating a data object can be executed by a node in the data center.
  • the node can be a hardware device, such as a computing device such as a server and a terminal, or a software device, such as a set of software running on a hardware device. program.
  • Step 401 The first node determines to perform a target operation on the target data object.
  • the target data object is any data object.
  • the data structure of the target data object is any of vector, set, and queue.
  • the application in the first node when it wants to perform a certain operation on the target data object (which may be referred to as a target operation later), it can call the library interface to specify that the target operation is performed on the target data object.
  • Step 402 The first node determines that the storage node corresponding to the target data object is the second node.
  • the first node when the target operation is not a creation operation, stores the corresponding relationship between the target data object and the storage node of the target data object.
  • the corresponding relationship can be stored in a table format during storage. It can be stored in other formats, which is not limited in the embodiment of the present application.
  • the library interface of the first node receives the call of the application program, the library interface can obtain the corresponding relationship between the target data object stored by the first node and the storage node of the target data object.
  • the library interface searches for the storage node corresponding to the target data object in the corresponding relationship, that is, obtains the second node corresponding to the target data object.
  • the library interface of the first node determines that the storage node corresponding to the target data object is the first node.
  • the identification of the node, the identification of the target data object, and the target operation are notified to the communication module of the first node.
  • the communication module of the first node may send an operation request of the target data object to the library instance of the first node.
  • the library instance of the first node executes the target operation on the target data object (this process is the same as the process of executing the target operation on the target data object by the library instance of the second node, which will be described later and will not be repeated here).
  • Step 403 The first node sends an operation request of the target data object to the second node, where the operation request is used to instruct the second node to perform the target operation indicated by the operation request.
  • the library interface of the first node notifies the communication module of the first node of the identification of the second node, the identification of the target data object, and the identification of the target operation, and the communication module can send the target data object to the second node
  • the operation request includes the identification of the target data object and the identification of the target operation.
  • the first node may also receive the execution result returned by the second node.
  • the specific second node performs the target operation on the target data, it sends the execution result to the first node through the communication module of the second node.
  • the communication module of the first node receives the execution result sent by the communication module of the second node, and the communication module of the first node returns the execution result to the library interface of the first node.
  • the library interface of the first node returns the execution result to the application program of the first node.
  • the type of the target operation includes one or more of create, search, insert, modify, or delete.
  • the first node can operate on the target data object stored on the second node by sending an operation request, thereby reducing the delay in accessing the data object across nodes.
  • the method for operating a data object provided by an embodiment of the present application will be described below with reference to FIG. 5.
  • the method may be executed by the second node. As shown in Figure 5, the processing flow of this method is as follows:
  • Step 501 The second node receives the operation request of the target data object sent by the first node.
  • the communication module of the second node receives the operation request of the target data object sent by the first node, and the communication module of the second node forwards the operation request to the library instance of the second node.
  • the communication module of the second node can also determine whether the target data object is a nested object.
  • the target data object is not a nested object, it can The process of steps 502 to 504 is performed.
  • the process of execution is described later.
  • it can be determined based on the corresponding relationship between the target data object and the storage node corresponding to the target data object whether the multiple sub-objects included in the target data object are all stored in the second node, if they are all stored in the second node, then It is not a nested data object. If not all are stored in the second node, the target data object is a nested data object.
  • Step 502 The second node determines the target storage address of the target data object in the second node.
  • the second node when the target operation indicated by the operation request is not a create operation, stores the correspondence relationship between the target data object and the storage address of the target data object.
  • the correspondence relationship may be stored as The format of the table is stored, and it can also be stored in other formats, which is not limited in the embodiment of the present application.
  • the library instance of the second node obtains the corresponding relationship between the target data object stored in the second node and the storage address of the target data object, and the library instance obtains the target storage address corresponding to the target data object in the corresponding relationship.
  • Step 503 The second node performs the operation indicated by the operation request on the target data object according to the target storage address.
  • the library instance of the second node can access the target storage address, and perform the target operation indicated by the operation request on the target data object stored in the target storage address. For example, when the target operation indicated by the operation request is a modification operation, the library instance modifies the target data object, and the execution result obtained is a notification that the modification is completed.
  • the second node may also return the execution result to the first node.
  • the library instance of the second node obtains the execution result after executing the target operation, and the communication module of the second node sends the execution result to the communication module of the first node.
  • the operation performed on the target data object is performed by the node storing the target data object, and the node requesting the operation of the target data object needs to call the library interface once and only perform a cross-network access, so the delay of cross-node access to the data object can be reduced. Time.
  • the data structure of the target data object may be any of a vector, a set, a queue, and so on.
  • step 503 when the type of the target operation is delete, the processing of step 503 may be:
  • the second node accesses the target storage address and deletes the target data object; the second node deletes the correspondence between the target data object and the storage address of the target data object; the second node deletes the correspondence between the target data object and the storage node of the target data object.
  • the library instance of the second node determines that the type of the target operation is delete, it can access the target storage address of the target data object stored locally to delete the target data object.
  • the library instance of the second node is in the second node, and the correspondence between the target data object and the storage address of the target data object is deleted.
  • the library instance of the second node deletes the correspondence between the target data object and the storage node of the target data object in the second node.
  • the library instance of the second node before deleting the corresponding relationship between the target data object and the storage node of the target data object, the library instance of the second node further performs the following processing:
  • the second node sends a delete message to nodes other than the second node in the data center.
  • the delete message is used to instruct the node receiving the delete message to delete the correspondence between the target data object and the storage node of the target data object.
  • the library instance of the second node can determine the nodes in the data center other than the second node and the node (these nodes are the nodes in the data center that may access the target data object), and then combine the identifiers of these nodes with The delete message is notified to the communication module of the second node.
  • the communication module of the second node may send a delete message to the nodes indicated by the identities of these nodes.
  • the node that receives the delete message can delete the correspondence between the target data object and the storage node corresponding to the target data object. In this way, when the node in the subsequent data searches for the target data object, it will no longer search on the second node, reducing invalid access.
  • the embodiment of the present application also provides a message transmission path between the first node and the second node, as shown in the double arrow curve in FIG.
  • the embodiment of the present application also provides a process for creating the target data object at the second node, as shown in Fig. 7:
  • Step 701 The first node determines to perform a creation operation on the target data object.
  • the application program of the first node needs to create the target data object, and the application program can call the library interface and specify the library interface to create the target data object.
  • Step 702 The first node determines that the storage node corresponding to the target data object is the second node according to one or more of the node affinity, load condition, bandwidth, delay, or CPU occupancy rate of each node in the data center. The corresponding relationship between the target data object and the second node is stored.
  • the node affinity of the node can be reflected by the data transmission distance between the node and other nodes. For example, if the transmission distance between the node and node 1 exceeds a certain value, the node does not have node affinity with node 1, and if the transmission distance between the node and node 1 exceeds a certain value, the node and node 1 Has node affinity.
  • the load situation can be reflected by the memory occupancy rate.
  • the library interface of the first node can also generate a pointer (that is, the identification of the target data object) for the target data object, and then the library interface determines the storage node corresponding to the target data object. If the storage node is the second Node, the library interface of the first node stores the correspondence between the target data object and the second node. The library interface of the first node sends the identifier of the second node and the content of the target data object to the communication module of the first node. Specifically, the process of determining the storage node corresponding to the target data object at the first node is: the first node may select the node with the least load among the nodes in the data center, and determine it as the second node.
  • a pointer that is, the identification of the target data object
  • the first node may also select a node that has node affinity with the first node among nodes in the data center, and determine it as the second node.
  • the first node may also select a node with a CPU occupancy rate among the nodes in the data center, and determine it as the second node.
  • the first node may also select the node with the smallest transmission delay from the first node among the nodes in the data center, and determine it as the second node.
  • the first node may also select the node with the largest transmission bandwidth with the first node among the nodes in the data center, and determine it as the second node.
  • the first node can also combine the above-mentioned multiple situations to select the second node. For example, among the nodes in the data center, the first node selects the node that has node affinity with the first node, and then selects the node with the least load among these nodes as the second node.
  • the library interface of the first node stores the correspondence between the target data object and the first node.
  • the library interface of the first node sends the identification of the first node and the content of the target data object to the communication module of the first node.
  • the communication module of the first node sends the operation request to the library instance of the first node.
  • the library instance of the first node creates the target data object and returns the execution result to the communication module of the first node, and the communication module of the first node returns the execution result to the library interface of the first node.
  • the library interface of the first node returns the execution result to the application program of the first node.
  • Step 703 The first node sends a creation request of the target data object to the second node, where the creation request is used to instruct the second node to store the target data object.
  • the communication module of the first node receives the identifier of the second node and the content of the target data object.
  • the communication module of the first node sends a creation request of the target data object to the communication module of the second node.
  • the creation request includes the identification of the target data object and the content of the target data object.
  • Step 704 The second node receives the target data object creation request sent by the first node.
  • the communication module of the second node receives the creation request of the target data object sent by the communication module of the first node.
  • the communication module of the second node sends the creation request to the library instance of the second node.
  • Step 705 The second node determines the target storage address of the target data object.
  • the local storage space of the library instance of the second node determines the local target storage address of the target data object.
  • Step 706 The second node stores the target data object in the target storage address, stores the correspondence between the target data object and the target storage address, and stores the correspondence between the target data object and the second node.
  • the library instance of the second node stores the target data object to the target storage address
  • the library instance of the second node stores the correspondence between the target data object and the target storage address
  • the library instance of the second node stores the target data The correspondence between the object and the second node.
  • the second node may send the creation result to the sending first node.
  • the communication module of the second node may send the creation result to the communication module of the first node. If the creation is successful, the creation result is the result of the successful creation, and if the creation fails, the creation result is the result of the creation failure.
  • the communication module of the first node receives the creation result sent by the communication module of the second node.
  • the communication module of the first node returns the creation result to the library interface of the first node, and the library interface of the first node returns the creation result to the application of the first node.
  • the application of the first node can obtain the target data object's Create results. In this way, data objects can be created across nodes.
  • the second node may send the storage node corresponding to the target data object to other nodes in the data center except the first node and the second node announcement of.
  • the node that receives the notification can store the corresponding relationship between the target data object and the second node, facilitating subsequent access to the target data object.
  • the embodiment of the present application also provides a message transmission path between the first node and the second node, as shown in the double arrow curve in FIG.
  • the operation request of the target data object when the type of the target operation is modification, the operation request of the target data object also indicates the content to be modified.
  • the type of the target operation is insert, the operation request of the target data object also indicates the content to be inserted.
  • the type of the target operation is search, the operation request of the target data object also indicates the content to be searched.
  • the data center also includes a management node.
  • the management node can be a node in the data center for performing calculations, or it can be a node for performing calculations. Outside the node.
  • the management node is used to manage the migration processing of data objects on each node in the data center. As shown in Figure 10, the process of migration processing can be as follows:
  • Step 1001 The second node receives the migration request of the target data object, and the migration request carries the storage node after the migration of the target data object.
  • the management node determines that the load on the second node is relatively large based on the load of each node in the data center, and the management node determines to migrate the target data object on the second node to the node with less current load (that is, the target The storage node after the data object is migrated), or the management node determines that the communication distance between all nodes accessing the target data object and the second node is relatively long, and the management node determines that the target data object is migrated to the node that accesses the target data object at a relatively close distance The node (that is, the storage node after the target data object is migrated).
  • the management node receives a migration instruction message of the target data object through an interface provided for the user, where the migration instruction message is used to instruct the migration of the target data object to the migrated storage node.
  • the management node may send a migration request of the target data object to the second node, and the migration request carries the identifier of the storage node after the migration of the target data object.
  • the communication module of the second node may receive the migration request of the target data object sent by the management node.
  • the communication module of the second node may send the migration request to the library instance of the second node.
  • Step 1002 The second node locks the target data object.
  • the library instance of the second node receives the migration request, parses the migration request to obtain the identifier of the target data object, and then locks the target data object.
  • "locking the target data object” means that no access processing can be performed on the target data object before the target data object is unlocked.
  • the library instance of the second node sends a copy request and the content of the migrated storage node to the communication module of the second node, and the copy request includes the content of the target data object.
  • Step 1003 The second node sends a copy request of the target data object to the migrated storage node.
  • the copy request is used to instruct the migrated storage node to store the corresponding relationship between the target data object and the migrated storage node, and store the target data object and Correspondence of the storage address of the target data object in the migrated storage node.
  • the communication module of the second node receives the copy request and the identifier of the migrated storage node.
  • the communication module of the second node sends the copy request to the communication module of the migrated storage node.
  • the migrated storage node After the migrated storage node receives the copy request, it can parse the copy request to obtain the content of the target data object.
  • the migrated storage node can determine the storage address of the storage target data object in the local storage space (ie, memory). Then the migrated storage node stores the correspondence between the target data object and the storage address, and stores the correspondence between the target data object and the migrated storage node.
  • the library instance of the migrated storage node may send a copy completion message to the communication module of the migrated storage node, and the copy completion message includes the identifier of the target data object.
  • Step 1004 The second node receives the copy completion message sent by the migrated storage node, unlocks and deletes the target data object.
  • the communication module of the migrated storage node sends a copy complete message to the second node, and after receiving the copy complete message sent by the migrated storage node, the communication module of the second node may send the copy complete message The library instance to the second node.
  • the library instance of the second node can unlock the target data object, and then delete the target data object at the target storage address of the target data object.
  • the library instance of the second node may send a migration completion message to the communication module of the second node.
  • the second node sends a migration complete message to the node that sent the migration request.
  • the communication module of the second node sends a migration completion message to the management node.
  • the management node can determine that the migration of the target data object is completed.
  • step 1004 in order to ensure that other nodes can correctly access the target data object, before step 1004, the following processing can also be performed:
  • the second node sends a change message of the storage node of the target data object to other nodes.
  • the change message is used to instruct the node receiving the change message to replace the storage node corresponding to the target data object with the migrated storage node, and the other nodes are in the data center.
  • the library instance of the second node can determine other nodes in the data center except the second node and the migrated storage node.
  • the library instance of the second node sends a change message and the identification of other nodes to the communication module of the second node, and the change message includes the identification of the target data object and the migrated storage node.
  • the communication module of the second node sends a change message to other nodes indicated by the identifiers of other nodes. After receiving the change message, the communication modules of other nodes can change the corresponding relationship between the target data object stored by itself and the second node through its own library instance, and the second node corresponding to the target data object can be changed to the migrated storage node.
  • the library instances of other nodes send a change completion message to the communication modules of other nodes.
  • the communication modules of other nodes send a change completion message to the second node.
  • the communication module of the second node can unlock the target data object and delete the target data object. In this way, when other nodes subsequently access the target data object, they can access the target data object in the migrated storage node instead of accessing the target data object in the second node.
  • the embodiment of the present application also provides a message transmission path between the second node and the migrated storage node and the first node, as shown in the double arrow curve in FIG.
  • the target data object may be a nested data object.
  • the nested data object refers to a data object that includes multiple sub-data objects and is not stored in one storage node.
  • the processing flow of the target operation on the target data object can be as shown in Figure 12:
  • Step 1201 The first node determines to perform a target operation on the target data object.
  • Step 1202 The first node determines that the storage node corresponding to the target data object is the second node.
  • Step 1203 The first node sends an operation request of the target data object to the second node.
  • step 1201 to step 1203 is completely the same as the processing from step 401 to step 403, and will not be repeated here.
  • Step 1204 The second node receives the operation request of the target data object sent by the first node.
  • Step 1205 The second node determines the storage node corresponding to each sub-data object in the target data object in the stored correspondence between the target data object and the storage node of the target data object.
  • the corresponding relationship between the target data object and the storage node of the target data object stores the corresponding sub-data objects of the target data object Storage node.
  • the communication module of the second node searches for the storage node corresponding to each sub-data object in the target data object in the stored corresponding relationship between the target data object and the storage node of the target data object.
  • Step 1206 In the case that the storage node corresponding to the first child data object in the target data object is the third node, the second node sends the operation request of the first child data object and the operation request of the first child data object to the third node It is used to instruct the third node to perform the target operation indicated by the operation request of the first child data object.
  • the communication module of the second node may send the information of the first sub-data object to the third node.
  • Operation request the operation request includes the identifier of the first sub-data object.
  • the communication module of the third node may send the operation request of the first sub-data object to the library instance of the third node.
  • the library instance of the third node can search for the storage address corresponding to the first sub-data object in the corresponding relationship between the data object and the storage address.
  • the library instance of the third node accesses the storage address and executes the target operation indicated by the operation request of the first sub-data object on the first sub-data object. Then, after the library instance of the third node performs the target operation, it generates the first execution result, and sends the first execution result and the identifier of the second node to the communication module of the third node.
  • the communication module of the third node sends the first execution result to the second node.
  • the communication module of the second node receives the first execution result sent by the third node.
  • third node is a node different from the second node in the data center, and the third node may also be the first node or not.
  • Step 1207 When the storage node corresponding to the second sub-data object in the target data object is the second node, the second node determines the storage address of the second sub-data object in the target data object in the second node.
  • the second sub-data object belongs to the target data object and is different from the first sub-data object.
  • the target data object is a nested data object
  • the corresponding relationship between the storage address of the target data object and the target data object includes the storage address corresponding to the child data object stored on the second node in the target data object.
  • the communication module of the second node may send to the library instance of the second node The operation request of the second child data object of the target data object.
  • the library instance of the second node can determine the storage address corresponding to the second sub-data object of the target data object in the corresponding relationship between the stored target data object and the storage address of the target data object, that is, obtain the first The storage address of the second data object in the second node.
  • Step 1208 The second node performs the operation indicated by the operation request on the second sub-data object according to the storage address of the second sub-data object in the second node.
  • the library instance of the second node can access the storage address of the second sub-data object in the second node, perform the operation indicated by the operation request on the second sub-data object, and obtain the second execution result.
  • the library instance of the second node returns the second execution result to the communication module of the second node.
  • the communication module of the second node returns the first execution result and the second execution result to the first node.
  • the communication module of the first node receives the first execution result and the second execution result.
  • the communication module of the first node returns the first execution result and the second execution result to the library interface of the first node, and the library interface of the first node returns the first execution result and the second execution result to the application program of the first node.
  • the first sub-data object is sub-data object 1, and it is necessary to run the operation of finding str1 (find(str1)) in sub-data object 1.
  • the communication module of the second node determines that the storage node corresponding to the child data object 1 is the third node.
  • the communication module of the second node sends a request for the operation of finding str1 to the third node.
  • the communication module of the third node receives the operation request to find str1 and forwards it to the library instance of the third node.
  • the library instance of the third node finds the storage corresponding to the sub-data object 1 in the correspondence between the data object and the storage address. Address, at the storage address, find the sub-data object 1.
  • the library instance of the third node performs the operation of finding str1 on the child data object 1 to obtain the first execution result, and the communication module of the third node returns the first execution result to the communication module of the second node.
  • the library instance of the second node can find the storage address corresponding to sub-data object 2 in the corresponding relationship between the target data object and the storage address of the target data object. Address, find child data object 2.
  • the library instance of the second node performs the operation of searching for str1 on the child data object 2 to obtain the second execution result.
  • the communication module of the second node returns the first execution result and the second execution result to the communication module of the first node, and the communication module of the first node returns the first execution result and the second execution result to the application program of the first node.
  • the embodiment of the present application also provides message transmission paths of the first node, the second node, and the third node, as shown in the double arrow curve in FIG.
  • the target data object is a nested data object
  • the embodiment of the present application also provides a process of creating a target data object:
  • the application of the first node needs to create the target data object, and the application can call the library interface to instruct the library interface to create the target data object.
  • the library interface of the first node can determine the storage node corresponding to the target data object. If the storage node is the second node, the library interface of the first node stores the correspondence between the target data object and the second node.
  • the library interface of the first node sends the identifier of the second node and the content of the target data object to the communication module of the first node.
  • the communication module of the first node receives the identifier of the second node and the content of the target data object.
  • the communication module of the first node sends a creation request of the target data object to the communication module of the second node.
  • the creation request includes the identification of the target data object and the content of the target data object.
  • the communication module of the second node receives the creation request of the target data object sent by the communication module of the first node.
  • the communication module of the second node sends the creation request to the library instance of the second node. If the storage space of the second node can only store part of the sub-data objects of the target data object, the storage node of each sub-data object determined by the library instance of the second node may not be the second node.
  • the library instance of the second node sends the identifier of the third node and the content of the first child data object to the communication module of the second node, and the communication of the second node
  • the module sends a creation request of the first data object to the third node, and the creation request includes the content of the first sub-data object.
  • the communication module of the third node sends the creation request to the library instance of the third node, and the library instance of the third node determines the storage address of the first sub-data object in the local storage space.
  • the library instance of the third node is to store the first sub-data object to the storage address, and store the corresponding relationship between the first sub-data object and the storage address.
  • the library instance of the third node sends a creation completion notification to the communication module of the third node, and the communication module of the third node sends the creation completion notification to the communication module of the second node.
  • the library instance of the second node stores the second sub-data object (this process is the same as the process of creating the target data object by the second node in the previous article, and is not here anymore. Repeat).
  • the communication module of the second node sends the creation result to the communication module of the first node.
  • the communication module of the first node sends the creation completion notification to the application program of the first node.
  • the operation on the target data object is performed by the node storing the target data object, and there is no need to implement a large number of operations across the network, so the time delay for operating the data object can be reduced. And can operate on data objects of various data structures. And when operating on the data object, it is through the interface function of the library interface to directly process the data object instead of processing a certain part of the data object, which can reduce the access delay.
  • the library instance can be packaged based on the Standard template library (STL), and the library interface is provided externally for application calls.
  • STL Standard template library
  • the existing applications can be run directly without modification and recompilation, so the implementation difficulty is relatively low .
  • the library instance can also be packaged in other ways, which is not limited in the embodiment of the present application.
  • FIG. 14 exemplarily provides a possible architecture diagram of the computing device 1400.
  • the computing device 1400 includes a memory 1401, a processor 1402, a communication interface 1403, and a bus 1404. Among them, the memory 1401, the processor 1402, and the communication interface 1403 implement communication connections between each other through the bus 1404.
  • the memory 1401 may be a read only memory (Read Only Memory, ROM), a static storage device, a dynamic storage device, or a random access memory (Random Access Memory, RAM).
  • the memory 1401 may store a program.
  • the processor 1402 and the communication interface 1403 are used to execute the method of operating the data object, for example: execute the method executed by the first node described in the foregoing embodiment Method, or execute the method executed by the second node described in the foregoing embodiment.
  • the memory 1401 may also store data collections.
  • the processor 1402 may use a general CPU, a microprocessor, an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits.
  • ASIC application specific integrated circuit
  • GPU graphics processing unit
  • the processor 1402 may also be an integrated circuit chip with signal processing capabilities. In the implementation process, part or all of the functions of the device for operating data objects of the present application may be implemented by hardware integrated logic circuits in the processor 1402 or instructions in the form of software.
  • the aforementioned processor 1402 may also be a general-purpose processor, a digital signal processor (Digital Signal Processing, DSP), an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices , Discrete gates or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processing
  • ASIC application specific integrated circuit
  • FPGA field Programmable Gate Array
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the memory 1401, and the processor 1402 reads the information in the memory 1401 and completes part of the functions of the device for operating data objects in the embodiment of the present application in combination with its hardware.
  • the communication interface 1403 uses a transceiver module such as but not limited to a transceiver to implement communication between the computing device 1400 and other devices or communication networks.
  • a transceiver module such as but not limited to a transceiver to implement communication between the computing device 1400 and other devices or communication networks.
  • the data set can be acquired through the communication interface 1403.
  • the bus 1404 may include a path for transferring information between various components of the computing device 1400 (for example, the memory 1401, the processor 1402, and the communication interface 1403).
  • the computer program product includes one or more computer instructions, and when the computer program instructions are loaded and executed on a server or a terminal, the processes or functions described in the embodiments of the present application are generated in whole or in part.
  • the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a server or a terminal, or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (such as a floppy disk, a hard disk, and a magnetic tape, etc.), an optical medium (such as a digital video disk (Digital Video Disk, DVD), etc.), or a semiconductor medium (such as a solid state hard disk, etc.).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种操作数据对象的方法、装置、计算设备和存储介质,属于计算机技术领域。该方法包括:第一节点获取操作目标数据对象的请求,第一节点确定目标数据对象对应的存储节点为第二节点,第一节点向第二节点发送目标数据对象的操作请求,操作请求用于指示第二节点执行操作请求指示的操作。采用本申请,可以降低数据对象的操作延时。

Description

操作数据对象的方法、装置、计算设备和存储介质
本申请要求于2020年05月27日提交中国知识产权局、申请号为202010464045.X、申请名称为“操作数据对象的方法、装置、计算设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及一种操作数据对象的方法、装置、计算设备和存储介质。
背景技术
数据中心中包括多个节点,多个节点之间有可能存在数据对象共享的情况,所以节点之间会互相访问对方的数据对象。
相关技术中,节点1访问节点2的数据对象1时,节点1每次通过网络向节点2发送数据对象1中每一部分的操作请求,实现对数据对象1的操作。例如,数据对象1为一个浮点列表,数据对象1=[1.2,20.1,3.5,4.6],节点1执行的操作为在数据对象1中搜索5.2,节点1依次向节点2发送读取1.2的操作请求、读取20.1的操作请求、读取3.5的操作请求和读取4.6的操作请求,在多次读取后,节点1才能获得搜索5.2的搜索结果。
由于节点1需要进行多次远端访问,才能实现操作数据对象1,所以会导致跨节点操作数据对象的延时比较高。
发明内容
本申请提供了一种操作数据对象的方法、装置、计算设备及存储介质,用以降低跨节点访问操作数据对象的延时。
第一方面,本申请提供了一种操作数据对象的装置,应用于数据中心的第一节点,数据中心包括第一节点和第二节点,该装置包括:
应用程序,用于调用库接口,指定对目标数据对象执行目标操作;库接口,用于确定目标数据对象对应的存储节点为第二节点;通信模块,用于向第二节点发送目标数据对象的操作请求,操作请求用于指示第二节点对目标数据对象执行目标操作。
本申请所示的方案,第一节点中应用程序要对目标数据对象进行某种操作(后续可以称为是目标操作)时,可以调用库接口,指定对目标数据对象执行目标操作。第一节点的库接口接收到应用程序的调用时,该库接口确定目标数据对象对应的存储节点,即获取到目标数据对象对应的第二节点。第一节点的库接口将第二节点的标识、目标数据对象的标识和目标操作的标识通知给第一节点的通信模块,该通信模块可以向第二节点发送目标数据对象的操作请求,该操作请求包括目标数据对象的标识、目标操作的标识,以使第二节点对目标数据对象执行目标操作。这样,第一节点向第二节点发送一次操作请求,就能实 现对第二节点上存储的目标数据对象进行目标操作,而不需要第一节点与第二节点多次交互,所以可以降低跨节点访问延时。
在一种可能的实现方式中,当目标操作为创建操作时,库接口,用于根据数据中心中各个节点的节点亲和性、负载情况、带宽、时延或中央处理器(Central Processing Unit,CPU)占用率中的一种或多种,确定目标数据对象对应的存储节点为第二节点;库接口,还用于存储目标数据对象与第二节点的对应关系。
本申请所示的方案,在目标操作为创建操作时,第一节点的库接口可以在数据中心的节点中,选择负载最少的节点,确定为第二节点。第一节点的库接口也可以在数据中心的节点中,选择与第一节点具有节点亲和性的节点,确定为第二节点。第一节点的库接口还可以在数据中心的节点中,选择CPU占用率的节点,确定为第二节点。第一节点的库接口还可以在数据中心的节点中,选择与第一节点传输时延最小的节点,确定为第二节点。第一节点的库接口还可以在数据中心的节点中,选择与第一节点传输带宽最大的节点,确定为第二节点。当然,第一节点的库接口也可以将上述多种情况相结合,选择出第二节点。然后第一节点的库接口存储目标数据对象与第二节点的对应关系,这样,可以选择出合适的第二节点,并且后续使第一节点还能访问目标数据对象。
在一种可能的实现方式中,库接口,用于:在目标数据对象与目标数据对象的存储节点的对应关系中,确定目标数据对象对应的存储节点为第二节点。这样,可以快速的获取到目标数据对象对应的存储节点。
在一种可能的实现方式中,目标数据对象的数据结构为向量、集合、队列中任一种。
在一种可能的实现方式中,目标操作的类型还包括搜索、插入、修改或删除中的一种或多种。
第二方面,本申请提供了一种操作数据对象的装置,应用于数据中心的第二节点,数据中心包括第一节点和第二节点,装置包括:
通信模块,用于接收第一节点发送的目标数据对象的操作请求;库实例,用于确定目标数据对象在第二节点中的目标存储地址;根据目标存储地址,对目标数据对象执行操作请求所指示的目标操作。
本申请所示的方案,第二节点的通信模块接收第一节点发送的目标数据对象的操作请求,第二节点的通信模块将该操作请求转发给第二节点的库实例。第二节点的库实例确定目标数据对象对应的目标存储地址。第二节点的库实例可以访问目标存储地址,对目标存储地址存储的目标数据对象,执行操作请求所指示的目标操作。这样,第一节点向第二节点发送一次操作请求,就能实现对第二节点上存储的目标数据对象进行目标操作,而不需要第一节点与第二节点多次交互,所以可以降低跨节点访问延时。
在一种可能的实现方式中,当目标操作为创建操作时,第二节点的库实例,用于将目标数据对象存储至目标存储地址,库实例还用于:存储目标数据对象与目标存储地址的对应关系,并存储目标数据对象与第二节点的对应关系。这样,可以方便第二节点查找到目标数据对象。
在一种可能的实现方式中,库实例,用于在目标数据对象与目标数据对象的存储地址的对应关系,确定目标数据对象在第二节点中的目标存储地址。这样,第二节点可以快速 的查找到目标数据对象的存储地址。
在一种可能的实现方式中,当目标操作的类型为删除时,第二节点的库实例,用于:访问目标存储地址,删除目标数据对象;删除目标数据对象与目标数据对象的存储地址的对应关系;删除目标数据对象与目标数据对象的存储节点的对应关系。这样,可以节约存储资源。
在一种可能的实现方式中,第二节点的通信模块,还用于:在删除目标数据对象与目标数据对象的存储节点的对应关系之前,向数据中心中除第二节点之外的节点发送删除消息,删除消息用于指示接收到删除消息的节点删除目标数据对象与目标数据对象的存储节点的对应关系。这样,可以防止其他节点在操作目标数据对象时,继续向第二节点发送操作请求,降低操作失败的可能性。
在一种可能的实现方式中,通信模块,还用于接收目标数据对象的迁移请求,迁移请求携带有目标数据对象迁移后的存储节点的标识;库实例,还用于锁定目标数据对象;通信模块,还用于向迁移后的存储节点发送目标数据对象的拷贝请求,拷贝请求用于指示迁移后的存储节点存储目标数据对象与迁移后的存储节点的对应关系,并存储所述目标数据对象与所述目标数据对象在所述迁移后的存储节点中的存储地址的对应关系;接收迁移后的存储节点发送的拷贝完成消息;库实例,还用于解锁并删除目标数据对象。
本申请所示的方案,第二节点的通信模块接收目标数据对象的迁移请求,将该迁移请求发送至第二节点的库实例。第二节点的库实例解析该迁移请求获取到目标数据对象的标识,然后锁定目标数据对象。第二节点的通信模块将拷贝请求发送至迁移后的存储节点的通信模块。迁移后的存储节点的通信模块接收到拷贝请求后,可以解析拷贝请求获取到目标数据对象的内容。迁移后的存储节点可以在本地的存储空间(即内存)中,确定存储目标数据对象的存储地址。然后迁移后的存储节点可以存储目标数据对象与该存储地址的对应关系,并且存储目标数据对象与迁移后的存储节点的对应关系。这样,在迁移后的存储节点中存储目标数据对象的存储地址,方便查找到目标数据对象。
在一种可能的实现方式中,通信模块,还用于:在解锁并删除目标数据对象之前,向其他节点发送目标数据对象的存储节点的更改消息,更改消息用于指示接收到更改消息的节点将目标数据对象对应的存储节点更换为迁移后的存储节点,其他节点为数据中心中除迁移后的存储节点和第二节点之外的节点;接收其他节点发送的更改完成消息。这样,可以使其他节点在操作目标数据对象时,访问迁移后的存储节点,减少无效访问。
在一种可能的实现方式中,当目标数据对象为嵌套数据对象时,通信模块,还用于确定目标数据对象中各子数据对象对应的存储节点;在目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,向第三节点发送第一子数据对象的操作请求,第一子数据对象的操作请求用于指示第三节点执行第一子数据对象的操作请求指示的目标操作;库实例,还用于在目标数据对象中第二子数据对象对应的存储节点为第二节点的情况下,确定目标数据对象中第二子数据对象在第二节点中的存储地址;根据第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的目标操作。
本申请所示的方案,在目标数据对象为嵌套数据对象时,目标数据对象与目标数据对象的存储节点的对应关系中存储有目标数据对象的各子数据对象对应的存储节点。第二节 点的通信模块在该对应关系中,查找目标数据对象中各子数据对象对应的存储节点。第二节点的通信模块确定目标数据对象中第一子数据对象对应的存储节点为第三节点时,第二节点的通信模块可以向第三节点的通信模块发送第一子数据对象的操作请求,该操作请求中包括第一子数据对象的标识。第三节点的通信模块接收到第一子数据对象的操作请求后,可以将第一子数据对象的操作请求发送给第三节点的库实例。第三节点的库实例确定第一子数据对象对应的存储地址。然后第三节点的库实例访问该存储地址,对第一子数据对象执行第一子数据对象的操作请求所指示的目标操作。第二节点的通信模块确定目标数据对象中的第二子数据对象对应的存储节点为第二节点的情况下,第二节点的通信模块可以向第二节点的库实例发送目标数据对象的第二子数据对象的操作请求。第二节点的库实例接收到该操作请求后,可确定目标数据对象的第二子数据对象对应的存储地址,即获取第二子数据对象在第二节点中的存储地址。第二节点的库实例可以访问第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的操作。这样,在目标数据对象为嵌套数据对象时,也可以通过发送一次操作请求,实现对目标数据对象的操作,降低操作延时。
在一种可能的实现方式中,目标数据对象的数据结构为向量、集合、队列中任一种。
第三方面,本申请提供了一种操作数据对象的方法,应用于数据中心,数据中心包括第一节点和第二节点,该方法包括:第一节点确定对目标数据对象执行目标操作;第一节点确定目标数据对象对应的存储节点为第二节点;第一节点向第二节点发送目标数据对象的操作请求,操作请求用于指示第二节点对目标数据对象执行目标操作。这样,第一节点向第二节点发送一次操作请求,就能实现对第二节点上存储的目标数据对象进行目标操作,而不需要第一节点与第二节点多次交互,所以可以降低跨节点访问延时。
在一种可能的实现方式中,当目标操作为创建操作时,第一节点确定目标数据对象对应的存储节点为第二节点,包括:第一节点根据数据中心中各个节点的节点亲和性、负载情况、带宽、时延或中央处理器CPU占用率中的一种或多种,确定目标数据对象对应的存储节点为第二节点;该方法还包括:第一节点存储目标数据对象与第二节点的对应关系。这样,可以选择出合适的第二节点,并且后续使第一节点还能访问目标数据对象。
在一种可能的实现方式中,第一节点确定目标数据对象对应的存储节点为第二节点,包括:第一节点在目标数据对象与目标数据对象的存储节点的对应关系中,确定目标数据对象对应的存储节点为第二节点。这样,可以快速的获取到目标数据对象对应的存储节点。
在一种可能的实现方式中,目标数据对象的数据结构为向量、集合、队列中任一种。
在一种可能的实现方式中,目标操作的类型还包括搜索、插入、修改或删除中的一种或多种。
第四方面,本申请提供了一种操作数据对象的方法,应用于数据中心,数据中心包括第一节点和第二节点,该方法包括:第二节点接收第一节点发送的目标数据对象的操作请求;第二节点确定目标数据对象在第二节点中的目标存储地址;第二节点根据目标存储地址,对目标数据对象执行操作请求所指示的目标操作。这样,,第一节点向第二节点发送一次操作请求,就能实现对第二节点上存储的目标数据对象进行目标操作,而不需要第一节 点与第二节点多次交互,所以可以降低跨节点访问延时。
在一种可能的实现方式中,当目标操作为创建操作时,第二节点根据目标存储地址,对目标数据对象执行操作请求所指示的目标操作,包括将目标数据对象存储至目标存储地址;该方法还包括:第二节点存储目标数据对象与目标存储地址的对应关系,并存储目标数据对象与第二节点的对应关系。这样,可以方便第二节点查找到目标数据对象。
在一种可能的实现方式中,第二节点确定目标数据对象在第二节点中的目标存储地址,包括:第二节点在目标数据对象与目标数据对象的存储地址的对应关系,确定目标数据对象在第二节点中的目标存储地址。这样,第二节点可以快速的查找到目标数据对象的存储地址。
在一种可能的实现方式中,当目标操作的类型为删除时,根据目标存储地址,对目标数据对象执行操作请求所指示的操作,包括:第二节点访问目标存储地址,删除目标数据对象;第二节点删除目标数据对象与目标数据对象的存储地址的对应关系;第二节点删除目标数据对象与目标数据对象的存储节点的对应关系。这样,可以节约存储资源。
在一种可能的实现方式中,在删除目标数据对象与目标数据对象的存储节点的对应关系之前,该方法还包括:第二节点向数据中心中除第二节点之外的节点发送删除消息,删除消息用于指示接收到删除消息的节点删除目标数据对象与目标数据对象的存储节点的对应关系。这样,可以防止其他节点在操作目标数据对象时,继续向第二节点发送操作请求,降低操作失败的可能性。
在一种可能的实现方式中,该方法还包括:第二节点接收目标数据对象的迁移请求,迁移请求携带有目标数据对象迁移后的存储节点的标识;第二节点锁定目标数据对象;第二节点向迁移后的存储节点发送目标数据对象的拷贝请求,拷贝请求用于指示迁移后的存储节点存储目标数据对象与迁移后的存储节点的对应关系,并存储目标数据对象与目标数据对象在迁移后的存储节点中的存储地址的对应关系;第二节点接收迁移后的存储节点发送的拷贝完成消息,解锁并删除目标数据对象。这样,在迁移后的存储节点中存储目标数据对象的存储地址,方便查找到目标数据对象。
在一种可能的实现方式中,解锁并删除目标数据对象之前,还包括:第二节点向其他节点发送目标数据对象的存储节点的更改消息,更改消息用于指示接收到更改消息的节点将目标数据对象对应的存储节点更换为迁移后的存储节点,其他节点为数据中心中除迁移后的存储节点和第二节点之外的节点;第二节点接收其他节点发送的更改完成消息。这样,可以使其他节点在操作目标数据对象时,访问迁移后的存储节点,减少无效访问。
在一种可能的实现方式中,当目标数据对象为嵌套数据对象时,该方法还包括:第二节点确定目标数据对象中各子数据对象对应的存储节点;在目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,第二节点向第三节点发送第一子数据对象的操作请求,第一子数据对象的操作请求用于指示第三节点执行第一子数据对象的操作请求指示的目标操作;在目标数据对象中第二子数据对象对应的存储节点为第二节点的情况下,第二节点确定目标数据对象中第二子数据对象在第二节点中的存储地址;第二节点根据第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的目标操作。这样,在目标数据对象为嵌套数据对象时,也可以通过发送一次操作请求,实现对目标数 据对象的操作,降低操作延时。
第五方面,提供了一种操作数据对象的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第三方面及其可能的实现方式的方法。
第六方面,提供了一种操作数据对象的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第四方面及其可能的实现方式的方法。
第七方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第三方面及其可能的实现方式的方法,或者使得计算设备实现上述第一方面及其可能的实现方式的装置的功能。
第八方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第四方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
第九方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第三方面及其可能的实现方式的方法,或者使得计算设备实现上述第一方面及其可能的实现方式的装置的功能。
第十方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第四方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
第十一方面,提供了一种操作数据对象的系统,该系统包括第一节点和第二节点,第一节点如上述第一方面所述的操作数据对象的装置,第二节点如上述第二方面所述的操作数据对象的装置。
附图说明
图1是本申请一个示例性实施例提供的操作数据对象的系统架构图;
图2是本申请一个示例性实施例提供的数据中心中的节点的结构示意图;
图3是本申请一个示例性实施例提供的数据中心中的节点的结构示意图;
图4是本申请一个示例性实施例提供的操作数据对象的方法的流程示意图;
图5是本申请一个示例性实施例提供的操作数据对象的方法的流程示意图;
图6是本申请一个示例性实施例提供的操作数据对象的路径示意图;
图7是本申请一个示例性实施例提供的创建数据对象的方法的流程示意图;
图8是本申请一个示例性实施例提供的创建数据对象的路径示意图;
图9是本申请一个示例性实施例提供的操作数据对象的系统架构图;
图10是本申请一个示例性实施例提供的迁移数据对象的方法的流程示意图;
图11是本申请一个示例性实施例提供的迁移数据对象的路径示意图;
图12是本申请一个示例性实施例提供的操作数据对象的方法的流程示意图;
图13是本申请一个示例性实施例提供的操作数据对象的路径示意图;
图14是本申请一个示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了降低跨节点操作数据对象的时延,本申请实施例提供了一种操作数据对象的方法,该方法可以应用于数据中心。如图1所示,数据中心包括多个节点(多个节点包括后文中描述的第一节点和第二节点,第一节点和第二节点是不相同的节点),每个节点可以是一个计算设备,每个节点上部署有应用程序。各节点之间建立有有线或无线通信连接。数据中心包括的每个节点也可以是虚拟机。
如图2所示,数据中心中的节点在逻辑上也可以是由多个部分构成的装置,如数据中心中的节点可以包括应用程序210、库接口220、通信模块230、库实例240等,应用程序210可以是任意一个应用程序,库接口220包括各种接口函数,库接口220用于确定数据对象存储的节点,通信模块230用于与其他节点进行通信,库实例240用于执行操作数据对象的处理。另外,如图3所示,数据中心中的节点还可以包括高速缓存存储器(cache)250等,cache用于缓存数据等。
本申请实施例提供的第一节点可以实现后文中图4的流程,应用程序210,用于调用库接口220,指定对目标数据对象执行目标操作;
库接口220,用于确定目标数据对象对应的存储节点为第二节点;
通信模块230,用于向第二节点发送目标数据对象的操作请求,操作请求用于指示第二节点对目标数据对象执行目标操作。
在一种可能的实现方式中,当目标操作为创建操作时,库接口220,用于根据数据中心中各个节点的节点亲和性、负载情况、带宽、时延或中央处理器CPU占用率中的一种或多种,确定目标数据对象对应的存储节点为第二节点;
库接口220,还用于存储目标数据对象与第二节点的对应关系。
在一种可能的实现方式中,库接口220,用于:在存储的目标数据对象与目标数据对象的存储节点的对应关系中,确定目标数据对象对应的存储节点为第二节点。
在一种可能的实现方式中,目标数据对象的数据结构为向量、集合、队列中任一种。
在一种可能的实现方式中,目标操作的类型还包括搜索、插入、修改或删除中的一种或多种。
本申请实施例提供的第二节点可以实现后文中图5的流程,通信模块230,用于接收第一节点发送的目标数据对象的操作请求;
库实例240,用于确定目标数据对象在第二节点中的目标存储地址;根据目标存储地址,对目标数据对象执行操作请求所指示的目标操作。。
在一种可能的实现方式中,当目标操作为创建操作时,库实例240,用于将目标数据对象存储至目标存储地址;
库实例240还用于:存储目标数据对象与目标存储地址的对应关系,并存储目标数据对象与第二节点的对应关系。
在一种可能的实现方式中,操作请求的类型为删除;库实例240,用于在存储的所述目标数据对象与所述目标数据对象的存储地址的对应关系,确定目标数据对象在第二节点中的目标存储地址。
在一种可能的实现方式中,当目标操作的类型为删除时,库实例240,用于:访问目标存储地址,删除目标数据对象;删除目标数据对象与目标数据对象的存储地址的对应关系;删除目标数据对象与目标数据对象的存储节点的对应关系。
在一种可能的实现方式中,通信模块230,还用于:在删除目标数据对象与目标数据对象的存储节点的对应关系之前,向数据中心中除第二节点之外的节点发送删除消息,删除消息用于指示接收到删除消息的节点删除目标数据对象与目标数据对象的存储节点的对应关系。
在一种可能的实现方式中,通信模块230,还用于接收目标数据对象的迁移请求,迁移请求携带有目标数据对象迁移后的存储节点的标识;库实例240,还用于锁定目标数据对象;通信模块230,还用于向迁移后的存储节点发送目标数据对象的拷贝请求,拷贝请求用于指示迁移后的存储节点存储目标数据对象与迁移后的存储节点的对应关系,并存储目标数据对象与目标数据对象在迁移后的存储节点中的存储地址的对应关系;接收迁移后的存储节点发送的拷贝完成消息;库实例240,还用于解锁并删除目标数据对象。
在一种可能的实现方式中,通信模块230,还用于:在解锁并删除目标数据对象之前,向其他节点发送目标数据对象的存储节点的更改消息,更改消息用于指示接收到更改消息的节点将目标数据对象对应的存储节点更换为迁移后的存储节点,其他节点为数据中心中除迁移后的存储节点和第二节点之外的节点;接收其他节点发送的更改完成消息。
在一种可能的实现方式中,当目标数据对象为嵌套数据对象时,通信模块230,还用于确定目标数据对象中各子数据对象对应的存储节点;在目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,向第三节点发送第一子数据对象的操作请求,第一子数据对象的操作请求用于指示第三节点执行第一子数据对象的操作请求指示的目标操作;库实例240,还用于在目标数据对象中第二子数据对象对应的存储节点为第二节点的情况下,确定目标数据对象中第二子数据对象在第二节点中的存储地址;根据第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的目标操作。
在一种可能的实现方式中,目标数据对象的数据结构为向量、集合、队列中任一种。
此处需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
操作数据对象的方法可以由数据中心中的节点执行,该节点既可以是一个硬件装置,如服务器、终端等计算设备,也可以是一个软件装置,如可以为运行在硬件装置上的一套软件程序。
下面将结合图4对本申请实施例提供的操作数据对象的方法进行说明,该方法可以由第一节点执行。如图4所示,该方法的处理流程如下:
步骤401,第一节点确定对目标数据对象执行目标操作。
其中,目标数据对象是任一个数据对象。目标数据对象的数据结构为向量、集合、队列中任一种。
在本实施例中,第一节点中应用程序要对目标数据对象进行某种操作(后续可以称为是目标操作)时,可以调用库接口,指定对目标数据对象执行目标操作。
步骤402,第一节点确定目标数据对象对应的存储节点为第二节点。
在一种可能的实现方式中,在目标操作不是创建操作时,第一节点存储有目标数据对象与目标数据对象的存储节点的对应关系,该对应关系在存储时可以以表格的格式存储,也可以以其他格式存储,本申请实施例不做限定。第一节点的库接口接收到应用程序的调用时,该库接口可以获取第一节点存储的目标数据对象与目标数据对象的存储节点的对应关系。该库接口在该对应关系中,查找目标数据对象对应的存储节点,即获取到目标数据对象对应的第二节点。
另外,第一节点的库接口在存储的目标数据对象与目标数据对象的存储节点的对应关系中,确定目标数据对象对应的存储节点为第一节点时,第一节点的库接口可以将第一节点的标识、目标数据对象的标识和目标操作通知给第一节点的通信模块。第一节点的通信模块可以向第一节点的库实例发送目标数据对象的操作请求。第一节点的库实例执行对目标数据对象的目标操作(该过程与第二节点的库实例执行对目标数据对象的目标操作的处理相同,后文中有描述,此处不再赘述)。
步骤403,第一节点向第二节点发送目标数据对象的操作请求,操作请求用于指示第二节点执行操作请求指示的目标操作。
在本实施例中,第一节点的库接口将第二节点的标识、目标数据对象的标识和目标操作的标识通知给第一节点的通信模块,该通信模块可以向第二节点发送目标数据对象的操作请求,该操作请求包括目标数据对象的标识、目标操作的标识。
可选的,第一节点还可以接收第二节点返回的执行结果。具体的第二节点在对目标数据执行完目标操作后,通过第二节点的通信模块,向第一节点发送执行结果。第一节点的通信模块接收第二节点的通信模块发送的执行结果,第一节点的通信模块将该执行结果返回给第一节点的库接口。第一节点的库接口将该执行结果返回给第一节点的应用程序。
在一种可能的实现方式中,目标操作的类型包括创建、搜索、插入、修改或删除中的一种或多种。创建指存储目标数据对象;搜索指在目标数据对象中搜索某些内容;插入指在目标数据对象中插入新内容;修改指在目标数据对象中修改部分或全部内容;删除指删除目标数据对象。
这样,通过图4的流程,第一节点通过发送一次操作请求,就能实现对第二节点上存储的目标数据对象进行操作,从而可以降低跨节点访问数据对象的延时。
下面将结合图5对本申请实施例提供的操作数据对象的方法进行说明,该方法可以由第二节点执行。如图5所示,该方法的处理流程如下:
步骤501,第二节点接收第一节点发送的目标数据对象的操作请求。
在本实施例中,第二节点的通信模块接收第一节点发送的目标数据对象的操作请求,第二节点的通信模块将该操作请求转发给第二节点的库实例。
此处需要说明的是,第二节点的通信模块接收第一节点发送的目标数据对象的操作请求后,还可以判断目标数据对象是否是嵌套对象,在目标数据对象不是嵌套对象时,可以执行步骤502至504的流程,在目标数据对象是嵌套对象时,执行的流程在后文中描述。在判断嵌套对象时,可以基于目标数据对象与目标数据对象对应的存储节点的对应关系,确定目标数据对象包括的多个子对象是否均存储在第二节点,若均存储在第二节点,则不是嵌套数据对象,若未均存储在第二节点,则目标数据对象为嵌套数据对象。
步骤502,第二节点确定目标数据对象在第二节点中的目标存储地址。
在一种可能的实现方式中,在操作请求所指示的目标操作不是创建操作时,第二节点存储有目标数据对象与目标数据对象的存储地址的对应关系,该对应关系在存储时,可以以表格的格式存储,也可以以其他格式存储,本申请实施例不做限定。第二节点的库实例获取第二节点中存储的目标数据对象与目标数据对象的存储地址的对应关系,该库实例在该对应关系中,获取目标数据对象对应的目标存储地址。
步骤503,第二节点根据目标存储地址,对目标数据对象执行操作请求所指示的操作。
在本实施例中,第二节点的库实例可以访问目标存储地址,对目标存储地址存储的目标数据对象,执行操作请求所指示的目标操作。例如,在操作请求所指示的目标操作为修改操作时,库实例修改目标数据对象,获得的执行结果为修改完成的通知。
可选的,第二节点还可以将执行结果返回给第一节点。具体的,第二节点的库实例执行完目标操作后,获得执行结果,第二节点的通信模块将该执行结果发送至第一节点的通信模块。
这样,对目标数据对象执行的操作是由存储目标数据对象的节点执行,请求操作目标数据对象的节点需要调用一次库接口,仅进行一次跨网络的访问,所以可以降低跨节点访问数据对象的延时。
在一种可能的实施方式中,目标数据对象的数据结构可以为向量、集合、队列等中的任一种。
在一种可能的实现方式中,目标操作的类型为删除时,步骤503的处理可以为:
第二节点访问目标存储地址,删除目标数据对象;第二节点删除目标数据对象与目标数据对象的存储地址的对应关系;第二节点删除目标数据对象与目标数据对象的存储节点的对应关系。
在本实施例中,第二节点的库实例在确定目标操作的类型为删除时,可以访问目标数据对象在本地存储的目标存储地址,删除目标数据对象。第二节点的库实例在第二节点中,删除目标数据对象与目标数据对象的存储地址的对应关系。第二节点的库实例在第二节点中删除目标数据对象与目标数据对象的存储节点的对应关系。
在一种可能的实现方式中,第二节点的库实例在删除目标数据对象与目标数据对象的存储节点的对应关系之前,还执行如下处理:
第二节点向数据中心中除第二节点之外的节点发送删除消息,删除消息用于指示接收 到删除消息的节点删除目标数据对象与目标数据对象的存储节点的对应关系。
在本实施例中,第二节点的库实例可以确定数据中心中除第二及节点之外的节点(这些节点是数据中心中有可能访问目标数据对象的节点),然后将这些节点的标识和删除消息通知给第二节点的通信模块。第二节点的通信模块可以向这些节点的标识指示的节点发送删除消息。接收到删除消息的节点可以在删除目标数据对象与目标数据对象对应的存储节点的对应关系。这样,后续数据中的节点再查找目标数据对象时,不会再在第二节点上查找,减少无效访问。
另外,为了方便理解图4和图5的流程,如图6所示,本申请实施例还提供了第一节点与第二节点之间消息传输的路径,见图6中的双箭头曲线。
在一种可能的实现方式中,在目标操作为创建操作时,对应图4和图5的流程,本申请实施例还提供了在第二节点创建目标数据对象的流程,如图7所示:
步骤701,第一节点确定对目标数据对象执行创建操作。
在本实施例中,第一节点的应用程序要创建目标数据对象,该应用程序可以调用库接口,指定库接口创建目标数据对象。
步骤702,第一节点根据数据中心中各个节点的节点亲和性、负载情况、带宽、时延或CPU占用率中的一种或多种,确定目标数据对象对应的存储节点为第二节点,存储目标数据对象与第二节点的对应关系。
其中,对于任一节点,该节点的节点亲和性可以使用该节点与其它节点之间传输数据的距离反映。例如,如果该节点与节点1之间传输距离超过一定数值,则该节点与节点1不具有节点亲和性,如果该节点与节点1之间传输距离超过小于一定数值,则该节点与节点1具有节点亲和性。负载情况可以通过内存占用率反映。
在本实施例中,第一节点的库接口也可以为目标数据对象生成一个指针(即目标数据对象的标识),然后该库接口确定目标数据对象对应的存储节点,若该存储节点为第二节点,则第一节点的库接口存储目标数据对象和第二节点的对应关系。第一节点的库接口将第二节点的标识、目标数据对象的内容发送给第一节点的通信模块。具体的,在第一节点确定目标数据对象对应的存储节点的过程为:第一节点可以在数据中心的节点中,选择负载最少的节点,确定为第二节点。第一节点也可以在数据中心的节点中,选择与第一节点具有节点亲和性的节点,确定为第二节点。第一节点还可以在数据中心的节点中,选择CPU占用率的节点,确定为第二节点。第一节点还可以在数据中心的节点中,选择与第一节点传输时延最小的节点,确定为第二节点。第一节点还可以在数据中心的节点中,选择与第一节点传输带宽最大的节点,确定为第二节点。当然,第一节点也可以将上述多种情况相结合,选择出第二节点。例如,第一节点在数据中心的节点中,选择与第一节点具有节点亲和性的节点,然后在这些节点中选择负载最少的节点,作为第二节点。
若第一节点确定目标数据对象对应的存储节点为第一节点,则第一节点的库接口存储目标数据对象和第一节点的对应关系。第一节点的库接口将第一节点的标识、目标数据对象的内容发送给第一节点的通信模块。第一节点的通信模块将操作请求发送给第一节点的库实例。第一节点的库实例创建目标数据对象,并向第一节点的通信模块返回执行结果,第一节点的通信模块将执行结果,返回给第一节点的库接口。第一节点的库接口将执行结 果返回给第一节点的应用程序。
步骤703,第一节点向第二节点发送目标数据对象的创建请求,创建请求用于指示第二节点存储目标数据对象。
在本实施例中,第一节点的通信模块接收第二节点的标识、目标数据对象的内容。第一节点的通信模块向第二节点的通信模块发送目标数据对象的创建请求。该创建请求包括目标数据对象的标识和目标数据对象的内容。
步骤704,第二节点接收第一节点发送的目标数据对象的创建请求。
在本实施例中,第二节点的通信模块接收第一节点的通信模块发送的目标数据对象的创建请求。第二节点的通信模块将该创建请求发送至第二节点的库实例。
步骤705,第二节点确定目标数据对象的目标存储地址。
在本实施例中,第二节点的库实例在本地的存储空间(该存储空间可以是第二节点的内存),确定目标数据对象在本地的目标存储地址。
步骤706,第二节点将目标数据对象存储至目标存储地址,存储目标数据对象与目标存储地址的对应关系,并存储目标数据对象与第二节点的对应关系。
在本实施例中,第二节点的库实例将目标数据对象存储至目标存储地址,第二节点的库实例存储目标数据对象和目标存储地址的对应关系,并且第二节点的库实例存储目标数据对象与第二节点的对应关系。第二节点的库实例存储目标数据对象后,可以向第二节点的通信模块发送创建完成通知。
可选的,第二节点可以向发送第一节点发送创建结果。具体的,第二节点的通信模块可以向第一节点的通信模块,发送创建结果,若创建成功,该创建结果为创建成功的结果,若创建失败,该创建结果为创建失败的结果。第一节点的通信模块接收第二节点的通信模块发送的创建结果。第一节点的通信模块将该创建结果返回给第一节点的库接口,第一节点的库接口将该创建结果返回给第一节点的应用程序,第一节点的应用程序可以获得目标数据对象的创建结果。这样,可以跨节点创建数据对象。
可选的,在步骤706之后,若第二节点确定成功创建目标数据对象,则第二节点可以向数据中心中除第一节点和第二节点之外的其他节点发送目标数据对象对应的存储节点的通知。这样,接收到该通知的节点,可以存储目标数据对象和第二节点的对应关系,便于后续访问目标数据对象。
另外,为了方便理解图7的流程,如图8所示,本申请实施例还提供了第一节点与第二节点的消息传输路径,见图8中的双箭头曲线。
在一种可能的实现方式中,目标操作的类型为修改时,目标数据对象的操作请求还指示所要修改的内容。目标操作的类型为插入时,目标数据对象的操作请求还指示所要插入的内容。目标操作的类型为搜索时,目标数据对象的操作请求还指示所要搜索的内容。
在一种可能的实现方式中,如图9所示,数据中心中还包括一个管理节点,管理节点可以为数据中心中用于执行计算的节点中的某个节点,也可以是执行计算的节点之外的节点。管理节点用于管理数据中心中各节点上的数据对象的迁移处理等。如图10所示,迁移处理的流程可以如下:
步骤1001,第二节点接收目标数据对象的迁移请求,迁移请求携带有目标数据对象迁 移后的存储节点。
在本实施例中,管理节点基于数据中心中各节点的负载,确定第二节点上的负载比较多,管理节点确定将第二节点上的目标数据对象迁移至当前负载较少的节点(即目标数据对象迁移后的存储节点),或者,管理节点确定所有访问目标数据对象的节点与第二节点的通信距离比较远,管理节点确定将目标数据对象迁移至距离访问目标数据对象的节点距离比较近的节点(即目标数据对象迁移后的存储节点)。或者,管理节点通过为用户提供的接口接收到目标数据对象的迁移指示消息,该迁移指示消息用于指示将目标数据对象迁移至迁移后的存储节点。
然后管理节点可以向第二节点发送目标数据对象的迁移请求,该迁移请求中携带有目标数据对象迁移后的存储节点的标识。第二节点的通信模块可以接收管理节点发送的目标数据对象的迁移请求。第二节点的通信模块可以将该迁移请求发送至第二节点的库实例。
步骤1002,第二节点锁定目标数据对象。
在本实施例中,第二节点的库实例接收到迁移请求,解析该迁移请求获取到目标数据对象的标识,然后锁定目标数据对象。此处“锁定目标数据对象”指在解锁目标数据对象之前不能对目标数据对象进行任何访问处理。第二节点的库实例向第二节点的通信模块发送拷贝请求和迁移后的存储节点的内容,拷贝请求包括目标数据对象的内容。
步骤1003,第二节点向迁移后的存储节点发送目标数据对象的拷贝请求,拷贝请求用于指示迁移后的存储节点存储目标数据对象与迁移后的存储节点的对应关系,并存储目标数据对象与目标数据对象在迁移后的存储节点中的存储地址的对应关系。
在本实施例中,第二节点的通信模块接收拷贝请求和迁移后的存储节点的标识。第二节点的通信模块将拷贝请求发送至迁移后的存储节点的通信模块。
迁移后的存储节点接收到拷贝请求后,可以解析拷贝请求获取到目标数据对象的内容。迁移后的存储节点可以在本地的存储空间(即内存)中,确定存储目标数据对象的存储地址。然后迁移后的存储节点存储目标数据对象与该存储地址的对应关系,并且存储目标数据对象与迁移后的存储节点的对应关系。迁移后的存储节点的库实例可以向迁移后的存储节点的通信模块发送拷贝完成消息,拷贝完成消息中包括目标数据对象的标识。
步骤1004,第二节点接收迁移后的存储节点发送的拷贝完成消息,解锁并删除目标数据对象。
在本实施例中,迁移后的存储节点的通信模块向第二节点发送拷贝完成消息,第二节点的通信模块接收到迁移后的存储节点发送的拷贝完成消息后,可以将该拷贝完成消息发送至第二节点的库实例。第二节点的库实例可以解锁目标数据对象,然后在目标数据对象的目标存储地址,删除目标数据对象。第二节点的库实例可以向第二节点的通信模块发送迁移完成消息。
可选的,在步骤1004之后,第二节点向发送迁移请求的节点发送迁移完成消息。具体的,第二节点的通信模块向管理节点发送迁移完成消息。管理节点接收到迁移完成消息后,可以确定目标数据对象迁移完成。
在一种可能的实现方式中,为了保证其他节点可以正确访问目标数据对象,在步骤1004之前,还可以执行如下处理:
第二节点向其他节点发送目标数据对象的存储节点的更改消息,更改消息用于指示接收到更改消息的节点将目标数据对象对应的存储节点更换为迁移后的存储节点,其他节点为数据中心中除迁移后的存储节点和第二节点之外的节点;第二节点接收其他节点发送的更改完成消息。
在本实施例中,第二节点的库实例可以确定数据中心中除第二节点和迁移后的存储节点之外的其他节点。第二节点的库实例向第二节点的通信模块发送更改消息和其他节点的标识,更改消息中包括目标数据对象的标识和迁移后的存储节点。第二节点的通信模块向其他节点的标识指示的其他节点,发送更改消息。其他节点的通信模块接收到更改消息后,可以通过自身的库实例将自身存储的目标数据对象与第二节点的对应关系中,目标数据对象对应的第二节点更改为迁移后的存储节点。然后其他节点的库实例向其他节点的通信模块发送更改完成消息。其他节点的通信模块向第二节点发送更改完成消息。第二节点的通信模块接收其他节点发送的更改完成消息后,可以解锁目标数据对象,并删除目标数据对象。这样,后续其他节点访问目标数据对象时,可以在迁移后的存储节点中访问目标数据对象,而不是在第二节点中访问目标数据对象。
另外,为了方便理解图10的流程,如图11所示,本申请实施例还提供了第二节点与迁移后的存储节点、第一节点的消息传输路径,见图11中双箭头曲线。
在一种可能的实施方式中,目标数据对象有可能是嵌套数据对象,嵌套数据对象是指数据对象中包括多个子数据对象,且不存储在一个存储节点的数据对象。在这种情况下,对目标数据对象的目标操作的处理流程可以为,如图12所示:
步骤1201,第一节点确定对目标数据对象进行目标操作。
步骤1202,第一节点确定目标数据对象对应的存储节点为第二节点。
步骤1203,第一节点向第二节点发送目标数据对象的操作请求。
步骤1201至步骤1203的处理与步骤401至步骤403的处理完全相同,此处不再赘述。
步骤1204,第二节点接收第一节点发送的目标数据对象的操作请求。
步骤1205,第二节点在存储的目标数据对象与目标数据对象的存储节点的对应关系中,确定目标数据对象中各子数据对象对应的存储节点。
在本实施例中,在目标数据对象为嵌套数据对象,且目标操作不是创建操作时,目标数据对象与目标数据对象的存储节点的对应关系中存储有目标数据对象的各子数据对象对应的存储节点。第二节点的通信模块在存储的目标数据对象与目标数据对象的存储节点的对应关系中,查找目标数据对象中各子数据对象对应的存储节点。
步骤1206,在目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,第二节点向第三节点发送第一子数据对象的操作请求,第一子数据对象的操作请求用于指示第三节点执行第一子数据对象的操作请求指示的目标操作。
在本实施例中,第二节点的通信模块确定目标数据对象中第一子数据对象对应的存储节点为第三节点时,第二节点的通信模块可以向第三节点发送第一子数据对象的操作请求,该操作请求中包括第一子数据对象的标识。第三节点的通信模块接收到第一子数据对象的操作请求后,可以将第一子数据对象的操作请求发送给第三节点的库实例。第三节点的库实例可以在数据对象与存储地址的对应关系中,查找第一子数据对象对应的存储地址。然 后第三节点的库实例访问该存储地址,对第一子数据对象执行第一子数据对象的操作请求所指示的目标操作。然后第三节点的库实例执行完目标操作后,生成第一执行结果,向第三节点的通信模块发送第一执行结果和第二节点的标识。第三节点的通信模块向第二节点发送第一执行结果。第二节点的通信模块接收第三节点发送的第一执行结果。
此处需要说明的是,上述第三节点是数据中心中不同于第二节点的节点,那么第三节点也可以是第一节点,也可以不是第一节点。
步骤1207,在目标数据对象中第二子数据对象对应的存储节点为第二节点的情况下,第二节点确定目标数据对象中第二子数据对象在第二节点中的存储地址。
其中,第二子数据对象属于目标数据对象,且不同于第一子数据对象。在目标数据对象为嵌套数据对象时,目标数据对象与目标数据对象的存储地址的对应关系中包括有目标数据对象中存储在第二节点上的子数据对象对应的存储地址。
在本实施例中,第二节点的通信模块确定目标数据对象中的第二子数据对象对应的存储节点为第二节点的情况下,第二节点的通信模块可以向第二节点的库实例发送目标数据对象的第二子数据对象的操作请求。第二节点的库实例接收到该操作请求后,可以在存储的目标数据对象与目标数据对象的存储地址的对应关系中,确定目标数据对象的第二子数据对象对应的存储地址,即获取第二子数据对象在第二节点中的存储地址。
步骤1208,第二节点根据第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的操作。
在本实施例中,第二节点的库实例可以访问第二子数据对象在第二节点中的存储地址,对第二子数据对象执行操作请求所指示的操作,获得第二执行结果。第二节点的库实例将第二执行结果返回至第二节点的通信模块。
可选的,在步骤1208之后,第二节点的通信模块将第一执行结果和第二执行结果,返回给第一节点。第一节点的通信模块接收第一执行结果和第二执行结果。第一节点的通信模块将第一执行结果和第二执行结果返回给第一节点的库接口,第一节点的库接口将第一执行结果和第二执行结果返回给第一节点的应用程序。
这样,由于对目标数据对象的操作,是由存储目标数据对象的节点执行,所以可以降低每次访问目标数据对象的通信延时。
针对图12的流程,还提供了如下的例子:目标数据对象是一个嵌套的向量,为<向量<字符串>>(<vector<string>>),目标数据对象中每个子数据对象为向量<字符串>,假设对目标数据对象执行的操作为搜索目标数据对象中包含“字符串1(str1)=hello world”的第一个向量<字符串>,搜索时需要迭代的在目标数据对象的每个子数据对象的内部搜索str1。第一子数据对象为子数据对象1,需要在子数据对象1中运行寻找str1的操作(find(str1))。第二节点的通信模块在目标数据对象与目标数据对象的存储节点的对应关系中,确定子数据对象1对应的存储节点为第三节点。第二节点的通信模块将寻找str1的操作的请求发送给第三节点。第三节点的通信模块接收到寻找str1的操作请求,转发给第三节点的库实例,第三节点的库实例,在数据对象与存储地址的对应关系中,查找到子数据对象1对应的存储地址,在该存储地址,找到子数据对象1。第三节点的库实例对子数据对象1执行寻找str1的操作,获得第一执行结果,第三节点的通信模块返回第一执行结 果给第二节点的通信模块。而对于第二子数据对象为子数据对象2,第二节点的库实例可以在目标数据对象与目标数据对象的存储地址的对应关系中,查找到子数据对象2对应的存储地址,在该存储地址,找到子数据对象2。第二节点的库实例对子数据对象2执行寻找str1的操作,获得第二执行结果。第二节点的通信模块将第一执行结果和第二执行结果返回给第一节点的通信模块,第一节点的通信模块将第一执行结果和第二执行结果返回给第一节点的应用程序。
另外,为了方便理解图12的流程,如图13所示,本申请实施例还提供了第一节点、第二节点、第三节点的消息传输路径,见图13中双箭头曲线。
对应图13的流程,目标数据对象是嵌套数据对象,本申请实施例还提供了创建目标数据对象的过程:
第一节点的应用程序要创建目标数据对象,该应用程序可以调用库接口,指示库接口创建目标数据对象。第一节点的库接口可以确定目标数据对象对应的存储节点,若该存储节点为第二节点,则第一节点的库接口存储目标数据对象和第二节点的对应关系。第一节点的库接口将第二节点的标识、目标数据对象的内容发送给第一节点的通信模块。第一节点的通信模块接收第二节点的标识、目标数据对象的内容。第一节点的通信模块向第二节点的通信模块发送目标数据对象的创建请求。该创建请求包括目标数据对象的标识和目标数据对象的内容。第二节点的通信模块接收第一节点的通信模块发送的目标数据对象的创建请求。第二节点的通信模块将该创建请求发送至第二节点的库实例。若第二节点的存储空间仅能存储目标数据对象的部分子数据对象,则第二节点的库实例确定出的各子数据对象的存储节点有可能不是第二节点。
在第一子数据对象的存储节点为第三节点的情况下,第二节点的库实例向第二节点的通信模块发送第三节点的标识和第一子数据对象的内容,第二节点的通信模块将第一数据对象的创建请求发送至第三节点,该创建请求包括第一子数据对象的内容。第三节点的通信模块将该创建请求发送给第三节点的库实例,第三节点的库实例在本地的存储空间中确定第一子数据对象的存储地址。第三节点的库实例即将第一子数据对象存储至该存储地址,并且存储第一子数据对象与该存储地址的对应关系。然后第三节点的库实例向第三节点的通信模块发送创建完成通知,第三节点的通信模块将创建完成通知,发送至第二节点的通信模块。在第二子数据对象的存储节点为第二节点的情况下,第二节点的库实例存储第二子数据对象(该过程与前文中第二节点创建目标数据对象的过程相同,此处不再赘述)。第二节点的通信模块在目标数据对象全部创建完成后,第二节点的通信模块向第一节点的通信模块,发送创建结果。第一节点的通信模块将创建完成通知发送给第一节点的应用程序。
本申请实施例中,对目标数据对象的操作由存储目标数据对象的节点执行,不需要将大量的操作通过跨网络实现,所以可以降低操作数据对象的时延。而且可以对各种数据结构的数据对象进行操作。而且在对数据对象操作时,是通过库接口的接口函数,直接对数据对象进行处理,而不是数据对象中某个部分进行处理,可以降低访问延时。
需要说明的是,库实例可以是基于标准模板库(Standard template library,STL)封装,对外提供库接口供应用程序调用,现有应用程序无需修改和重新编译即可直接运行,所以实现难度比较低。当然库实例也可以采用其他方式封装,本申请实施例不做限定。
本申请实施例中还提供了一种操作数据对象的计算设备。图14示例性的提供了计算设备1400的一种可能的架构图。
计算设备1400包括存储器1401、处理器1402、通信接口1403以及总线1404。其中,存储器1401、处理器1402、通信接口1403通过总线1404实现彼此之间的通信连接。
存储器1401可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1401可以存储程序,当存储器1401中存储的程序被处理器1402执行时,处理器1402和通信接口1403用于执行操作数据对象的方法,例如:执行前述实施例中描述的第一节点执行的方法,或者执行前述实施例中描述的第二节点执行的方法。存储器1401还可以存储数据集合。
处理器1402可以采用通用的CPU,微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。
处理器1402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的操作数据对象的装置的部分或全部功能可以通过处理器1402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1402还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请上述实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1401,处理器1402读取存储器1401中的信息,结合其硬件完成本申请实施例的操作数据对象的装置的部分功能。
通信接口1403使用例如但不限于收发器一类的收发模块,来实现计算设备1400与其他设备或通信网络之间的通信。例如,可以通过通信接口1403获取数据集。
总线1404可包括在计算设备1400各个部件(例如,存储器1401、处理器1402、通信接口1403)之间传送信息的通路。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同 轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。

Claims (29)

  1. 一种操作数据对象的装置,其特征在于,应用于数据中心的第一节点,所述数据中心包括所述第一节点和第二节点,所述装置包括:
    应用程序,用于调用库接口,指定对目标数据对象执行目标操作;
    所述库接口,用于确定所述目标数据对象对应的存储节点为所述第二节点;
    通信模块,用于向所述第二节点发送所述目标数据对象的操作请求,所述操作请求用于指示所述第二节点对所述目标数据对象执行所述目标操作。
  2. 根据权利要求1所述的装置,其特征在于,当所述目标操作为创建操作时,所述库接口,用于根据所述数据中心中各个节点的节点亲和性、负载情况、带宽、时延或中央处理器CPU占用率中的一种或多种,确定所述目标数据对象对应的存储节点为所述第二节点;
    所述库接口,还用于存储所述目标数据对象与所述第二节点的对应关系。
  3. 根据权利要求1所述的装置,其特征在于,所述库接口,用于:
    在所述目标数据对象与所述目标数据对象的存储节点的对应关系中,确定所述目标数据对象对应的存储节点为所述第二节点。
  4. 根据权利要求1至3任一项所述的装置,其特征在于,所述目标数据对象的数据结构为向量、集合、队列中任一种。
  5. 根据权利要求1至4任一项所述的装置,其特征在于,所述目标操作的类型还包括搜索、插入、修改或删除中的一种或多种。
  6. 一种操作数据对象的装置,其特征在于,应用于数据中心的第二节点,所述数据中心包括第一节点和所述第二节点,所述装置包括:
    通信模块,用于接收所述第一节点发送的目标数据对象的操作请求;
    库实例,用于确定所述目标数据对象在所述第二节点中的目标存储地址;根据所述目标存储地址,对所述目标数据对象执行所述操作请求所指示的目标操作。
  7. 根据权利要求6所述的装置,其特征在于,当所述目标操作为创建操作时,所述库实例,用于将所述目标数据对象存储至所述目标存储地址;
    所述库实例还用于:存储所述目标数据对象与所述目标存储地址的对应关系,并存储所述目标数据对象与所述第二节点的对应关系。
  8. 根据权利要求6所述的装置,其特征在于,所述库实例,用于在所述目标数据对象与所述目标数据对象的存储地址的对应关系中,确定所述目标数据对象在所述第二节点中的目标存储地址。
  9. 根据权利要求6或8所述的装置,其特征在于,当所述目标操作的类型为删除时,所述库实例,用于:
    访问所述目标存储地址,删除所述目标数据对象;
    删除所述目标数据对象与所述目标数据对象的存储地址的对应关系;
    删除所述目标数据对象与所述目标数据对象的存储节点的对应关系。
  10. 根据权利要求9所述的装置,其特征在于,所述通信模块,还用于:
    在删除所述目标数据对象与所述目标数据对象的存储节点的对应关系之前,向所述数据中心中除所述第二节点之外的节点发送删除消息,所述删除消息用于指示接收到所述删除消息的节点删除所述目标数据对象与所述目标数据对象的存储节点的对应关系。
  11. 根据权利要求6至10任一项所述的装置,其特征在于,所述通信模块,还用于接收所述目标数据对象的迁移请求,所述迁移请求携带有所述目标数据对象迁移后的存储节点的标识;
    所述库实例,还用于锁定所述目标数据对象;
    所述通信模块,还用于向所述迁移后的存储节点发送所述目标数据对象的拷贝请求,所述拷贝请求用于指示所述迁移后的存储节点存储所述目标数据对象与所述迁移后的存储节点的对应关系,并存储所述目标数据对象与所述目标数据对象在所述迁移后的存储节点中的存储地址的对应关系;接收所述迁移后的存储节点发送的拷贝完成消息;
    所述库实例,还用于解锁并删除所述目标数据对象。
  12. 根据权利要求11所述的装置,其特征在于,所述通信模块,还用于:
    在解锁并删除所述目标数据对象之前,向其他节点发送所述目标数据对象的存储节点的更改消息,所述更改消息用于指示接收到所述更改消息的节点将所述目标数据对象对应的存储节点更换为所述迁移后的存储节点,所述其他节点为所述数据中心中除所述迁移后的存储节点和所述第二节点之外的节点;
    接收所述其他节点发送的更改完成消息。
  13. 根据权利要求6所述的装置,其特征在于,当所述目标数据对象为嵌套数据对象时,所述通信模块,还用于确定所述目标数据对象中各子数据对象对应的存储节点;在所述目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,向所述第三节点发送所述第一子数据对象的操作请求,所述第一子数据对象的操作请求用于指示所述第三节点执行所述第一子数据对象的操作请求指示的目标操作;
    所述库实例,还用于在所述目标数据对象中第二子数据对象对应的存储节点为所述第二节点的情况下,确定所述第二子数据对象在所述第二节点中的存储地址;根据所述第二子数 据对象在所述第二节点中的存储地址,对所述第二子数据对象执行所述操作请求所指示的目标操作。
  14. 根据权利要求6至13任一项所述的装置,其特征在于,所述目标数据对象的数据结构为向量、集合、队列中任一种。
  15. 一种操作数据对象的方法,其特征在于,应用于数据中心,所述数据中心包括第一节点和第二节点,所述方法包括:
    所述第一节点确定对目标数据对象执行目标操作;
    所述第一节点确定所述目标数据对象对应的存储节点为所述第二节点;
    所述第一节点向所述第二节点发送所述目标数据对象的操作请求,所述操作请求用于指示所述第二节点对所述目标数据对象执行所述目标操作。
  16. 根据权利要求15所述的方法,其特征在于,当所述目标操作为创建操作时,所述第一节点确定所述目标数据对象对应的存储节点为所述第二节点,包括:
    所述第一节点根据所述数据中心中各个节点的节点亲和性、负载情况、带宽、时延或中央处理器CPU占用率中的一种或多种,确定所述目标数据对象对应的存储节点为所述第二节点;
    所述方法还包括:所述第一节点存储所述目标数据对象与所述第二节点的对应关系。
  17. 根据权利要求15所述的方法,其特征在于,所述第一节点确定所述目标数据对象对应的存储节点为所述第二节点,包括:
    所述第一节点在所述目标数据对象与所述目标数据对象的存储节点的对应关系中,确定所述目标数据对象对应的存储节点为所述第二节点。
  18. 根据权利要求15至17任一项所述的方法,其特征在于,所述目标数据对象的数据结构为向量、集合、队列中任一种。
  19. 根据权利要求15至18任一项所述的方法,其特征在于,所述目标操作的类型还包括搜索、插入、修改或删除中的一种或多种。
  20. 一种操作数据对象的方法,其特征在于,应用于数据中心,所述数据中心包括第一节点和第二节点,所述方法包括:
    所述第二节点接收所述第一节点发送的目标数据对象的操作请求;
    所述第二节点确定所述目标数据对象在所述第二节点中的目标存储地址;
    所述第二节点根据所述目标存储地址,对所述目标数据对象执行所述操作请求所指示的目标操作。
  21. 根据权利要求20所述的方法,其特征在于,当所述目标操作为创建操作时,所述第二节点根据所述目标存储地址,对所述目标数据对象执行所述操作请求所指示的目标操作,包括:
    将所述目标数据对象存储至所述目标存储地址;
    所述方法还包括:所述第二节点存储所述目标数据对象与所述目标存储地址的对应关系,并存储所述目标数据对象与所述第二节点的对应关系。
  22. 根据权利要求19所述的方法,其特征在于,所述第二节点确定所述目标数据对象在所述第二节点中的目标存储地址,包括:
    所述第二节点在所述目标数据对象与所述目标数据对象的存储地址的对应关系,确定所述目标数据对象在所述第二节点中的目标存储地址。
  23. 根据权利要求20或22所述的方法,其特征在于,当所述目标操作的类型为删除时,所述根据所述目标存储地址,对所述目标数据对象执行所述操作请求所指示的操作,包括:
    所述第二节点访问所述目标存储地址,删除所述目标数据对象;
    所述第二节点删除所述目标数据对象与所述目标数据对象的存储地址的对应关系;
    所述第二节点删除所述目标数据对象与所述目标数据对象的存储节点的对应关系。
  24. 根据权利要求23所述的方法,其特征在于,在删除所述目标数据对象与所述目标数据对象的存储节点的对应关系之前,所述方法还包括:
    所述第二节点向所述数据中心中除所述第二节点之外的节点发送删除消息,所述删除消息用于指示接收到所述删除消息的节点删除所述目标数据对象与所述目标数据对象的存储节点的对应关系。
  25. 根据权利要求20至24任一项所述的方法,其特征在于,所述方法还包括:
    所述第二节点接收所述目标数据对象的迁移请求,所述迁移请求携带有所述目标数据对象迁移后的存储节点的标识;
    所述第二节点锁定所述目标数据对象;
    所述第二节点向所述迁移后的存储节点发送所述目标数据对象的拷贝请求,所述拷贝请求用于指示所述迁移后的存储节点存储所述目标数据对象与所述迁移后的存储节点的对应关系,并存储所述目标数据对象与所述目标数据对象在所述迁移后的存储节点中的存储地址的对应关系;
    所述第二节点接收所述迁移后的存储节点发送的拷贝完成消息,解锁并删除所述目标数据对象。
  26. 根据权利要求25所述的方法,其特征在于,所述解锁并删除所述目标数据对象之前,还包括:
    所述第二节点向其他节点发送所述目标数据对象的存储节点的更改消息,所述更改消息用于指示接收到所述更改消息的节点将所述目标数据对象对应的存储节点更换为所述迁移后的存储节点,所述其他节点为所述数据中心中除所述迁移后的存储节点和所述第二节点之外的节点;
    所述第二节点接收所述其他节点发送的更改完成消息。
  27. 根据权利要求20所述的方法,其特征在于,当所述目标数据对象为嵌套数据对象时,所述方法还包括:
    所述第二节点确定所述目标数据对象中各子数据对象对应的存储节点;
    在所述目标数据对象中第一子数据对象对应的存储节点为第三节点的情况下,所述第二节点向所述第三节点发送所述第一子数据对象的操作请求,所述第一子数据对象的操作请求用于指示所述第三节点执行所述第一子数据对象的操作请求指示的目标操作;
    在所述目标数据对象中第二子数据对象对应的存储节点为所述第二节点的情况下,所述第二节点确定所述第二子数据对象在所述第二节点中的存储地址;
    所述第二节点根据所述第二子数据对象在所述第二节点中的存储地址,对所述第二子数据对象执行所述操作请求所指示的目标操作。
  28. 一种操作数据对象的计算设备,其特征在于,所述计算设备包括处理器和存储器,其中:
    所述存储器中存储有计算机指令;
    所述处理器执行所述计算机指令,以使所述计算设备执行所述权利要求15-19任一项权利要求所述的方法,或者,以使所述计算设备执行所述权利要求20-27任一项权利要求所述的方法。
  29. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机可读存储介质中的计算机指令被计算设备执行时,使得所述计算设备执行所述权利要求15-19任一项权利要求所述的方法,或者使得所述计算设备执行所述权利要求20-27任一项权利要求所述的方法。
PCT/CN2021/091403 2020-05-27 2021-04-30 操作数据对象的方法、装置、计算设备和存储介质 Ceased WO2021238583A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21814314.7A EP4137958A4 (en) 2020-05-27 2021-04-30 METHOD AND APPARATUS FOR OPERATING DATA OBJECT, AND COMPUTER DEVICE AND STORAGE MEDIUM
US17/992,150 US20230081889A1 (en) 2020-05-27 2022-11-22 Method, apparatus, and computing device for operating data object, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010464045.XA CN113742050B (zh) 2020-05-27 2020-05-27 操作数据对象的方法、装置、计算设备和存储介质
CN202010464045.X 2020-05-27

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/992,150 Continuation US20230081889A1 (en) 2020-05-27 2022-11-22 Method, apparatus, and computing device for operating data object, and storage medium

Publications (1)

Publication Number Publication Date
WO2021238583A1 true WO2021238583A1 (zh) 2021-12-02

Family

ID=78723910

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/091403 Ceased WO2021238583A1 (zh) 2020-05-27 2021-04-30 操作数据对象的方法、装置、计算设备和存储介质

Country Status (4)

Country Link
US (1) US20230081889A1 (zh)
EP (1) EP4137958A4 (zh)
CN (1) CN113742050B (zh)
WO (1) WO2021238583A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11546422B2 (en) * 2021-01-08 2023-01-03 Capital One Services, Llc Dynamic management of locations of modules of a platform hosted by a distributed system
CN114218169B (zh) * 2021-12-23 2025-05-30 杭州趣链科技有限公司 文件操作方法、分布式存储系统、电子装置和存储介质
CN119397063A (zh) * 2024-10-24 2025-02-07 广州鼎甲计算机科技有限公司 对象处理方法、装置、计算机设备、可读存储介质和程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015383A1 (en) * 2003-07-15 2005-01-20 Microsoft Corporation Method and system for accessing database objects in polyarchical relationships using data path expressions
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN105338118A (zh) * 2015-11-30 2016-02-17 上海斐讯数据通信技术有限公司 分布式存储系统
CN106790304A (zh) * 2017-03-24 2017-05-31 联想(北京)有限公司 数据访问方法、装置、节点以及服务器集群
WO2019231527A1 (en) * 2018-06-02 2019-12-05 Western Digital Technologies, Inc. Versioning validation for data transfer between heterogeneous data stores

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137217A1 (zh) * 2017-01-25 2018-08-02 华为技术有限公司 一种数据处理的系统、方法及对应装置
CN115344551A (zh) * 2017-06-26 2022-11-15 华为技术有限公司 一种数据迁移的方法以及数据节点
US10579449B1 (en) * 2018-11-02 2020-03-03 Dell Products, L.P. Message queue architectures framework converter
CN110727499B (zh) * 2019-09-18 2024-05-28 平安科技(深圳)有限公司 资源数据获取的方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015383A1 (en) * 2003-07-15 2005-01-20 Microsoft Corporation Method and system for accessing database objects in polyarchical relationships using data path expressions
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN105338118A (zh) * 2015-11-30 2016-02-17 上海斐讯数据通信技术有限公司 分布式存储系统
CN106790304A (zh) * 2017-03-24 2017-05-31 联想(北京)有限公司 数据访问方法、装置、节点以及服务器集群
WO2019231527A1 (en) * 2018-06-02 2019-12-05 Western Digital Technologies, Inc. Versioning validation for data transfer between heterogeneous data stores

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4137958A4

Also Published As

Publication number Publication date
EP4137958A1 (en) 2023-02-22
EP4137958A4 (en) 2023-11-01
US20230081889A1 (en) 2023-03-16
CN113742050B (zh) 2023-03-03
CN113742050A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
JP4297790B2 (ja) 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ
JP4613023B2 (ja) プロトコル独立型クライアント側キャッシュ(protocol−independentclient−sidecaching)システムおよび方法
US20230081889A1 (en) Method, apparatus, and computing device for operating data object, and storage medium
CN104252501B (zh) 一种执行数据库操作命令的计算设备和方法
US10817312B2 (en) Programming model for performant computing in document-oriented storage services
US20230350676A1 (en) Tensor Processing Method, Apparatus, and Device, and Computer-Readable Storage Medium
CN106095698A (zh) 面向对象的缓存写入、读取方法及装置
CN116028455A (zh) 一种数据处理方法、装置、存储介质及电子设备
CN113541987B (zh) 一种更新配置数据的方法和装置
CN112241398A (zh) 一种数据迁移方法和系统
WO2023124422A1 (zh) 一种数据读写的控制方法及电子设备
WO2025158261A1 (zh) 请求处理方法以及装置、任务执行方法以及装置
US20260079908A1 (en) Method, apparatus, and system for obtaining range lock, and computer-readable storage medium
CN108021339A (zh) 一种磁盘读写的方法、设备以及计算机可读存储介质
CN116455616B (zh) 针对容器漂移的网络安全控制策略同步的方法、系统、设备及介质
CN103150225A (zh) 基于应用级代理的对象并行存储系统磁盘满异常容错方法
CN100559778C (zh) 用于对应用组件的接口的方法和系统
CN112083914B (zh) 实现对象模型嵌入式操作系统软总线的方法及系统
WO2025055979A1 (zh) 一种数据处理的方法、相应装置及云系统
CN110351107A (zh) 配置管理方法及装置
WO2023125836A1 (zh) 目标数据库的高维向量搜索方法及相关设备
CN117176398A (zh) 一种数据传输方法、系统、存储介质及设备
WO2023143061A1 (zh) 一种数据访问方法及其数据访问系统
CN104573061B (zh) 一种支持扩展功能的虚拟文件系统装置和方法
CN116431590A (zh) 一种数据处理的方法及相关设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21814314

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021814314

Country of ref document: EP

Effective date: 20221115

NENP Non-entry into the national phase

Ref country code: DE