WO2016149880A1 - 数据读取方法、设备和系统 - Google Patents

数据读取方法、设备和系统 Download PDF

Info

Publication number
WO2016149880A1
WO2016149880A1 PCT/CN2015/074755 CN2015074755W WO2016149880A1 WO 2016149880 A1 WO2016149880 A1 WO 2016149880A1 CN 2015074755 W CN2015074755 W CN 2015074755W WO 2016149880 A1 WO2016149880 A1 WO 2016149880A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
node
control node
identifier
control
Prior art date
Application number
PCT/CN2015/074755
Other languages
English (en)
French (fr)
Inventor
刘洪宽
钟来军
谈江
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2015/074755 priority Critical patent/WO2016149880A1/zh
Priority to EP15885819.1A priority patent/EP3260987B1/en
Priority to CN201580001270.7A priority patent/CN107077429B/zh
Publication of WO2016149880A1 publication Critical patent/WO2016149880A1/zh
Priority to US15/708,815 priority patent/US10114577B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Definitions

  • Embodiments of the present invention relate to the field of storage, and in particular, to a data reading method, device, and system.
  • a plurality of central processing units (CPUs) in the server are connected on the same bus, and each processor node (that is, the above-mentioned CPU) is connected to a cache.
  • the cache node connected to the processor node ie, the Cache described above
  • the first data obtained by mirroring is cached in each cache node; when the first data buffered by a cache node is updated by the processor node, and the first data cached by other cache nodes is not modified in time,
  • the bus monitoring protocol provided by the prior art (for example, MSI (Modified, Shared or Invalid) protocol, MESI (Modified, Exclusive, Shared or Invalid), Chinese abbreviation: modified, exclusive, shared or invalid) Protocol and MOESI (Modified, Owned, Exclusive, Shared or Invalid, Chinese abbreviation: modified, own, exclusive, shared or invalid) protocol to use broadcast data request and bus arbitration for data request, can solve the problem of mounting on the same bus Cache coherency issues with multiple cache nodes.
  • the bus snooping protocol relies on the full order nature of the shared bus when making data requests. Only one processor can be occupied at a time, and the communication delay is large. Poor scalability.
  • the monitoring protocol uses a system-wide broadcast mode when performing Cache status update, resulting in excessive bus communication load and large power consumption.
  • the listening-based protocol is not applicable to the message network, because the message network is unordered, and it cannot guarantee similar bus sequence characteristics and atomic operations, and the message network cannot perform real-time monitoring.
  • the broadcast mechanism will also lead to communication delay. It is larger.
  • the embodiments of the present invention provide a data reading method, device, and system, which implement data consistency between storage nodes in a message network.
  • an embodiment of the present invention provides a data reading method, where the data reading method includes:
  • the first control node If the data status identifier of the first data in the first storage node is a valid identifier, the first control node reads the first data from the first storage node, and the first storage node is The data state identifier of the first data is changed from the valid identifier to the indeterminate identifier, and the destination control node of the first data in the first storage node is recorded as the second control node, and the read location is sent. Decoding first data to the data switching device to cause the data switching device to forward the read first data to the second control node, the valid identifier indicating the first on the first storage node A data is available, the uncertainty identifier indicating that the first control data is provided by the destination control node;
  • the node group includes a storage node in which the first data is stored in a multi-processor network, and at most one of the storage nodes stores the first data in which the data state identifier is a valid identifier.
  • the storage node in the node group stores the data state identifier of the first data stored when the first data is stored is changed to a valid identifier;
  • the node group further includes the node group a control node connected to the storage node; the control node is configured to perform read and write control on the connected storage node, and set a data state identifier to the first data stored by the connected storage node;
  • the first control node is a control node in the node group, the first storage section
  • the point is a storage node in the node group that is connected to the first control node.
  • the first control node receives the read message forwarded by the data switching device, specifically:
  • the first control node receives the read message multicasted by the data switching device to other control nodes other than the second control node in the node group.
  • the method further includes:
  • the first control node when receiving the notification message forwarded by the data switching device, sets the data state identifier of the first data in the first storage node to the invalid identifier by using the uncertainty identifier.
  • the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the second control node to the data switching device when the following conditions are met, where the condition is: the second control node receives the location sent by the first control node After the first data is cached, and after the second storage node is cached, the data state identifier of the first data in the second storage node is set as a valid identifier.
  • the method further includes:
  • the first control node uses the read message to the first data in the first storage node. And controlling, by the control node, the destination control node to read the first data from the destination storage node and read the data when the data state identifier of the first data in the connected destination storage node is a valid identifier Transmitting the first data to the data switching device, and forwarding, by the data switching device, the read first data to the second control node.
  • the first control node uses the read message to the first data in the first storage node Control node forwarding, specifically:
  • the method further includes:
  • the first control node when receiving the notification message forwarded by the data switching device, sets the data state identifier of the first data in the first storage node to the invalid identifier by using the uncertainty identifier.
  • the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the destination control node to the data switching device when the following conditions are met, where the condition is that the destination control node receives the first message sent by the first control node.
  • the data state identifier of the first data in the destination storage node is set as a valid identifier.
  • condition that the read message is sent by the second control node to the data switching device includes:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • the condition that the read message is sent by the second control node to the data switching device is: the second control node receives the writeback message;
  • the storage node in the node group includes: a memory node that stores the first data in a multi-processor network, and a cache node that stores mirror data of the first data in the multi-processor network;
  • the control node in the node group includes: a processor node connected to the cache node bus in the node group, a controller connected to the memory node; and the second control node is a controller in the node group.
  • the first control node is a processor node that sends the writeback message in the node group; the writeback message is first by a processor node in the node group in a cache node connected by a bus
  • the data status of the data is identified as a valid identifier, and needs to be written back to the controller in the node group via the data exchange device when the first data is written back to the memory node in the node group.
  • an embodiment of the present invention provides a first control node, where the first control node includes:
  • a message receiving unit which receives a read message forwarded by the data exchange device, where the read message is used Specifying to read the first data, where the read message is sent by the second control node to the data switching device, and then forwarded by the data switching device to other control nodes other than the second control node in the node group;
  • a response unit configured to: if the data state identifier of the first data in the first storage node is a valid identifier, read the first data from the first storage node, and use the first storage node The data state identifier of the first data is changed from the valid identifier to the indeterminate identifier, and the destination control node of the first data in the first storage node is recorded as the second control node, and the read Transmitting, by the data exchange device, the first data to the second control node, the valid data indicating the first on the first storage node Data is available, the uncertainty identifier indicating that the first control data is currently provided by the destination control node;
  • the node group includes a storage node in which the first data is stored in the multiprocessor network, and at most one of the node nodes stores the first data in which the data state identifier is a valid identifier. And storing, by the storage node in the node group, the data state identifier of the first data stored by the storage node when the first data is stored is changed to a valid identifier; the node group further includes the node group a control node connected to the storage node; the control node is configured to perform read and write control on the connected storage node, and includes setting, by the first storage data stored in the connected storage node, a data state identifier; the first control The node is a control node in the node group, and the first storage node is a storage node in the node group that is connected to the first control node.
  • the message receiving unit receives a read message forwarded by the data switching device, specifically:
  • the message receiving unit is configured to be, by the data switching device, the read message multicasted by the other control node except the second control node in the node group.
  • the response unit is further configured to: when receiving the notification message forwarded by the data switching device, Setting a data state identifier of the first data in the first storage node by the indeterminate identifier as an invalid identifier, where the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the second control node to the The data exchange device sends, the condition is: the second control node receives the first data sent by the first control node, and after the second storage node caches, the second storage
  • the data status identifier of the first data in the node is set as a valid identifier.
  • the response unit is further configured to: if data of the first data in the first storage node And the status identifier is an indeterminate identifier, and the read message is forwarded to the destination control node of the first data in the first storage node, so that the destination control node is in the connected destination storage node. Reading, when the data status of a data is a valid identifier, reading the first data from the destination storage node and transmitting the read first data to the data switching device, and forwarding, by the data switching device Reading the first data to the second control node.
  • the response unit is further configured to: send the read message to the first data in the first storage node
  • the destination control node forwards, specifically:
  • the response unit is configured to acquire destination control node information of the first data in the first storage node, generate a unicast instruction directed to the destination control node according to the destination control node information, and exchange the data with the data
  • the device transmits the read message carrying the unicast command, such that the data switching device unicasts the read message to the destination control node upon detecting the unicast command.
  • the response unit is further configured to receive the data by When the notification message is forwarded by the device, the data state identifier of the first data in the first storage node is set as an invalid identifier by the indeterminate identifier, and the invalid identifier indicates the location in the first storage node.
  • the first data is not available;
  • the notification message is sent by the destination control node to the data switching device when the following conditions are met, where the condition is that the destination control node receives the first message sent by the first control node.
  • the data state identifier of the first data in the destination storage node is set as a valid identifier.
  • the read message is sent by the second control node to the data exchange device
  • the pieces include:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • condition that the read message is sent by the second control node to the data switching device is: the second control node Received a writeback message;
  • the storage node in the node group includes: a memory node storing the first data in the multiprocessor network, and a cache node in the multiprocessor network for storing mirror data of the first data
  • the control node in the node group includes: a processor node connected to a cache node bus in the node group, a controller connected to the memory node; and the second control node is in the node group a controller, the first control node is a processor node in the node group that sends the writeback message; the writeback message is performed by a processor node in the node group in a cache node connected to the bus
  • the data status of the first data is identified as a valid identifier, and needs to be sent back to the controller in the node group via the data switching device when the first data is written back to the memory node in the node group.
  • an embodiment of the present invention provides a first control node, where the first control node includes a processor, a memory, and a network interface, where the processor passes the bus and the memory and the network interface respectively. connection;
  • the memory is configured to store a computer execution instruction, when the first control node is in operation, the processor reads the computer execution instruction stored in the memory to perform any of the above first aspect or the first aspect A method of reading data in a possible implementation.
  • an embodiment of the present invention provides a data processing system, where the data processing system is applied to a multi-processor network, where the data processing system includes a storage node in which a first data is stored in a multi-processor network.
  • a control node connected to the storage node, one or more data exchange devices, and two or two of the control nodes are communicatively connected by the data exchange device;
  • the node group is processed by the storage node in the data processing system and the data processing a control node in the system, wherein at least one of the storage nodes stores the first data with a data status identifier as a valid identifier, and the storage node in the node group stores the first available
  • the data state identifier of the first data stored therein is changed to a valid identifier;
  • the control node is used to connect to the connected storage
  • the node performs read and write control, including setting, by the first storage data stored in the connected storage node, a data state identifier;
  • the second control node is configured to send a read message to the data switching device, where the read message is used to specify to read the first data;
  • the data exchange device when receiving the read message sent by the second control node, forwarding the read message to another control node other than the second control node in the node group;
  • the first control node is configured to: when receiving the read message forwarded by the data switching device, if the data state identifier of the first data in the first storage node is a valid identifier, Reading, by the storage node, the first data, and changing, by the valid identifier, the data status identifier of the first data in the first storage node to an indeterminate identifier, where the first storage node is a destination control node of a data recorded as the second control node, transmitting the read first data to the data exchange device, wherein the valid identifier indicates the first on the first storage node Data is available, the uncertainty identifier indicating that the first control data is currently provided by the destination control node;
  • the data exchange device is further configured to forward the read the first data to the second control node.
  • the data switching device when receiving the read message sent by the second control node, removes the The other control nodes other than the second control node forward the read message specifically as follows:
  • the data exchange device is configured to receive the read message that is sent by the second control node and that carries a multicast instruction, and remove the second from the node group when the multicast command is detected.
  • the control node other than the control node multicasts the read message.
  • the second control node is further configured to receive, by the first control node, the The first data, and after the second storage node is cached, the second storage node Setting a data status identifier of a data as a valid identifier, and sending a notification message to the data switching device to the first control node;
  • the data exchange device is further configured to forward the notification message to the first control node
  • the first control node is further configured to: when receiving the notification message forwarded by the data switching device, set a data state identifier of the first data in the first storage node by the uncertainty identifier An invalid identifier indicating that the first data in the first storage node is unavailable.
  • the first control node is further configured to receive the read that is forwarded by the data switching device
  • the message is fetched, if the data status of the first data in the first storage node is identified as an indeterminate identifier, the read message is sent to the destination control node of the first data in the first storage node. Forwarding, so that the destination control node reads the first data from the destination storage node and reads the first data when the data state identifier of the first data in the connected destination storage node is a valid identifier
  • a data is sent to the data switching device, and the read first data is forwarded by the data switching device to the second control node.
  • the first control node is configured to send the read message to the first one of the first storage nodes
  • the destination of the data is forwarded by the control node, including:
  • the first control node is configured to acquire destination control node information of the first data in the first storage node, and generate a unicast instruction directed to the destination control node according to the destination control node information, to the Transmitting, by the data exchange device, the read message carrying the unicast instruction, so that the data switching device is single to the destination control node when the unicast instruction is detected and the unicast instruction is directed to the destination control node Broadcast the read message.
  • the first control node is further configured to receive the When the notification message is forwarded by the data exchange device, the data state identifier of the first data in the first storage node is set as an invalid identifier by the indeterminate identifier, and the invalid identifier indicates that the first storage node is in the first storage node.
  • the first data is not available;
  • the notification message is sent by the destination control node to the The data exchange device sends the condition that the destination control node receives the first data sent by the first control node and caches the destination storage node, and then the destination storage node
  • the data status identifier of the first data is set as a valid identifier.
  • the sending the message by the second control node to the data switching device includes:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • the condition that the read message is sent by the second control node to the data switching device is: the second control node receives the writeback message;
  • the storage node in the node group includes: a memory node storing the first data in the multiprocessor network, and a cache node in the multiprocessor network for storing mirror data of the first data
  • the control node in the node group includes: a processor node connected to a cache node bus in the node group, a controller connected to the memory node; and the second control node is in the node group a controller, the first control node is a processor node in the node group that sends the writeback message; the writeback message is performed by a processor node in the node group in a cache node connected to the bus
  • the data status of the first data is identified as a valid identifier, and needs to be sent back to the controller in the node group via the data switching device when the first data is written back to the memory node in the node group.
  • a data state identifier is set for storing the first data in each of the storage nodes, and the control node connected to the storage node manages the data state.
  • the identifier ensures the data consistency of the first data, so that the first data read by the control node between the control nodes in the node group is currently the latest.
  • FIG. 1A is a schematic diagram of a network topology structure of an application scenario of a data reading method
  • FIG. 1B is a schematic diagram showing the logical structure of the data processing device in FIG. 1A;
  • FIG. 1C is a schematic diagram showing the logical structure of the memory device in FIG. 1A;
  • FIG. 2 is an exemplary flowchart of a data reading method given from the perspective of a first control node
  • FIG. 3 is an alternative exemplary flowchart of the data reading method based on FIG. 2;
  • FIG. 4 is an alternative exemplary flowchart of the data reading method based on FIG. 3;
  • Figure 5 is an alternative exemplary flow chart for step A401 of Figure 4.
  • FIG. 6 is an alternative exemplary flowchart of the data reading method based on FIG. 6;
  • FIG. 7 is a schematic diagram of a logical structure provided by a first control node 700 according to an embodiment of the invention.
  • FIG. 8 is a schematic structural diagram of hardware provided by a first control node 800 according to an embodiment of the invention.
  • FIG. 9 is a schematic diagram showing the logical structure of a system provided by a data processing system 900 according to an embodiment of the invention.
  • the storage node has a valid identifier, which means that the data status identifier of the first data in the storage node is a valid identifier; the storage node has an indeterminate identifier, which means that the data status identifier of the first data in the storage node is uncertain. The storage node has an invalid identifier, which means that the data status identifier of the first data in the storage node is an invalid identifier.
  • the cache node has a valid identifier, which means that the data status identifier of the first data in the cache node is a valid identifier; the cache node has an indeterminate identifier, which means that the data status identifier of the first data in the cache node is The indeterminate identifier; the cache node has an invalid identifier, which means that the data status identifier of the first data in the cache node is an invalid identifier.
  • the memory node has a valid identifier, which means that the data status identifier of the first data in the memory node is a valid identifier; the memory node has an indeterminate identifier, which means that the data status identifier of the first data in the memory node is Uncertain identifier; the memory node has an invalid identifier, which means that the data status identifier of the first data in the memory node is an invalid identifier.
  • the first storage node has a valid identifier, which means that the data state identifier of the first data in the first storage node is a valid identifier; the first storage node has an indeterminate identifier, which refers to the first storage node.
  • the data status identifier of the first storage node has an invalid identifier, and the data status identifier of the first data in the first storage node is an invalid identifier.
  • the second storage node has a valid identifier, which means that the data state identifier of the first data in the second storage node is a valid identifier; the second storage node has an indeterminate identifier, which refers to the second storage node.
  • the data status of the first data is identified as an indeterminate identifier; the second storage node has an invalid identifier, which means that the data status identifier of the first data in the second storage node is an invalid identifier.
  • the destination storage node has a valid identifier, which means that the data state identifier of the first data in the destination storage node is a valid identifier; the destination storage node has an indeterminate identifier, which refers to the first data in the destination storage node.
  • the data status identifier is an indeterminate identifier; the destination storage node has an invalid identifier, which means that the data status identifier of the first data in the destination storage node is an invalid identifier.
  • the multiprocessor network 100 includes a plurality of data processing devices (including data processing device 101A and data processing device 101B), one or more data switching devices (including data exchange device 102A). And data exchange device 102B), and one or more memory devices 103, each of which may include one or more processor nodes, in addition to the manner in which the processor nodes included in the multiprocessor network 100 interact by message Data transfer is achieved; when the service is processed, the process of the service can be migrated between processor nodes included in the multiprocessor network 100.
  • the data processing device 101A is one or more, the data processing device 101A is in communication with the data exchange device 102A, and the data processing device 101A and the data exchange device 102A perform data interaction through a message, and the message interaction between the two data processing devices 101A needs to go through
  • the data exchange device 102A performs message forwarding; similarly, the data processing device 101B is one or more, the data processing device 101B is in communication with the data exchange device 102B, and the data processing device 101B and the data exchange device 102B perform data interaction through messages, two The message interaction of the data processing device 101B needs to be forwarded by the data exchange device 102B.
  • the data processing device 101A and the data processing device 101B perform data exchange by using a message, and then the data exchange device 102A and the data exchange device 102B need to perform forwarding of the message.
  • the number of data processing devices (including the data processing device 101A and the data processing device 101B) included in the multiprocessor network 100 shown in FIG. 1A is only an indication, and may be increased or decreased according to requirements during data exchange. The number of devices, but the multiprocessor network 100 includes at least two data processing devices.
  • the data processing device includes a processor node (ie, a CPU) and a cache node (ie, Cache); the processor node in the data processing device is connected to the cache node via a bus; if the data processing device includes a processor node and a cache node, the processor node in the data processing device and the cache node bus Connecting; if the data processing device includes a plurality of processor nodes and a plurality of cache nodes, the number of processor nodes and the number of cache nodes are the same, then all processor nodes included in the data processing device are in one-to-one correspondence with all cache nodes Connected by bus.
  • a processor node ie, a CPU
  • a cache node ie, Cache
  • the processor node has the ability to read data from the cache node and write data to the cache node; however, the embodiment of the present invention specifically
  • the implementation form is not limited.
  • the data processing device in the multiprocessor network 100 can be a general computer, a mobile terminal, a workstation or server, a dedicated server, etc., such as an X86 processor.
  • the data stored in the cache node of the data processing device is accessed and managed by a processor node connected to the cache node bus.
  • the processor node may cache the first data at the cache node, and set a data state identifier of the first data in the cache node according to whether the first data cached by the cache node is currently up to date; if the cache node The cached first data is not currently up to date, and an invalid identifier is set for the data state identifier of the first data in the cache node; the first data cached by the cache node is currently up to date, if the processor node does not cache the cache node
  • the first data is sent to the other processor node, and a valid identifier is set for the data state identifier of the first data in the cache node; the first data cached by the cache node is currently the latest, and the cache node is cached at the processor node.
  • an indeterminate identifier is set for the data state identifier of the first data in the cache node
  • the processor node in the data processing device is communicatively coupled to the data exchange device, such that two or two processor nodes in the multiprocessor network 100 can perform message interaction through the data exchange device; message interaction between the two processor nodes In the process, the data exchange device forwards the message between the two processor nodes.
  • the processor node reads the first data from the cache node connected to its bus, adds the read first data to the message, and adds a destination address to the message, the destination address pointing to the desired message to be sent to
  • the processor node sends the message to the data exchange device, and the data exchange device forwards the message to the processor node pointed to by the destination address according to the destination address recorded in the message, and the processor node pointed to by the destination address
  • the first data is parsed in the message.
  • the transmission of the message carrying the first data is completed by the data exchange device between the two processor nodes.
  • a processor node in the data processing device 101A triggers a read message carrying a unicast instruction and transmits the read message to the data forwarding device 102A; the data forwarding device 102A detects from the read message The unicast instruction, assuming that the unicast instruction specifies a processor node in the data processing device 101B, forwards the read message to the data forwarding device 102B, and the data forwarding device 102B forwards the read message to the data processing device 101B.
  • Processor node is assuming that the unicast instruction specifies a processor node in the data processing device 101B, forwards the read message to the data forwarding device 102B, and the data forwarding device 102B forwards the read message to the data processing device 101B.
  • the multiprocessor network 100 shown in FIG. 1A includes a data switching device 102A and a data switching device 102B; a communication connection between the data switching device 102A and the data switching device 102B; alternatively, the data switching device 102A and the data switching device 102B
  • the data exchange device 102A and the data exchange device 102B may belong to different local area networks, and the data exchange device 102A and the data exchange device 102B establish a communication connection through Ethernet (Ethernet).
  • Ethernet Ethernet
  • all data switching devices in the multiprocessor network 100 may be in the same local area network; or all data switching devices in the multiprocessor network 100 belong to multiple local area networks, and do not belong to data exchange devices of the same local area network.
  • Inter-connection via Ethernet communication between two or two processor nodes in the multi-processor network 100 is ensured by a communication connection between the data exchange devices.
  • the data switching device is implemented by using a switch. Message forwarding between the two processor nodes is performed through the switch.
  • the multiprocessor network 100 includes The data exchange device can be one or more, depending on how many data exchange devices are employed in the multiprocessor network 100, as desired. Illustrated in FIG. 1A, the multiprocessor network 100 may include only the data switching device 102A of FIG. 1A and the plurality of data processing devices 101A of FIG. 1A, without including the data switching device 102B and the data processing device 101B of FIG. 1A. The message exchanged between the processor nodes in the plurality of data processing devices 101A is forwarded by the data exchange device 102A.
  • the path may include one or more data exchange devices, that is, one or more data exchange devices are required to complete two or two.
  • Message forwarding between processor nodes. 1A, in the multiprocessor network 100 in a process in which a processor node in the data processing device 101A sends a message to a processor node in the data processing device 101B, first, the processor node in the data processing device 101A Data exchange equipment 102A sends a message, and then data exchange device 102A forwards the message to data exchange device 102B upon recognition of the desire to send the message to the processor node in data processing device 101B, and finally data exchange device 102B sends the message to data processing Processor node in device 101B.
  • the maximum number of processor nodes to which the data switching device supports direct communication connection is generally determined, as the processor in the multiprocessor network 100
  • the number of nodes increases, the number of data exchange devices needs to be increased, and the increased data exchange device establishes a communication connection with the added plurality of processor nodes, and the data exchange device and the original data exchange device that are added in the multiprocessor network 100 are added.
  • Establishing a communication connection thereby expanding the number of processor nodes in the multiprocessor network 100 by adding data exchange devices; since each processor node is connected to a cache node correspondingly, thereby increasing the number of data exchange devices
  • the method expands the number of cache nodes in the multiprocessor network 100.
  • the multiprocessor network 100 further includes a memory device 103.
  • the memory device 103 is in communication with the data switching device 102A. It should be noted that the memory device 103 is in communication with the data switching device 102A. For illustration only, for example, the memory device 103 can also be in communication with the data exchange device 102B. By analogy, there is no limitation on which memory device or which data exchange device is connected.
  • the memory device included in the multiprocessor network 100 refers to a hardware device having a storage function; specifically, the memory device includes a controller and a memory node.
  • the controller includes a processor and a memory controller; optionally, the memory device is directly electrically connected to the memory controller; optionally, the memory device, the processor and the memory controller In the memory device, the memory controller is directly electrically connected to the memory node; optionally, in the memory device, the memory controller is connected to the memory node bus.
  • the memory node is configured to store data, and the processor in the memory device controls the memory controller to read or write data to the memory node; for example, after the memory node caches the first data, the processor Whether the first data stored in the memory node is the latest data state identifier of the first data in the memory node according to the current data stored in the memory node; the first data stored in the memory node is currently the latest, if the controller does not have the memory node The stored first data is sent to the processor node, and the memory node has a valid identifier (when the first data stored in the memory node is updated to the latest data), the processor controls the memory controller to The data status of the first data in the memory node The first data stored in the memory node is currently the latest, and the processor controls the memory controller to be in the process of sending the first data stored by the memory node to the processor node.
  • the data state identifier of the first data in the memory node sets an indeterminate identifier
  • the processor node sequentially completes receiving the first data from the controller, buffering the first data in a cache node connected to the bus, and connecting the bus to the bus Sending a notification message to the controller when the data state identifier of the first data in the node is changed from the invalid identifier to the valid identifier
  • the processor of the controller controls the memory controller to control the first data in the memory node when receiving the notification message
  • the data status ID is changed from an indeterminate ID to an invalid ID.
  • the data state identifier of the first data in the memory node is an invalid identifier; if the first data stored by the memory node is currently up to date, the memory node is the first
  • the data status identifier of a data may be a valid identifier or an indeterminate identifier.
  • a controller included in the memory device is configured to perform message interaction with a processor node in the multiprocessor network 100 via the data exchange device; for example, the processor node in the node group sends a read to a controller in the memory device a message, the processor in the controller receives the read message, and in response to the read message, and sequentially executes: controlling the memory controller to read the first data from the memory node, and feeding the read first data to the node in a message manner The processor node in the group that sent the read message.
  • the memory controller included in the memory device is configured to perform a read operation/write operation on the memory node under the control of the processor of the memory device.
  • the controller in the memory device can perform message interaction with the processor node in the data processing device via the data exchange device; through the message interaction, in the data processor device
  • the processor node receives data read by the controller of the memory device from the memory node, and temporarily stores the read data in a cache node in the data processor device, and stores the memory node in the cache node.
  • the data is mirrored; thus, the processor node can access the mirrored data stored in the cache node through the bus at high speed without accessing the data in the memory.
  • the data stored in the memory node is mirrored in advance and the mirrored data is temporarily stored in a cache node connected to the processor node bus.
  • the shared memory is used as the memory device.
  • the shared memory refers to the decoupled memory group after decoupling the processor from the memory.
  • Each processor node can access the shared memory through a data exchange device, including:
  • the processor node performs message interaction with the controller of the shared memory to receive data read by the controller of the shared memory from the memory node of the shared memory;
  • the processor node interacts with the controller of the shared memory to send data to the controller of the shared memory via the interactive message to cause the data to be written.
  • each processor node when multiple processor nodes in the multiprocessor network 100 desire to access the first data, each processor node performs message communication with the controller in the memory device through the data forwarding device to store the memory node.
  • the first data is mirrored and the first data of the image is cached in a cache node connected to its bus.
  • Data is provided for the cache coherency of the first data stored in the cache node included in the multiprocessor network 100, or to achieve data consistency of the first data stored in the cache node and the memory node included in the multiprocessor network 100 Read method.
  • a node group corresponding to the first data is determined in advance, and the node group is composed of two types of nodes, including: a control node and a storage node.
  • a processor node in the multiprocessor network 100 that is expected to process the first data is added to the node group, and the added processor node belongs to a control node; correspondingly, when the processor node in the node group desires to process the first data, the first data is read from the memory device storing the first data, and the read first data is processed
  • the cache node of the node bus connection is stored (mirror the first data stored by the memory device), so the cache node connected to the processor node bus in the node group is also added to the node group, and the added cache node belongs to Storage node.
  • not only the processor node in the multiprocessor network 100 that is expected to process the first data is added to the node group as a control node, and the node is
  • a cache node connected to the processor node bus in the group is added to the node group as a storage node; a memory node storing the first data in the multiprocessor network 100 is added to the node group, and the added memory node belongs to the storage node.
  • the two types of nodes included in the node group are all related to the first data. Therefore, the processor node in the multiprocessor network 100 that does not expect to process the first data does not belong to the node group, and correspondingly, is not slowed down.
  • the cache node storing the first data ie, the cache node connected to the processor node bus that is not expected to process the first data
  • the memory device in the multiprocessor network 100, the memory device not storing the first data
  • the included controller and memory nodes do not belong to this node group.
  • the control node may perform read and write access to the first data to the storage node connected thereto, including setting an identifier for the data state identifier of the first data in the storage node, and the settable identifier includes a valid identifier, an invalid identifier, and no Determine the identity.
  • the settable identifier includes a valid identifier, an invalid identifier, and no Determine the identity. It should be emphasized that, in the embodiment of the present invention, at least one of the storage nodes in the node group has a valid identifier, and the storage node in the node group is in the storage node when the current latest first data is stored. The data status identifier of the first data is set to the valid identifier.
  • the node group in this embodiment may be a node group established to implement cache coherency of the first data, and the storage node in the node group includes the first data cached in the multi-processor network 100.
  • the node group in this embodiment may be a node group established to implement data consistency of the first data, and the storage node in the node group includes: a cache node that caches the first data in the multi-processor network 100.
  • a memory node storing the first data in the memory device; a control node in the node group: in the multiprocessor network 100, a processor node connected to the cache node bus in the node group, and a memory node in the node group Controller.
  • the control node in the node group includes a second control node, where the storage node in the node group includes: a second storage node connected to the second control node bus; and the second control node in the node group
  • the other control node includes a first control node, and the first storage node is a storage node of the node group connected to the first control node.
  • the other control nodes except the second control node in the node group do not simultaneously read the current latest first data from the node group, specifically, the second group in the node group
  • the other control nodes outside the control node do not simultaneously trigger the read message to read the current latest first data from the node group; based on the above assumption, the second control node expects to read the first data as an example to explain the present invention in detail.
  • Implementation flow of the data reading method provided by the embodiment, which is implemented according to The steps include step S101, step S102, step S103, step S104, step S105, step S106, and step S107.
  • the node table Pre-establishing and storing a node table in the data exchange device, the node table records: an address of each control node in the node group and routing information required to send a message to each control node, and the routing information record sends a message a routing path to each control node; thus, when a plurality of control nodes exchange messages through the data exchange device, the data exchange device searches for the routing information required to send the message to the control node from its stored node table;
  • Step S101 the second control node, when it is desired to read the first data, if the second storage node connected to the second control node (defining the second storage node is a cache node connected to the second control node bus) has an invalid identifier, And triggering a read message, where the read message carries a multicast instruction, the multicast instruction specifies forwarding the read message to a control node other than the second control node; and the second control node sends the group to the data exchange device
  • the read message of the broadcast instruction at this time, the identifiers of the storage nodes in the node group are respectively: the first storage node (not the second storage node connected to the second control node) has a valid identifier, except for the first identifier with a valid identifier
  • the storage node other than the storage node has an invalid identifier
  • the second storage node connected to the second control node has an invalid identifier;
  • Step S102 The data exchange device receives the read message, and when searching for the multicast instruction from the received read message, searching from the node table to forward the read message to another control node other than the second control node.
  • the required routing information is multicast according to the found routing information to other control nodes except the second control node;
  • Step S103 when the control node other than the second control node receives the read message of the multicast, it detects whether the data status identifier of the first data in the storage node connected to the control node bus is a valid identifier; A control node is taken as an example. If the first control node detects that the first storage node has a valid identifier, the first control node reads the first data (that is, the data specified by the read message) from the first storage node, and exchanges data.
  • the first data that is, the data specified by the read message
  • the device sends a response message such that the read data is fed back to the second control node via the data exchange device, the response message carrying the first data read from the first storage node; the first control node begins to send to the second control node In response to the message, the first control node changes the data status identifier of the first data in the first storage node, and changes from the valid identifier to the indeterminate identifier; the first control node sends the response message to the second control node via the data switching device.
  • the first storage node has an indeterminate identifier
  • one of the node groups has an indeterminate identifier Storage nodes other than the first storage node have invalid identifiers;
  • Step S104 the data exchange device receives the response message, and searches the node table for forwarding the response message to the routing information required by the second control node, and forwards the response message to the second control node according to the found routing information.
  • Step S105 The second control node receives the response message, parses the first data read from the first storage node from the response message, and writes the parsed first data to the second storage node, and changes the second The data state identifier of the first data in the storage node is changed from the invalid identifier to the valid identifier; when the second control node completes changing the data state identifier of the first data in the second storage node (changing from the invalid identifier to the valid identifier), The first control node feeds back the notification message; in the process that the second control node sends the notification message to the first control node via the data switching device, the second storage node has a valid identifier, and the first storage node has an indeterminate identifier, the node group A storage node other than a cache node having a valid identifier and a first storage node having an indeterminate identifier has an invalid identifier;
  • Step S106 The data exchange device receives the notification message, searches for the routing information required to forward the notification message to the first control node, and forwards the notification message to the first control node according to the found routing information.
  • Step S107 when the first control node receives the notification message, changing the data state identifier of the first data in the first storage node, and changing from the indeterminate identifier to the invalid identifier; at this time, the identifier of each storage node in the node group
  • the second storage node has a valid identifier, and the storage node other than the cache node having the valid identifier has an invalid identifier, and the first storage node has an invalid identifier.
  • the node group in this embodiment may be a node group established to implement cache coherency of the first data, where the storage node in the node group includes the first data cached in the multi-processor network 100.
  • the node group in this embodiment may be a node group established to implement data consistency of the first data, and the storage node in the node group includes: a cache node that caches the first data in the multi-processor network 100.
  • a memory node storing the first data in the memory device; a control node in the node group: in the multiprocessor network 100, and in the node group A processor node connected to the cache node bus, and a controller connected to a memory node in the node group.
  • the second control node reads the current latest first data from the node group
  • one control node other than the second control node in the node group is performing message interaction with the first control node to obtain from the first control node.
  • the current first data therefore, the first storage node in the node group has an indeterminate identifier, and the storage nodes other than the first storage node in the node group have invalid identifiers; based on the above assumption, the second control node expects to read
  • the first data is taken as an example to explain the implementation flow of the data reading method provided by the embodiment of the present invention.
  • the implementation flow sequentially includes step S201, step S202, step S203, step S204, step S205, step S206, and step S207.
  • a directory is separately established in each storage node, and the directory records: a data state identifier of the first data in the storage node, and an address of the first data and an address of the destination control node in the memory node.
  • the data status identifier of the first data in the storage node may be any one of the following, including: a valid identifier, an invalid identifier, and an indeterminate identifier.
  • the first control node sets the data status identifier of the first data in the first storage node as an indeterminate identifier.
  • the other control node when another control node performs message interaction with the first control node to acquire first data from the first storage node, the other control node is Controlling the node as a destination, and updating the address of the destination control node recorded in the directory of the storage node with the address of the other control node; and, when another control node performs message interaction with the first control node to When the storage node acquires the first data, the first control node sets the data state identifier of the first data in the first storage node as an indeterminate identifier.
  • Step S201 The second control node, when it is desired to read the first data, if the second storage node connected to the second control node has an invalid identifier, triggering a read message, where the read message carries a multicast instruction, the group
  • the broadcast instruction specifies to forward the read message to other control nodes than the second control node; the second control node sends the read message carrying the multicast instruction to the data exchange device; at this time, the identifier of each storage node in the node group Respectively, the first storage node (not the second storage node) has An indeterminate identifier, the storage node other than the first storage node having the indeterminate identifier has an invalid identifier, and the second storage node has an invalid identifier;
  • Step S202 The data exchange device receives the read message, and when searching for the multicast instruction from the received read message, searching from the node table to forward the read message to another control node other than the second control node.
  • the required routing information is multicast according to the found routing information to other control nodes except the second control node;
  • Step S203 when the control node other than the second control node receives the read message of the multicast, it detects whether the identifier of the storage node connected to the control node bus is a valid identifier or an indeterminate identifier; When the node detects that the first storage node has an indeterminate identifier, triggering a read message, where the read message carries a unicast instruction; the first control node searches for an address of the destination control node recorded in a directory of the first storage node, Sending, by the data forwarding device, a read message carrying a unicast instruction to the destination control node according to the destination control node;
  • Step S204 The data exchange device receives the read message, and finds, from the node table, the routing information required to forward the read message to the destination control node when the unicast instruction is received from the received read message, according to the search.
  • the routing information to the destination control node unicasts the read message
  • Step S205 When receiving the unicast read message, the destination control node waits for the first data to be received from the first control node, the first data to be cached in the destination storage node, and the data of the first data in the destination storage node.
  • the status identifier is set to a valid identifier by the invalid identifier.
  • the data exchange device feeds back the notification message to the first control node; the destination control node is After the first control node feeds back the notification message, the response message is read, the data specified by the message (ie, the first data) is read from the destination storage node, and a response message is generated, where the response message carries the specified message.
  • the data exchange device feeds back the response message to the second control node, and when the response message is started, the data state identifier of the first data in the destination storage node is changed from the valid identifier to the indeterminate identifier; at this time, the destination control node
  • the destination storage node During the process of sending the notification message to the first control node by the data exchange device, the destination storage node has A valid identifier, the first storage node has an indeterminate identifier, and the storage node other than the destination storage node having the valid identifier and the first storage node having the indeterminate identifier has an invalid identifier; the data is controlled by the destination control node.
  • the destination storage node has an indeterminate identifier, and the node group includes A storage node other than the storage node and the destination storage node have invalid identifiers;
  • Step S205 The data exchange device sequentially receives the notification message and the response message, searches for the routing information required to forward the notification message to the first control node from the node table, and forwards the notification message to the first control node according to the searched routing information. And searching, from the node table, routing information required to forward the response message to the second control node, and forwarding the response message to the second control node according to the found routing information;
  • Step S206 When receiving the notification message sent by the destination control node, the first control node changes the data state identifier of the first data in the first storage node, and changes from the indeterminate identifier to the invalid identifier.
  • Step S207 When receiving the response message, the second control node parses the first data read from the destination storage node from the response message, and caches the parsed first data in the second storage node to complete the first Changing the data state identifier of the first data in the second storage node (changed from the invalid identifier to the valid identifier) when the data is cached; the second control node completes changing the data state identifier of the first data in the second storage node (changed by the invalid identifier) When the identifier is valid, the notification message is fed back to the destination control node; in the process that the second control node sends the notification message to the destination control node via the data exchange device, the second storage node has a valid identifier, and the destination storage node has An indeterminate identifier, the storage node other than a second storage node having a valid identifier and a destination storage node having an indeterminate identifier in the node group have an invalid identifier;
  • Step S208 The data exchange device receives the notification message, searches for the routing information required to forward the notification message to the destination control node, and forwards the notification message to the destination control node according to the found routing information.
  • Step S209 The destination control node, when receiving the notification message, changes the data state identifier of the first data in the destination storage node, and changes from the indeterminate identifier to the invalid identifier; at this time, the identifiers of the storage nodes in the node group are respectively The second storage node has a valid identifier, and the storage node other than the second storage node having the valid identifier has an invalid identifier, and the destination storage node has an invalid identifier.
  • the node group in this embodiment may be a node group established to implement cache coherency of the first data, and the storage node in the node group includes the multi-processor network 100.
  • the node group in this embodiment may be a node group established to implement data consistency of the first data, and the storage node in the node group includes: a cache node that caches the first data in the multi-processor network 100.
  • a memory node storing the first data in the memory device; a control node in the node group: in the multiprocessor network 100, a processor node connected to the cache node bus in the node group, and a memory node in the node group Controller.
  • the second control node reads the current latest first data from the node group
  • one control node other than the second control node in the node group is performing message interaction with the second control node to obtain from the second control node.
  • the current first data therefore, the second storage node in the node group has an indeterminate identifier, and the storage nodes other than the second storage node in the node group have invalid identifiers; based on the above assumption, the second control node expects to read
  • the first data is taken as an example to explain the implementation flow of the data reading method provided by the embodiment of the present invention.
  • the implementation flow sequentially includes step S301, step S302, step S303, step S304, step S305, step S306, and step S307.
  • a directory is separately established in each storage node, and the directory records: a data state identifier of the first data in the storage node, and an address of the first data and an address of the destination control node in the memory node.
  • the data status identifier of the first data in the storage node may be any one of the following, including: a valid identifier, an invalid identifier, and an indeterminate identifier.
  • the second control node sets the data status identifier of the first data in the second storage node as an indeterminate identifier.
  • the other control node when another control node performs message interaction with the control node connected to the storage node to acquire the first data from the storage node, the other control node is used as the destination control node, and The address of the other control node updates the address of the destination control node recorded in the directory of the storage node; and, when another control node performs message interaction with the control node to acquire the first data from the storage node, The control node sets the data status identifier of the first data in the storage node connected thereto as an indeterminate identifier.
  • Step S301 the second control node, when it is desired to read the first data, if the second storage node has If there is an indeterminate identifier, triggering a read message, the read message carrying a unicast instruction; searching for an address of the destination control node recorded in a directory of the second storage node, and controlling the address of the node according to the destination by the data forwarding device Controlling the node to the destination; at this time, the identifiers of the storage nodes in the node group are respectively, the second storage node has an indeterminate identifier, and if the destination control node does not complete receiving the first data, except for the second storage node in the node group Other storage nodes have invalid identifiers;
  • Step S302 The data exchange device receives the read message, and finds, from the node table, the routing information required to forward the read message to the destination control node when the unicast instruction is received from the received read message, according to the search.
  • the routing information to the destination control node unicasts the read message
  • Step S303 When receiving the unicast read message, the destination control node waits for the first data to be received from the second control node, the first data to be cached in the destination storage node, and the data of the first data in the destination storage node.
  • the status identifier is set to be a valid identifier by the invalid identifier, and the destination control node updates the first data in the destination storage node; when the data status identifier of the first data in the destination storage node is set to the valid identifier by the invalid identifier, the data exchange device
  • the second control node feeds back the notification message; after the feedback to the second control node, the destination control node responds to the read message of the second control node, and reads the data specified by the message from the destination storage node (ie, the updated a data), and generating a response message, the response message carrying the data specified by the read message, feeding back the response message to the second controller node via the data exchange device, and starting the transmission of the response message, the first of
  • the destination storage node In the process of the switching device sending the notification message to the second control node, the destination storage node has a valid identifier, and the second storage node has an indeterminate identifier, and the node group has a destination storage node with a valid identifier and an uncertain identifier.
  • the storage nodes other than the second storage node each have an invalid identifier; in the process that the destination control node sends the response message to the second control node via the data exchange device, the destination storage node has an indeterminate identifier, and the second storage node has an indeterminate identifier.
  • Step S304 The data exchange device sequentially receives the notification message and the response message, and searches for the routing information required to forward the notification message to the second control node from the node table, and sequentially forwards the routing information to the second control node according to the found routing information. a notification message and the response message;
  • Step S305 The second control node first receives the notification message sent by the destination control node. And setting the data status identifier of the first data in the second storage node to the invalid identifier by the indeterminate identifier; and when receiving the response message, parsing the first data read from the destination storage node from the response message, and The parsed first data is cached in the second storage node, and the data state identifier of the first data in the second storage node is changed when the first data is cached, and the invalid identifier is changed to a valid identifier; the second control node completes the change second.
  • the notification message is fed back to the destination control node; and the second control node sends the notification message to the destination control node via the data exchange device
  • the second storage node has a valid identifier, and the destination storage node has an indeterminate identifier, and the storage node other than the second storage node having the valid identifier and the destination storage node having the indeterminate identifier has an invalid identifier;
  • Step S306 the data exchange device receives the notification message, and searches for the routing information required to forward the notification message to the destination control node from the node table, and forwards the notification message to the destination control node according to the found routing information.
  • Step S307 The destination control node, when receiving the notification message, changes the data state identifier of the first data in the destination storage node, and changes from the indeterminate identifier to the invalid identifier; at this time, the identifiers of the storage nodes in the node group are respectively The second storage node has a valid identifier, and the storage node other than the second storage node having the valid identifier has an invalid identifier, and the destination storage node has an invalid identifier.
  • the data state identifier of the first data in the first cache node first connected to the first processor node bus must be a valid identifier ( The first data cached by the cache node is currently up to date, and the first processor node can write data to the first cache node to update the current latest first data, and then the first processor node can write data to the memory device.
  • the implementation flow of the first processor node desiring to write the first data to the memory device is described in detail below. The implementation flow sequentially includes step S401, step S402, step S403, step S404, step S405, step S406, and step S407.
  • the node group in this embodiment may be a node group established to implement data consistency of the first data
  • the storage node in the node group includes: in the multi-processor network 100, the first data is cached.
  • Cache node a memory node in the memory device that stores the first data;
  • the control nodes in the node group are: a processor node connected to the cache node bus in the node group, and a controller connected to the memory node in the node group.
  • Step S401 The first processor node first writes the first data (updated first data) that is expected to be written into the memory node to the cache to update the first data in the cache node when the first cache node has a valid identifier. And sending, by the data exchange device, a write message carrying a write command to the controller of the memory device;
  • Step S402 The data exchange device receives the write message, searches for routing information required by the controller that forwards the write message to the memory device, and forwards the write message to the controller of the memory device according to the found routing information.
  • Step S403 The processor included in the memory device receives the write message, and when the write command is detected, the read message is triggered, and the read message is sent by the data processor device to the first processor node.
  • the data state identifiers of the first data in the storage nodes in the node group are respectively: the first cache node has a valid identifier, and the storage nodes other than the first cache node in the storage node have invalid identifiers, including: the memory node has an invalid identifier ;
  • Step S404 The data exchange device receives the read message, searches for a routing information required to forward the read message to the first processor node from the node table, and forwards the read to the first processor node according to the found routing information. Take a message;
  • Step S405 The first processor node reads the data specified by the read message (ie, the first message) from the first cache node when receiving the read message, and generates a response message, where the response message carries the read message designation.
  • Data the data exchange device feeds back the response message to the controller of the memory device, and when the response message is started, the data status identifier of the first data in the first storage node is set as an indeterminate identifier by the valid identifier;
  • the first cache node has an indeterminate identifier, and the storage node other than the first cache node having the indeterminate identifier in the node group Have invalid identifiers, including memory nodes with invalid identifiers;
  • Step S406 The data exchange device receives the response message, searches routing information required by the controller that forwards the response message to the memory device from the node table, and forwards the reading to the controller of the memory device according to the found routing information.
  • Step S407 The processor included in the memory device receives the response message from the processor.
  • the response message parses out the first data read from the first cache node, and controls the memory controller to write the parsed first data to the memory node of the memory device, and completes changing the memory node when the first data of the memory node is written.
  • the data status identifier of the first data is changed from the invalid identifier to the valid identifier; when the processor of the memory device completes changing the data status identifier of the first data in the memory node (changed from the invalid identifier to the valid identifier), the first processing is performed The node feedback feedback message; in the process of the processor of the memory device sending the notification message to the first processor node via the data exchange device, the memory node has a valid identifier, and the first cache node has an indeterminate identifier, and the node group is in the node group A storage node other than a memory node with a valid identifier and a first cache node with an indeterminate identifier has an invalid identifier;
  • Step S408 The data exchange device receives the notification message, searches for the routing information required to forward the notification message to the first processor node, and forwards the notification message to the first processor node according to the found routing information.
  • Step S409 the first processor node, when receiving the notification message, changing the data state identifier of the first data in the first cache node, and changing from the indeterminate identifier to the invalid identifier; at this time, the storage node in the node group
  • the data state identifier of a data is that the memory node has a valid identifier, and the storage node other than the memory node having the valid identifier in the storage node has an invalid identifier, and the first cache node has an invalid identifier.
  • the second control node to trigger the read message, which are not limited; for example, the second control node expects to read the first data but is connected to the second control node bus.
  • the cache node does not have a valid identifier (with an indeterminate identifier or has an invalid identifier) triggers the read message; for example, the second control node expects to write data to the cache node connected to its bus to update the current latest first data, but
  • the cache node connected to its bus does not have a valid identifier (that is, the first data cached by the cache node connected to its bus may not be the latest one), triggering a read message, first having a valid identifier from the node group through the read message
  • the storage node obtains the first data, caches the obtained first data in the cache node connected to the bus, and changes the data state identifier of the first data in the cache node from the invalid identifier to the valid identifier, and then writes the data
  • the first processor node desires to write the first to the memory device Data, when the first cache node has a valid identifier, it will be expected to write in advance
  • the first data entering the memory device is cached in the first cache node, and then the controller of the memory device is notified to send a read message to the first processor node to obtain the first data cached by the first cache node, so that the controller in the memory device includes
  • the processor controls the memory controller to write the cached first data to the memory node, and the first processor node completes writing the first data to the memory node of the memory device.
  • the foregoing embodiment is extended correspondingly to obtain a basic working process for implementing the data reading method, as shown in FIG. 2, but for the convenience of description, only parts related to the embodiment of the present invention are shown.
  • the basic workflow shown in FIG. 2 is given from the perspective of the first control node, and the basic workflow provided in FIG. 2 includes: step A201 and step A202.
  • the node group includes a storage node and a control node, where the node group includes a storage node in which the first data is stored in the multiprocessor network 100, and at most one of the node groups stores The first data having the data status identifier is a valid identifier, and the storage node in the node group stores the data status identifier of the first data when the first data is stored is changed to be valid Identifying; the node group further includes a control node connected to the storage node in the node group; the control node is configured to perform read and write control on the connected storage node, including the storage of the connected storage node The first data setting data status identifier; the first control node is a control node in the node group, and the first storage node is a storage node in the node group connected to the first control node.
  • the node group includes a storage node in which the first data is stored in the multiprocessor network 100, and at most one of the node groups stores The first data having the data status
  • the node group in this embodiment may be a node group established to implement cache coherency of the first data, where the storage node in the node group includes a cache node that caches the first data in the multi-processor network 100.
  • the control node in the group of nodes includes processor nodes in the multiprocessor network 100 that are connected to the cache node bus.
  • the node group in this embodiment may be a node group established to implement data consistency of the first data, where the storage node in the node group includes: in the multi-processor network 100, the first data is cached. a cache node, a memory node in the memory device that stores the first data; in the multiprocessor network 100, a control node in the node group: a processor node connected to a cache node bus in the node group, and a memory in the node group The controller to which the node is connected.
  • Step A201 the first control node receives the read message forwarded by the data switching device, and the reading The message is configured to specify to read the first data, where the read message is sent by the second control node to the data switching device, and then the data switching device performs other control than the second control node to the node group. Node forwarding
  • Step A202 If the data status identifier of the first data in the first storage node is a valid identifier, the first control node reads the first data from the first storage node, and the first The data state identifier of the first data in the storage node is changed from the valid identifier to the indeterminate identifier, and the destination control node of the first data in the first storage node is recorded as the second control node, and the read is sent. Taking the first data to the data switching device to cause the data switching device to forward the read first data to the second control node, where the valid identifier indicates that the first storage node The first data is available, and the uncertainty identifier indicates that the first data is currently provided by the destination control node.
  • the second control node when the second control node desires to read the first data, it first detects whether the second storage node has a valid identifier, and if the second storage node does not have a valid identifier, then the data exchange device goes to other nodes in the node group. The control node sends a read message, by which the current latest first data is read from the storage node other than the second storage node in the node group.
  • the second control node reads the current latest first data from the node group, at most one storage node in the node group has a valid identifier, including two cases;
  • the other control nodes other than the second control node in the node group do not read the first data from the node group, and the node group A storage node has a valid identifier.
  • the storage node having the valid identifier is used as the first storage node, and the control node connected to the storage node bus is used as the first control node.
  • the second control node in the process of the second control node reading the current latest first data from the node group, some other control node in the node group except the second control node is performing message interaction with the first control node to The first storage node reads the current latest first data.
  • the first storage node does not have a valid identifier, and the storage node with the valid identifier does not exist in the node group, and the control node is completed by the first control node.
  • the control node After the storage node reads the current latest first data and sets a valid identifier for the data state identifier of the first data in the storage node connected to the control node, the control node is used as the updated first control node.
  • the storage node acts as the new first storage node.
  • the first control node identifies the data state of the first data in the first storage node. Changed from the valid identifier to the indeterminate identifier, at which point in time, the data status identifier of the first data in the first storage node is changed from the valid identifier to the indeterminate identifier, which is not limited; for example, the first control node starts When the first data stored by the first storage node is sent to the second control node, the data state identifier of the first data in the first storage node is changed from the valid identifier to the indeterminate identifier; for example, the first control When the node sends a part of the first data to the second control node, the data state identifier of the first data in the first storage node is changed from the valid identifier to the indeterminate identifier.
  • the second control node is to be the second The control node completes reading, by the first control node, the current latest first data from the first storage node, the current cached first data in the second cache node, and the data state identifier of the first data in the second cache node. After the valid identifier is set, the second control node is used as the updated first control node, and the second cache node is used as the new first storage node. Then, a certain control node in the node group expects to read the current latest first data from the node group and send a read message to the node group, and the control node is used as the second control node.
  • the embodiment of the present invention uses a message between the control nodes to perform the reading of the first data, and completes reading the current latest first data. It takes only a short time, up to the subtle level or even the nanosecond level.
  • the first control node receives the read message forwarded by the data switching device, specifically:
  • the first control node receives the read message multicasted by the data switching device to other control nodes other than the second control node in the node group.
  • a node table is established in advance in the data exchange device, the node table records the address of each control node in the node group, and also records routing information required to forward the message to each control node.
  • the determined control node addresses are recorded in the node table accordingly. Since the node table is stored in the data switching device, when the data switching device forwards the message to any of the control nodes in the node group, the node table can be searched to find the address of the control node that matches the destination address of the message record. When the address of the matching control node is found, the corresponding routing information is searched according to the address of the control node. Further, the data switching device can forward the message according to the found routing information to the control node having the destination address.
  • the second control node if the second storage node does not have a valid identifier, the second control node expects to read the first data to trigger the read message, and adds a multicast instruction to the read message, where the multicast instruction is specified to the node. a control node other than the second control node in the group, and sending a read message carrying the multicast instruction to the data exchange device; thus, when the data exchange device detects the multicast command in the read message, The other control nodes other than the second control node in the node group multicast the read message.
  • the multicast technology used for the data switching device is not limited. For example, which multicast protocol is used to implement the multicast technology is not limited, and the multicast technology may be continuously updated according to the development of the times.
  • the multiprocessor network 100 includes a large number of processor nodes, but in general, only some of the processor nodes process the first data, but it is not excluded that all of the processor nodes included in the multiprocessor network 100 process the first data.
  • the data forwarding device receives the read message, instead of broadcasting the read message to all the processor nodes included in the multiprocessor network 100 and the controller in the memory device, but to the control node other than the second control node in the node group. Multicasting the read message effectively reduces the amount of data traffic required to forward the read message, making it more targeted and more readable.
  • the second control node performs communication between the data exchange device and the other control node other than the second control node in the node group, if the communication protocol supported by the first control node and the communication supported by the second control node When the protocol is different, the data forwarding device may perform protocol conversion on the message. If the second control node sends a read message to other control nodes in the node group, if it needs to be forwarded through multiple data forwarding devices, it may be The data transfer protocol is converted during the sequential forwarding process to implement message interaction between the two control nodes.
  • the method further includes step A301.
  • Step A301 when the first control node receives the notification message forwarded by the data switching device, the data state identifier of the first data in the first storage node is invalidated by the uncertainty identifier. An identifier, the invalid identifier indicating that the first data in the first storage node is unavailable;
  • the notification message is sent by the second control node to the data switching device when the following conditions are met, where the condition is: the second control node receives the location sent by the first control node After the first data is cached, and after the second storage node is cached, the data state identifier of the first data in the second storage node is set as a valid identifier.
  • the second control node sequentially completes receiving the first data from the first control node, buffering the received first data in the second storage node, and changing the data status identifier of the first data in the second storage node from the invalid identifier to
  • the notification message is fed back to the destination control node; in the process that the second control node sends the notification message to the destination control node via the data exchange device, the second storage node has a valid identifier, and the first storage node has an uncertainty. Identifying that a storage node other than a second storage node having a valid identifier and a first storage node having an indeterminate identifier has an invalid identifier;
  • the first control node When receiving the notification message, the first control node changes the data state identifier of the first data in the first storage node, and changes from the indeterminate identifier to the invalid identifier; at this time, the data state of the first data in each storage node in the node group
  • the identifier is that the second storage node has a valid identifier, and the storage node other than the second storage node having the valid identifier has an invalid identifier, and the first storage node has an invalid identifier.
  • the storage node storing the current latest first data is ensured, and the data status identifier of the first data in the storage node is a valid identifier, and the data status identifiers of the first data in the other storage nodes do not have a valid identifier.
  • the method further includes step A401.
  • Step A401 If the data status identifier of the first data in the first storage node is an indeterminate identifier, the first control node sends the read message to the first in the first storage node.
  • the destination control node of the data is forwarded, so that the destination control node reads the first data from the destination storage node and reads when the data state identifier of the first data in the connected destination storage node is a valid identifier.
  • the first data that is fetched is sent to the data switching device, and the read first data is forwarded by the data switching device to the second control node.
  • the second control node when the second control node desires to read the first data, it first detects whether the second storage node has a valid identifier, and if the second storage node does not have a valid identifier, passes through the data switching device to other control nodes in the node group. And transmitting a read message, by which the current latest first data is read from the storage node other than the second storage node in the node group.
  • the first control node receives the read message sent from the second control node when the destination control node does not complete receiving the first data from the first control node, and at this time, the node group Only the first storage node has an indeterminate identifier, and other storage nodes except the first storage node have invalid identifiers.
  • the first control node detects that the first storage node has an indeterminate identifier, and searches for the destination control node information (including the address of the destination control node) recorded in the directory of the first storage node, according to The destination control node sends the read message to the destination control node via the data forwarding device;
  • the destination control node sequentially performs the process of receiving the first data from the first control node, buffering the first data in the destination storage node, and setting the data state identifier of the first data in the destination storage node to the valid identifier by the invalid identifier.
  • Reading the message reading the data specified by the message from the destination storage node (ie, the first data), and generating a response message, the response message carrying the data specified by the read message, and feeding back to the second control node by the data exchange device
  • the response message when the response message is started to be sent, sets the valid identifier of the destination storage node as an indeterminate identifier; optionally, the first data fed back to the second control node is: the first data in the destination storage node of the destination control node Changed data;
  • the second control node When receiving the response message, the second control node parses the first data read from the destination storage node from the response message, and caches the parsed first data in the second storage node to complete the buffering of the first data. Changing the data state identifier of the first data in the second storage node, and changing from the invalid identifier to the valid identifier; when the second control node completes changing the data state identifier of the first data in the second storage node (changing from the invalid identifier to the valid identifier) And feeding back a notification message to the destination control node; In a process in which the second control node sends the notification message to the destination control node via the data exchange device, the second storage node has a valid identifier, and the destination storage node has an indeterminate identifier, and the node group has a second storage with a valid identifier. A storage node other than the node and a destination storage node with an indeterminate identifier has an invalid identifier;
  • the destination control node When receiving the notification message, the destination control node changes the data state identifier of the first data in the destination storage node, and changes from the indeterminate identifier to the invalid identifier; at this time, the identifiers of the storage nodes in the node group are respectively, the second storage node The storage node has a valid identifier, and the storage node except the second storage node having the valid identifier has an invalid identifier, and the destination storage node has an invalid identifier.
  • the destination control node in the node group is performing message interaction with the first control node to obtain the current latest from the first control node.
  • First data the destination control node sequentially reads the first data from the first storage node, caches the first data in the destination storage node, and invalidates the data state identifier of the first data in the destination storage node by the first control node.
  • the destination control node may write data to the destination storage node to update the current latest first data, and then the destination control node feeds back the updated current latest first data to the second control node, and the second control
  • the node stores the first data acquired from the destination control node. Therefore, the normal continuous update of the first data is ensured, and the correctness of the first data is ensured; therefore, the embodiment is particularly applicable to: in the process of the first data processing service, the process migration between the control nodes in the node group, It is ensured that during the process migration process of processing the first data, the control node to which the process migrates can obtain the correct first data to ensure the correct execution of the service.
  • the specific forwarding of the read message to the destination control node in FIG. 4 is performed.
  • the first control node sends the read message to the first storage node.
  • the destination control node forwards the data, specifically step A4011 and step A4012.
  • Step A4011 The first control node acquires destination control node information of the first data in the first storage node.
  • Step A4012 the first control node sends the read message carrying the unicast instruction to the data switching device, so that the data switching device detects the unicast instruction and the unicast instruction points to the The read message is unicast to the destination control node when the destination control node is described.
  • the unicast technology used in the data exchange device is not limited.
  • the unicast technology used to implement the unicast technology is not limited, and the unicast technology can be continuously updated according to the development of the times.
  • the first control node receives the read message sent from the second control node when the destination control node does not complete receiving the first data from the first control node.
  • the first control node detects that the first storage node has an indeterminate identifier, and searches for a destination control node information corresponding to the destination control node from the directory (the destination control node information includes an address of the destination control node), and triggers the specified transmission to the destination control node. Reading a unicast instruction of the message, adding the unicast instruction to the read message, and sending the read message carrying the unicast instruction to the data forwarding device;
  • the unicast mode is used to forward the read message in the node group, which is more directional, can reduce the data traffic, and reduce the bandwidth occupation.
  • the data reading method provided based on FIG. 4 continues to make a refinement improvement.
  • the method further includes step A601.
  • Step A601 when the first control node receives the notification message forwarded by the data switching device, the data state identifier of the first data in the first storage node is invalidated by the uncertainty identifier An identifier, the invalid identifier indicating that the first data in the first storage node is unavailable;
  • the notification message is sent by the destination control node to the data switching device when the following conditions are met, where the condition is that the destination control node receives the first message sent by the first control node.
  • the data state identifier of the first data in the destination storage node is set as a valid identifier.
  • step A601 For the specific execution of step A601, refer to the above-mentioned detailed explanation of step A401, which is not described herein.
  • the destination control node sequentially receives the first data from the first control node, caches the first data in the destination storage node, and sets the invalid identifier of the destination storage node as the valid identifier, and then responds to the read message.
  • the destination storage node reads the data specified by the message (ie, the first number And generating a response message, the response message carrying the data specified by the read message, and the feedback message is fed back to the second control node by the data exchange device, and the second control node receives the response message from the response message
  • the first data read from the destination storage node is parsed, and the parsed first data is cached in the second storage node, and the invalid identifier of the second storage node is changed to be a valid identifier when the first data is cached.
  • the control node connected to the storage node may modify the first data stored in the storage node to update the current latest first data.
  • condition that the read message is sent by the second control node to the data switching device includes:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • the second control node expects to update the current latest first data, and if the second storage node (the storage node connected to the second control node) does not have a valid identifier, the second control node cannot send to the second storage node.
  • Writing data to update the first data triggering the read message, sending a read message to a control node other than the second control node in the node group to read the current latest first from the storage node having the valid identifier Data, storing the currently latest first data read in the second storage node, and changing the data state identifier of the first data in the second storage node as a valid identifier; and then the second control node can access the second storage node ( Have a valid identification) to write data to update the current latest first data.
  • the second control node is a processor node in the node group, and the processor node desires to write data to the cache node connected to the bus to update the first data in the cache node, if the cache node does not have a valid identifier , the processor node triggers a read message.
  • the second control node is a processor node in the node group, the processor node expects to update the first data and write the updated first data back to the memory node of the memory device if the processor node is connected to its bus If the cache node does not have a valid identifier, the read message is triggered; the second control node performs message interaction with the processor node other than the processor node in the node group to obtain the slave node group.
  • the storage node having the valid identifier reads the current latest first data, stores the read first data in the cache node connected to the processor node bus, and sets the identifier of the cache node as a valid identifier;
  • the processor node can first write data to the cache node to update the current latest first data, and then notify the controller of the memory device to trigger the controller to generate a read message, for example, the controller node to the memory device controller Sending a writeback message, the controller triggers a read message directed to the processor node based on the received writeback message; the controller sends a read message to the processor node via the data exchange device to read the updated from the cache node
  • the first data the processor in the controller controls the memory controller to write the read first data to the memory node, and completes the second latest control node to write the updated current first data at the memory node.
  • the condition that the read message is sent by the second control node to the data switching device is: the second control node receives the write back message;
  • the storage node in the node group includes: a memory node in the multiprocessor network 100 storing the first data, and a cache node in the multiprocessor network 100 for storing mirror data of the first data.
  • the control node in the node group includes: a processor node connected to a cache node bus in the node group, a controller connected to the memory node; and the second control node is in the node group a controller, the first control node is a processor node in the node group that sends the writeback message; the writeback message is performed by a processor node in the node group in a cache node connected to the bus
  • the data status of the first data is identified as a valid identifier, and needs to be sent back to the controller in the node group via the data switching device when the first data is written back to the memory node in the node group.
  • the processor node in the node group has a valid identifier on the cache node connected to the processor node bus, and it is expected that the first data stored in the cache node is written back to the memory node in the node group, and then
  • the controller connected to the memory node sends a writeback message; when receiving the writeback message, the controller triggers a read message sent to the processor node, thereby saving network bandwidth; the processing node responds to the controller
  • For the interaction process of the read message refer to the interaction process of the first control node in response to the read message sent by the second control node, and details are not described herein again.
  • FIG. 7 is a schematic diagram showing the logical structure of a first control node 700 according to an embodiment of the invention, such as As shown in FIG. 7, the first control node includes:
  • the message receiving unit 701 receives a read message forwarded by the data exchange device, where the read message is used to specify to read the first data, and the read message is sent by the second control node to the data exchange device, and then Transmitting, by the data exchange device, to other control nodes other than the second control node in the node group;
  • the response unit 702 is configured to: if the data state identifier of the first data in the first storage node is a valid identifier, read the first data from the first storage node, and use the first storage node The data state identifier of the first data is changed from the valid identifier to the indeterminate identifier, and the destination control node of the first data in the first storage node is recorded as the second control node, and the read location is sent. Decoding first data to the data switching device to cause the data switching device to forward the read first data to the second control node, the valid identifier indicating the first on the first storage node A data is available, the uncertainty identifier indicating that the first control data is provided by the destination control node;
  • the node group includes a storage node in which the first data is stored in the multi-processor network 100, and at most one of the node nodes stores the first data in which the data state identifier is a valid identifier. And storing, by the storage node in the node group, the data state identifier of the first data stored by the storage node when the first data is stored is changed to a valid identifier; the node group further includes the node group a control node connected to the storage node; the control node is configured to perform read and write control on the connected storage node, including setting a data state identifier of the first data stored by the connected storage node; the first control node As a control node in the node group, the first storage node is a storage node in the node group that is connected to the first control node.
  • the message receiving unit 701 receives the read message forwarded by the data switching device, specifically:
  • the message receiving unit 701 is configured to, by the data switching device, the read message multicasted by the control node other than the second control node in the node group.
  • the response unit 702 is further configured to: when receiving the notification message forwarded by the data switching device, identify the data state of the first data in the first storage node by the uncertainty The identifier is set to an invalid identifier, and the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the second control node to the data switching device when the following conditions are met, where the condition is: the second control node receives the location sent by the first control node After the first data is cached, and after the second storage node is cached, the data state identifier of the first data in the second storage node is set as a valid identifier.
  • the response unit 702 is further configured to: if the data status identifier of the first data in the first storage node is an indeterminate identifier, send the read message to the first storage node.
  • the destination control node of the first data is forwarded, so that the destination control node reads the first from the destination storage node when the data state identifier of the first data is a valid identifier in the connected destination storage node And transmitting the read first data to the data switching device, and forwarding, by the data switching device, the read first data to the second control node.
  • the response unit 702 is further configured to forward the read message to the destination control node of the first data in the first storage node, specifically:
  • the response unit 702 is configured to acquire destination control node information of the first data in the first storage node, generate a unicast instruction directed to the destination control node according to the destination control node information, to the data
  • the switching device transmits the read message carrying the unicast command such that the data switching device unicasts the read message to the destination control node upon detecting the unicast command.
  • the response unit 702 is further configured to: when receiving the notification message forwarded by the data switching device, identify the data state of the first data in the first storage node by the uncertainty The identifier is set to an invalid identifier, and the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the destination control node to the data switching device when the following conditions are met, where the condition is that the destination control node receives the first message sent by the first control node.
  • the data state identifier of the first data in the destination storage node is set as a valid identifier.
  • condition that the read message is sent by the second control node to the data switching device includes:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • the condition that the read message is sent by the second control node to the data switching device is: the second control node receives the write back message;
  • the storage node in the node group includes: a memory node in the multiprocessor network 100 storing the first data, and a cache node in the multiprocessor network 100 for storing mirror data of the first data.
  • the control node in the node group includes: a processor node connected to a cache node bus in the node group, a controller connected to the memory node; and the second control node is in the node group a controller, the first control node is a processor node in the node group that sends the writeback message; the writeback message is performed by a processor node in the node group in a cache node connected to the bus
  • the data status of the first data is identified as a valid identifier, and needs to be sent back to the controller in the node group via the data switching device when the first data is written back to the memory node in the node group.
  • FIG. 8 is a schematic diagram showing the hardware structure of the first control node 800 according to the embodiment, and shows a hardware structure of the first control node 800.
  • the first control node 800 includes a processor 801, a memory 802, and a network interface 804.
  • the processor 801 is connected to the memory 802 and the network interface 804 via the bus 803, respectively.
  • the memory 802 is configured to store computer execution instructions, and when the first control node 800 is running, the processor 801 reads the computer execution instructions stored by the memory 802 to perform a perspective from the first control node 800.
  • the data reading method provided. For the specific implementation of the data reading method, refer to the flow of the data reading method provided in the foregoing embodiments, and details are not described herein again.
  • the processor 801 can be a general-purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for executing related programs.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • the technical solution provided by the embodiment of the present invention is implemented to include the data reading method provided by the foregoing invention embodiments and embodiments.
  • the memory 802 can be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). Memory 802 can store operating systems and other applications. When the technical solution provided by the embodiment of the present invention is implemented by using software or firmware, the technical solution provided by the embodiment of the present invention is implemented.
  • the program code is stored in the memory 802, and includes program code for applying the data reading method provided by the above-described inventive embodiments and embodiments of the first control node 800 in the memory 802, and is executed by the processor 801.
  • the network interface 804 uses a transceiver device such as, but not limited to, a transceiver to implement network communication between the first control node 800 and other devices or communication networks; alternatively, the network interface 804 can be used for Various interfaces of the access network, such as an Ethernet interface for accessing an Ethernet, including but not limited to an RJ-45 interface, an RJ-11 interface, an SC optical interface, an FDDI interface, an AUI interface, and a BNC interface. And the Console interface and so on.
  • a transceiver device such as, but not limited to, a transceiver to implement network communication between the first control node 800 and other devices or communication networks; alternatively, the network interface 804 can be used for Various interfaces of the access network, such as an Ethernet interface for accessing an Ethernet, including but not limited to an RJ-45 interface, an RJ-11 interface, an SC optical interface, an FDDI interface, an AUI interface, and a BNC interface. And the Console interface and so on.
  • the bus 803 can include a path for communicating information between various components (e.g., processor 801, memory 802, and network interface 804) in the first control node 800.
  • various components e.g., processor 801, memory 802, and network interface 804 in the first control node 800.
  • the first control node 800 further includes an input/output interface 805 for receiving input data and information, and outputting operation results and the like.
  • first control node 800 shown in FIG. 8 only shows the processor 801, the memory 802, the network interface 804, and the bus 803, in the specific implementation process, those skilled in the art should understand that The first control node 800 also includes other devices necessary to achieve normal operation. At the same time, those skilled in the art will appreciate that the first control node 800 may also include hardware devices that implement other additional functions, depending on the particular needs. Moreover, those skilled in the art will appreciate that the first control node 800 may also only include the components necessary to implement the embodiments of the present invention, and does not necessarily include all of the devices shown in FIG.
  • a data processing system 900 is provided. Referring to FIG. 9, the data processing system 900 is applied to a multiprocessor network 100, and the data processing system 900 includes a first stored in the multiprocessor network 100. a data storage node 902, a control node 901 connected to the storage node 902, one or more data exchange devices 903, and two or two of the control nodes 901 are communicatively connected by the data exchange device 903; The storage node 902 in the data processing system 900 and the control node 901 in the data processing system 900, wherein at most one of the storage nodes 902 stores the first data with the data status identifier as a valid identifier.
  • the storage node 902 in the node group stores the data state identifier of the first data stored in the first data when the first data is available is changed to a valid identifier;
  • the control node 901 is configured to The connected storage node 902 performs read and write control, including setting the data state identifier of the first data stored by the connected storage node 902;
  • the first control node is the control node 901 in the node group, and the first storage node a storage node 902 connected to the first control node in the node group,
  • a second control node is a control node 901 in the node group, and a second storage node is in the node group and the second control a storage node 902 connected to the node; wherein the first control node is different from the second control node, and the first storage node is different from the first storage node;
  • the second control node is configured to send a read message to the data exchange device 903, where the read message is used to specify to read the first data;
  • the data exchange device 903 is configured to: when receiving the read message sent by the second control node, forward the read message to another control node other than the second control node in the node group. ;
  • the first control node is configured to: when receiving the read message forwarded by the data switching device 903, if the data state identifier of the first data in the first storage node is a valid identifier, The first storage node reads the first data, and changes a data state identifier of the first data in the first storage node from a valid identifier to an indeterminate identifier, where the first storage node is Recording, by the destination control node of the first data, the second control node, the read first data to the data exchange device 903, wherein the valid identifier indicates the The first data is available, and the uncertainty identifier indicates that the first data that is currently up-to-date is provided by the destination control node;
  • the data exchange device 903 is further configured to forward the read the first data to the second control node.
  • the data exchange device 903 is configured to: when receiving the read message sent by the second control node, forward the station to another control node other than the second control node in the node group.
  • the read message is specifically as follows:
  • the data exchange device 903 is configured to receive, by the second control node, the read message that carries a multicast instruction, and when the multicast command is detected, remove the The other control nodes other than the second control node multicast the read message.
  • the second control node is further configured to: after receiving the first data sent by the first control node, and after being cached by the second storage node, the second storage node Said The data status identifier of the first data is set as a valid identifier, and the notification message directed to the first control node is sent to the data switching device 903;
  • the data exchange device 903 is further configured to forward the notification message to the first control node;
  • the first control node is further configured to: when receiving the notification message forwarded by the data switching device 903, set the data state identifier of the first data in the first storage node by the uncertainty identifier The invalid identifier indicates that the first data in the first storage node is unavailable.
  • the first control node is further configured to: when receiving the read message forwarded by the data switching device 903, if the data status identifier of the first data in the first storage node is Uncertaining the identifier, forwarding the read message to the destination control node of the first data in the first storage node, so that the destination control node is in the connected destination storage node, the first data Reading the first data from the destination storage node and transmitting the read first data to the data exchange device 903 when the data status identifier is a valid identifier, and forwarding the read by the data exchange device 903 And taking the first data to the second control node.
  • the first control node is configured to forward the read message to the destination control node of the first data in the first storage node, specifically:
  • the first control node is configured to acquire destination control node information of the first data in the first storage node, and generate a unicast instruction directed to the destination control node according to the destination control node information, to the
  • the data exchange device 903 transmits the read message carrying a unicast instruction, such that the data exchange device 903 controls the destination when the unicast instruction is detected and the unicast instruction is directed to the destination control node
  • the node unicasts the read message.
  • the first control node is further configured to: when receiving the notification message forwarded by the data switching device 903, identify the data state of the first data in the first storage node by using the The indeterminate identifier is set to an invalid identifier, and the invalid identifier indicates that the first data in the first storage node is unavailable;
  • the notification message is sent by the destination control node to the data exchange device 903 when the following conditions are met, the condition that the destination control node receives the first After the first data sent by the control node is buffered by the destination storage node, the data state identifier of the first data in the destination storage node is set as a valid identifier.
  • condition that the read message is sent by the second control node to the data switching device 903 includes:
  • the second control node needs to write the updated first data to the connected second storage node, and the data state identifier of the first data in the second storage node is not a valid identifier.
  • the foregoing node group may be a node group established to implement cache coherency of the first data
  • the storage node 902 in the node group includes a cache node that caches the first data in the multi-processor network 100
  • the control node 901 in the node group includes processor nodes in the multiprocessor network 100 that are connected to the cache node bus.
  • the foregoing node group may be a node group established to implement data consistency of the first data
  • the storage node 902 in the node group includes: a cache node that caches the first data in the multi-processor network 100, the memory a memory node storing the first data in the device; a control node 901 in the node group: a processor node connected to the cache node bus in the node group in the multiprocessor network 100, and a control connection with the memory node in the node group Device.
  • the node group is a node group established to implement data consistency of the first data
  • the storage node 902 in the node group includes: a cache node that caches the first data in the multi-processor network 100, a memory node storing a first data in the memory device; a control node 901 in the node group: a processor node connected to the cache node bus in the node group in the multiprocessor network 100, and a memory node connected to the node group Controller.
  • the condition that the read message is sent by the second control node to the data exchange device 903 is: the second control node receives the write back message;
  • the storage node 902 in the node group includes: a memory node in the multiprocessor network 100 storing the first data, and a cache in the multiprocessor network 100 for storing mirror data of the first data.
  • a control node 901 in the node group includes: a processor node connected to a cache node bus in the node group, a controller connected to the memory node; and the second control node is the node group In the controller, the first control node is sent in the node group a processor node that sends the writeback message; the writeback message is identified by the processor node in the node group as a valid identifier of the data state of the first data in the cache node connected to the bus, and needs to be The memory node in the node group writes back the first data to the controller in the node group via the data exchange device 903.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the modules and units is only one logical function division, and may be implemented in another manner, such as multiple modules or units or components. It can be combined or integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or module, and may be electrical, mechanical or otherwise.
  • the modules described as separate components may or may not be physically separated, and the components of the modules may or may not be physical modules, that is, may be located in one place, or may be distributed to multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of hardware plus software function modules.
  • the above-described modules implemented in the form of software function modules can be stored in a computer readable storage medium.
  • the software functional modules described above are stored in a storage medium and include instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform some of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a mobile hard disk, a read-only memory (English: Read-Only Memory, ROM for short), a random access memory (English: Random Access Memory, RAM), a magnetic disk or an optical disk, and the like.
  • the medium in which the program code is stored is stored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明实施例公开了一种数据读取方法、数据处理设备和系统。所述方法包括:第一控制节点接收数据交换设备转发的读取消息,该读取消息用于指定读取第一数据,该读取消息由第二控制节点向该数据交换设备发送、再由该数据交换设备向节点组中除该第二控制节点以外的其它控制节点转发;如果第一存储节点中该第一数据的数据状态标识为有效标识,则该第一控制节点从该第一存储节点读取该第一数据,发送读取的该第一数据至该数据交换设备以使得该数据交换设备转发读取的该第一数据至该第二控制节点,该有效标识表明该第一存储节点上的该第一数据可用。本发明实施例保证节点组中控制节点之间通过消息交互来读取的第一数据是当前最新的。

Description

数据读取方法、设备和系统 技术领域
本发明实施例涉及存储领域,尤其涉及数据读取方法、设备和系统。
背景技术
目前,服务器中多个中央处理器(Central Processing Unit,简称CPU)连接在同一总线上,每个处理器节点(即上述的CPU)均连接一个缓存(Cache)。工作时,对于业务处理中需要处理第一数据的每个处理器节点,与该处理器节点连接的缓存节点(即上述的Cache)均会对内存设备中的该第一数据进行镜像,并将镜像所得的第一数据在该每个缓存节点中缓存;当某个缓存节点所缓存的第一数据被处理器节点更新之后,而其他缓存节点缓存的第一数据未及时被作相应修改,会导致缓存一致性不能得到满足的问题;具体引起缓存的第一数据不一致的原因大致有两种:第一种,某一处理器节点对某个缓存节点中的第一数据进行修改,而其他缓存节点中缓存的第一数据未相应地被修改;第二种,某一处理器节点在执行业务进程时对某个缓存节点中的第一数据进行修改之后,未及时将该修改后的第一数据回写内存设备和/或对其他缓存节点中缓存的第一数据作相应修改的同时,在处理器节点之间对该业务进程进行了进程迁移,导致迁移后的该业务进程对未修改的第一数据进行错误调用,导致业务处理的错误执行。
现有技术提供的总线监听协议(例如MSI(Modified,Shared or Invalid,中文简称:修改、共享或无效)协议、MESI(Modified,Exclusive,Shared or Invalid,中文简称:修改、独占、共享或无效)协议和MOESI(Modified,Owned,Exclusive,Shared or Invalid,中文简称:修改、自有、独占、共享或无效)协议)采用广播数据请求和对数据请求进行总线仲裁,能解决同一总线上挂载的多个缓存节点的缓存一致性问题。但总线监听协议在发出数据请求时依赖于共享总线的完全顺序特性,每个时刻只能有一个处理器占用,通信延迟较大, 可扩展性较差。另外,监听协议在进行Cache状态更新时,采用的是全系统广播的方式,导致总线通信负载过大、功耗大。而且,基于监听的协议并不适用于消息网络,因为消息网络是无序的,无法保证类似总线顺序特性和原子操作,且消息网络无法做到实时的监听,采用广播机制,也将导致通信延时较大。
发明内容
有鉴于此,本发明实施例提供了一种数据读取方法、设备和系统,实现消息网络中存储节点之间的数据一致性。
第一方面,本发明实施例提供了一种数据读取方法,所述数据读取方法包括:
第一控制节点接收数据交换设备转发的读取消息,所述读取消息用于指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
如果第一存储节点中所述第一数据的数据状态标识为有效标识,则所述第一控制节点从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
其中,所述节点组包括多处理器网络中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节 点为所述节点组中与所述第一控制节点连接的存储节点。
结合第一方面,在第一种可能的实现方式中,所述第一控制节点接收数据交换设备转发的读取消息,具体为:
所述第一控制节点接收由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为:
所述第一控制节点获取所述第一存储节点中所述第一数据的目的控制节点信息;
所述第一控制节点向所述数据交换设备发送载有单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令且所述单播指令指向所述 目的控制节点时向所述目的控制节点单播所述读取消息。
结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
结合第一方面或第一方面的以上任一项可能的实现方式,在第六种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
结合第一方面,在第七种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点包括:多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
第二方面,本发明实施例提供了一种第一控制节点,所述第一控制节点包括:
消息接收单元,接收数据交换设备转发的读取消息,所述读取消息用于 指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
响应单元,用于如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
其中,所述节点组包括所述多处理器网络中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。
结合第二方面,在第一种可能的实现方式中,所述消息接收单元,接收数据交换设备转发的读取消息,具体为:
所述消息接收单元,用于由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述响应单元,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述 数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述响应单元,还用于如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述响应单元,还用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为:
所述响应单元,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备发送载有所述单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令时向所述目的控制节点单播所述读取消息。
结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述响应单元,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
结合第二方面或第二方面的以上任一项可能的实现方式,在第六种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条 件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点包括:所述多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
第三方面,本发明实施例提供了一种第一控制节点,所述第一控制节点包括处理器、存储器和网络接口,所述处理器分别与所述存储器和所述网络接口通过所述总线连接;
所述存储器用于存储计算机执行指令,当所述第一控制节点运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以执行上述第一方面或第一方面中任一可能的实现方式中的数据读取方法。
第四方面,本发明实施例提供了一种数据处理系统,所述数据处理系统应用于多处理器网络,所述数据处理系统包括多处理器网络中存储有第一数据的存储节点、与所述存储节点连接的控制节点、一个或多个数据交换设备,两两所述控制节点之间通过所述数据交换设备通信连接;节点组由所述数据处理系统中的存储节点和所述数据处理系统中的控制节点组成,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述控制节点用于对所连接的存储 节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;第一控制节点为所述节点组中的控制节点,第一存储节点为所述节点组中与所述第一控制节点连接的存储节点,第二控制节点为所述节点组中的控制节点,第二存储节点为所述节点组中与所述第二控制节点连接的存储节点;
所述第二控制节点,用于向所述数据交换设备发送读取消息,所述读取消息用于指定读取所述第一数据;
所述数据交换设备,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息;
所述第一控制节点,用于在接收到所述数据交换设备转发的所述读取消息时,如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备,其中,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
所述数据交换设备,还用于转发所述读取的所述第一数据至所述第二控制节点。
结合第四方面,在第一种可能的实现方式中,所述数据交换设备,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息具体为:
所述数据交换设备,用于接收由所述第二控制节点发送的载有组播指令的所述读取消息,在检测到所述组播指令时向所述节点组中除所述第二控制节点以外的其它控制节点组播所述读取消息。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二控制节点,还用于在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第 一数据的数据状态标识置为有效标识,向所述数据交换设备发送指向所述第一控制节点的通知消息;
所述数据交换设备,还用于转发所述通知消息至所述第一控制节点;
所述第一控制节点,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用。
结合第四方面或第四方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第一控制节点,还用于在接收到所述数据交换设备转发的所述读取消息时,如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一控制节点,用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体包括:
所述第一控制节点,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备发送载有单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令且所述单播指令指向所述目的控制节点时向所述目的控制节点单播所述读取消息。
结合第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第一控制节点,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述 数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
结合第四方面或第四方面的以上任一项可能的实现方式,在第六种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
结合第四方面,在第七种可能的实现方式中,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点包括:所述多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
通过上述方案,多处理器网络中,对于用于存储第一数据的存储节点,为每个该存储节点中存储第一数据设置数据状态标识,由与该存储节点连接的控制节点管理该数据状态标识,保证第一数据的数据一致性,从而节点组中控制节点之间通过消息交互来读取的第一数据是当前最新的。
附图说明
图1A为数据读取方法的应用场景的网络拓扑结构示意图;
图1B为图1A中数据处理设备的逻辑结构示意图;
图1C为图1A中内存设备的逻辑结构示意图;
图2为从第一控制节点的角度给出的数据读取方法的一种示范性流程图;
图3为基于图2所述数据读取方法的一种可选示范性流程图;
图4为基于图3所述数据读取方法的一种可选示范性流程图;
图5为对图4中步骤A401的一种可选示范性流程图;
图6为基于图6所述数据读取方法的一种可选示范性流程图;
图7为依据本发明一实施例的第一控制节点700提供的逻辑结构示意图;
图8为依据本发明一实施例的第一控制节点800提供的硬件结构示意图;
图9为依据本发明一实施例的数据处理系统900提供的系统逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作如下定义:存储节点具有有效标识,是指该存储节点中第一数据的数据状态标识为有效标识;存储节点具有不确定标识,是指该存储节点中第一数据的数据状态标识为不确定标识;存储节点具有无效标识,是指该存储节点中第一数据的数据状态标识为无效标识。作如下细化定义,缓存节点具有有效标识,是指该缓存节点中第一数据的数据状态标识为有效标识;缓存节点具有不确定标识,是指该缓存节点中第一数据的数据状态标识为不确定标识;缓存节点具有无效标识,是指该缓存节点中第一数据的数据状态标识为无效标识。作如下细化定义,内存节点具有有效标识,是指该内存节点中第一数据的数据状态标识为有效标识;内存节点具有不确定标识,是指该内存节点中第一数据的数据状态标识为不确定标识;内存节点具有无效标识,是指该内存节点中第一数据的数据状态标识为无效标识。作如下细化定义,第一存储节点具有有效标识,是指该第一存储节点中第一数据的数据状态标识为有效标识;第一存储节点具有不确定标识,是指该第一存储节点中第一数 据的数据状态标识为不确定标识;第一存储节点具有无效标识,是指该第一存储节点中第一数据的数据状态标识为无效标识。作如下细化定义,第二存储节点具有有效标识,是指该第二存储节点中第一数据的数据状态标识为有效标识;第二存储节点具有不确定标识,是指该第二存储节点中第一数据的数据状态标识为不确定标识;第二存储节点具有无效标识,是指该第二存储节点中第一数据的数据状态标识为无效标识。作如下细化定义,目的存储节点具有有效标识,是指该目的存储节点中第一数据的数据状态标识为有效标识;目的存储节点具有不确定标识,是指该目的存储节点中第一数据的数据状态标识为不确定标识;目的存储节点具有无效标识,是指该目的存储节点中第一数据的数据状态标识为无效标识。
如图1A所示的多处理器网络100,该多处理器网络100包括多个数据处理设备(包括数据处理设备101A和数据处理设备101B)、一个或多个数据交换设备(包括数据交换设备102A和数据交换设备102B)、和一个或多个内存设备103,每个数据处理设备可以包括一个或多个处理器节点,另外该多处理器网络100包括的处理器节点之间通过消息交互的方式实现数据传输;处理业务时,该业务的进程可在该多处理器网络100包括的处理器节点之间迁移。其中,数据处理设备101A为一个或多个,数据处理设备101A与数据交换设备102A通信连接,数据处理设备101A与数据交换设备102A通过消息进行数据交互,两个数据处理设备101A的消息交互需经过数据交换设备102A进行消息转发;类似地,数据处理设备101B为一个或多个,数据处理设备101B与数据交换设备102B通信连接,数据处理设备101B与数据交换设备102B通过消息进行数据交互,两个数据处理设备101B的消息交互需经过数据交换设备102B进行消息转发。数据处理设备101A与数据处理设备101B之间通过消息进行数据交互,则需要经过数据交换设备102A和数据交换设备102B进行该消息的转发。
需说明的是,图1A所示的多处理器网络100包括的数据处理设备(包括数据处理设备101A和数据处理设备101B)的个数仅是示意,可在具体实施时根据需求增减数据交换设备的个数,但多处理器网络100包括的数据处理设备至少为两个。
如图1B所示,数据处理设备包括处理器节点(即CPU)和缓存节点(即 Cache);数据处理设备中的处理器节点与缓存节点通过总线连接;如果数据处理设备包括一个处理器节点和一个缓存节点,则该数据处理设备中的该个处理器节点与该个缓存节点总线连接;如果该数据处理设备包括多个处理器节点和多个缓存节点,处理器节点的数量和缓存节点的数量相同,则该数据处理设备包括的所有处理器节点与所有缓存节点一一对应地以总线连接。对于数据处理设备中总线连接的处理器节点和缓存节点,该处理器节点具有从该缓存节点读取数据和对缓存节点进行数据写入的能力;但本发明实施例对该数据处理设备的具体实现形式不做限定,例如对采用哪些电子器件组成该数据处理设备不做限定,对该数据处理设备支持的数据位数不做限定。举例说明,多处理器网络100中的数据处理设备可以为普通的计算机、移动终端、工作站或服务器、专用服务器等,如X86处理器。
其中,对于数据处理设备的缓存节点中存储的数据,由与该缓存节点总线连接的处理器节点访问和管理。举例,该处理器节点,可在该缓存节点缓存第一数据,并根据该缓存节点缓存的该第一数据是否为当前最新的设置该缓存节点中第一数据的数据状态标识;如果该缓存节点缓存的第一数据不是当前最新的,为该缓存节点中第一数据的数据状态标识设置无效标识;该缓存节点缓存的第一数据是当前最新的,如果该处理器节点未将该缓存节点缓存的第一数据向其他处理器节点发送,为该缓存节点中第一数据的数据状态标识设置有效标识;该缓存节点缓存的第一数据是当前最新的,在该处理器节点将该缓存节点缓存的第一数据向其他处理器节点发送的过程中,为该缓存节点中第一数据的数据状态标识设置不确定标识。
另外,数据处理设备中的处理器节点与数据交换设备通信连接,从而,多处理器网络100中两两处理器节点可以通过该数据交换设备进行消息交互;两两处理器节点之间进行消息交互的过程中,由数据交换设备在两两处理器节点之间进行消息转发。举例,处理器节点从与其总线连接的缓存节点中读取第一数据,将读取的第一数据添入消息,并在该消息中添加了目的地址,该目的地址指向期望将该消息发送至的处理器节点,将该消息向数据交换设备发送,数据交换设备根据该消息中记载的目的地址来将将该消息转发至该目的地址指向的处理器节点,该目的地址指向的处理器节点从该消息中解析出该第一数据, 在两两处理器节点之间通过数据交换设备完成载有第一数据的消息的传输。
再举例说明,数据处理设备101A中的某个处理器节点触发载有单播指令的读取消息并将该读取消息发送至数据转发设备102A;数据转发设备102A从该读取消息中检测到该单播指令,假设该单播指令指定数据处理设备101B中的处理器节点,则转发该读取消息至数据转发设备102B,由数据转发设备102B将该读取消息转发至数据处理设备101B中的处理器节点。
如图1A所示的多处理器网络100,包括数据交换设备102A和数据交换设备102B;数据交换设备102A与数据交换设备102B之间通信连接;可选地,数据交换设备102A和数据交换设备102B可以属于同一局域网(Local Area Network,LAN);可选地,数据交换设备102A和数据交换设备102B属于不同局域网,数据交换设备102A与数据交换设备102B之间通过以太网(Ethernet)建立通信连接。以此类推,该多处理器网络100中的所有数据交换设备可以是处于同一局域网;或者,该多处理器网络100中的所有数据交换设备属于多个局域网,不属于同一局域网的数据交换设备之间通过以太网连接;通过数据交换设备之间的通信连接,保证多处理器网络100中两两处理器节点的消息交互。作为一可选实施方式,数据交换设备采用交换机(Switch)实现。通过该交换机进行两两处理器节点之间的消息转发。
需说明的是,图1A所示的多处理器网络100包括的数据交换设备(包括数据交换设备102A和数据交换设备102B)的个数仅是示意,具体实施时,多处理器网络100包括的数据交换设备可以是一个或多个,具体在该多处理器网络100中采用多少个数据交换设备,根据需求而定。以图1A举例说明,多处理器网络100可仅包括图1A中的数据交换设备102A和图1A中的多个数据处理设备101A,而不包括图1A中的数据交换设备102B和数据处理设备101B,通过数据交换设备102A转发多个数据处理设备101A中的处理器节点之间交互的消息。
需说明的是,在两两数据交换设备中的处理器节点之间转发消息的路径上,该路径可能包括经过一个或多个数据交换设备,即需经过一个或多个数据交换设备完成两两处理器节点之间的消息转发。以图1A举例说明,多处理器网络100中,在数据处理设备101A中的处理器节点向数据处理设备101B中的处理器节点发送消息的过程中,首先数据处理设备101A中的处理器节点向数据交换设备 102A发送消息,然后数据交换设备102A在识别到期望将该消息发送至数据处理设备101B中的处理器节点时将该消息转发至数据交换设备102B,最后数据交换设备102B将该消息发送至数据处理设备101B中的处理器节点。
可选地,对于多处理器网络100包括的每个数据交换设备,该数据交换设备支持与其直接通信连接的处理器节点的最大个数通常是确定的,随着多处理器网络100中处理器节点的数量增加,需增加数据交换设备的数量,将增加的数据交换设备与增加的多个处理器节点建立通信连接,多处理器网络100中将增加的数据交换设备与原有的数据交换设备建立通信连接,从而实现通过增加数据交换设备的方式扩充多处理器网络100中的处理器节点的个数;因每个处理器节点会对应地连接一个缓存节点,从而可通过增加数据交换设备的方式扩充多处理器网络100中的缓存节点的个数。
如图1A所示的多处理器网络100,多处理器网络100还包括内存设备103,内存设备103与数据交换设备102A通信连接;需说明的是,内存设备103与数据交换设备102A的通信连接,仅是示意,例如内存设备103还可与数据交换设备102B通信连接。以此类推,对该内存设备与哪个或哪些数据交换设备连接不做限定。
参见图1C,多处理器网络100包括的内存设备,是指具有存储功能的硬件设备;具体地,内存设备包括控制器和内存节点。其中,控制器包括处理器和内存控制器;可选地,内存设备中,该处理器与该内存控制器直接地电性连接;可选地,内存设备中,该处理器与该内存控制器总线连接;可选地,内存设备中,该内存控制器与该内存节点直接地电性连接;可选地,内存设备中,该内存控制器与该内存节点总线连接。
其中,该内存节点用于存储数据,由内存设备中的处理器控制该内存控制器对该内存节点进行数据的读取或写入;举例,在该内存节点缓存第一数据之后,该处理器根据该内存节点存储的该第一数据是否为当前最新的设置该内存节点中第一数据的数据状态标识;该内存节点存储的第一数据是当前最新的,如果该控制器未将该内存节点存储的第一数据向处理器节点发送,该内存节点具有有效标识(在向该内存节点写入数据以更新该内存节点存储的第一数据为最新数据时,该处理器控制内存控制器为该内存节点中第一数据的数据状态标 识设置有效标识);该内存节点存储的第一数据是当前最新的,在该控制器将该内存节点存储的第一数据向处理器节点发送的过程中,该处理器控制内存控制器为该内存节点中第一数据的数据状态标识设置不确定标识,该处理器节点依次完成从该控制器接收第一数据、将该第一数据在与其总线连接的缓存节点缓存、将与其总线连接的缓存节点中第一数据的数据状态标识由无效标识更改为有效标识时向该控制器发送通知消息,该控制器的处理器接收到该通知消息时控制内存控制器将该内存节点中第一数据的数据状态标识由不确定标识更改为无效标识。因此,如果该内存节点存储的第一数据不是当前最新的,该内存节点中第一数据的数据状态标识为无效标识;如果该内存节点存储的第一数据是当前最新的,该内存节点中第一数据的数据状态标识可能为有效标识或者不确定标识。
内存设备中控制器包括的处理器,用于经数据交换设备与多处理器网络100中的处理器节点进行消息交互;例如,节点组中的处理器节点向内存设备中的控制器发送读取消息,该控制器中的处理器接收该读取消息,响应该读取消息并依次执行:控制内存控制器从内存节点读取第一数据,将读取的第一数据以消息的方式反馈节点组中发送该读取消息的该处理器节点。
内存设备中控制器包括的内存控制器,用于在内存设备的处理器的控制下,对内存节点执行读操作/写操作。
需说明的是,因内存设备中的控制器(通过其包括的处理器实现)可经数据交换设备与数据处理设备中的处理器节点进行消息交互;通过该消息交互,数据处理器设备中的处理器节点接收由该内存设备的控制器从该内存节点读取的数据,并将读取的数据临时存放在该数据处理器设备中的缓存节点,完成在该缓存节点中对该内存节点存储的数据进行镜像;这样,该处理器节点可通过总线高速访问该缓存节点中存储的镜像数据,而不需要访问内存中的数据。以此类推,对于多处理器网络100中处理器节点期望处理的数据,都会预先对内存节点中存储的该数据进行镜像并将镜像数据临时存放在与该处理器节点总线连接的缓存节点中。
可选地,为提高处理器节点从内存获取数据数据的速度,采用共享内存作为该内存设备。该共享内存是指:将处理器与内存解耦后,由解耦后的内存组 成的内存池。其中,每个处理器节点均可通过数据交换设备访问该共享内存,包括:
处理器节点与该共享内存的控制器进行消息交互,以接收该共享内存的控制器从该共享内存的内存节点读取的数据;
处理器节点与该共享内存的控制器进行消息交互以通过交互的消息向该共享内存的控制器发送数据使得写入数据。
本发明实施例中,当多处理器网络100中多个处理器节点期望访问第一数据时,每个处理器节点会通过数据转发设备与内存设备中的控制器进行消息通信以对内存节点存储的第一数据进行镜像并将镜像的第一数据缓存在与其总线连接的缓存节点中。为了在多处理器网络100包括的缓存节点存储的第一数据的缓存一致性,或者为了实现多处理器网络100包括的缓存节点和内存节点中存储的第一数据的数据一致性,提供了数据读取方法。
为实现该数据读取方法,预先建立确定与第一数据对应的节点组,节点组由两类节点组成,包括:控制节点和存储节点。
可选地,为在多处理器网络100中实现第一数据的缓存一致性,将多处理器网络100中期望处理第一数据的处理器节点添入该节点组,添入的处理器节点属于控制节点;相应地,节点组中的处理器节点期望处理该第一数据时,会从存储该第一数据的内存设备读取该第一数据,将读取的该第一数据在与该处理器节点总线连接的缓存节点中存储(对内存设备存储的第一数据进行镜像),因此也将与节点组中的处理器节点总线连接的缓存节点添入该节点组,添入的缓存节点属于存储节点。
可选地,为在多处理器网络100中实现第一数据的数据一致性,不但将多处理器网络100中期望处理第一数据的处理器节点作为控制节点添入该节点组,将与节点组中的处理器节点总线连接的缓存节点作为存储节点添入该节点组;还将多处理器网络100中存储第一数据的内存节点添入该节点组,添入的内存节点属于存储节点,以及将该内存设备中与该内存节点连接的控制器添入该节点组,添入的控制器属于控制节点。
可见,节点组包括的两类节点都与第一数据相关,因此,多处理器网络100中不期望处理该第一数据的处理器节点不属于该节点组,对应地,未缓 存第一数据的缓存节点(即与不期望处理该第一数据的处理器节点总线连接的缓存节点)不属于该节点组;多处理器网络100中,未存储有该第一数据的内存设备包括的控制器和内存节点不属于该节点组。
节点组中,控制节点可以对与其连接的存储节点进行第一数据的读写访问,包括为该存储节点中第一数据的数据状态标识设置标识,可设置的标识包括有效标识、无效标识和不确定标识。需强调的是,本发明实施例中,所述节点组中至多一个所述存储节点具有有效标识,所述节点组中的存储节点在存储有当前最新的所述第一数据时该存储节点中第一数据的数据状态标识被设置所述有效标识。
作为本发明一实施例,本实施例所述的节点组可以是为实现第一数据的缓存一致性而建立的节点组,该节点组中的存储节点包括多处理器网络100中缓存第一数据的缓存节点,该节点组中的控制节点包括多处理器网络100中与该缓存节点总线连接的处理器节点。或者,本实施例所述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;该节点组中的控制节点:多处理器网络100中,与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
预先定义:所述节点组中的控制节点包括第二控制节点,节点组中的存储节点包括:与第二控制节点总线连接的第二存储节点;所述节点组中除所述第二控制节点以外的其它控制节点包括第一控制节点,第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。待建立节点组之后,假设节点组中第一存储节点(不是第二存储节点)具有有效标识,节点组中除第一存储节点以外的其他存储节点均具有无效标识;即第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中除第二控制节点外的其他控制节点都没有同时从节点组读取当前最新的第一数据,具体地,节点组中除第二控制节点外的其他控制节点都没有同时触发读取消息以从节点组读取当前最新的第一数据;基于上述假设,下面以第二控制节点期望读取第一数据为例,详细解释本发明实施例提供的数据读取方法的实施流程,该实施流程依 次包括步骤S101、步骤S102、步骤S103、步骤S104、步骤S105、步骤S106和步骤S107。
预先在数据交换设备中建立一个节点表并存储,该节点表记录:节点组中每个控制节点的地址和将消息发送至每个控制节点所需的路由信息,该路由信息记录有将消息发送至每个控制节点的路由路径;从而,多个控制节点之间经数据交换设备进行消息交互时,数据交换设备从其存储的节点表查找到将消息发送至控制节点所需的路由信息;
步骤S101,第二控制节点,期望读取第一数据时,如果与第二控制节点连接的第二存储节点(定义第二存储节点为与第二控制节点总线连接的缓存节点)具有无效标识,则触发读取消息,该读取消息载有组播指令,该组播指令指定向除第二控制节点以外的其它控制节点转发该读取消息;第二控制节点向数据交换设备发送载有组播指令的读取消息;这时,节点组中各存储节点的标识分别是,第一存储节点(不是与第二控制节点连接的第二存储节点)具有有效标识,除具有有效标识的第一存储节点之外的其他存储节点均具有无效标识,包括与第二控制节点连接的第二存储节点具有无效标识;
步骤S102,数据交换设备,接收该读取消息,从接收的该读取消息中检测到组播指令时从节点表中查找期望将读取消息转发至除第二控制节点以外的其它控制节点所需的路由信息,根据查找到的路由信息向除第二控制节点以外的其它控制节点组播;
步骤S103,除第二控制节点以外的其它控制节点,在接收到组播的读取消息时,检测与该控制节点总线连接的存储节点中第一数据的数据状态标识是否为有效标识;以第一控制节点为例,如果第一控制节点检测到第一存储节点具有有效标识,第一控制节点从第一存储节点读取第一数据(即该读取消息指定的数据),并向数据交换设备发送响应消息使得经数据交换设备向第二控制节点反馈读取的第一数据,该响应消息载有从第一存储节点读取的第一数据;第一控制节点开始向第二控制节点发送该响应消息时,第一控制节点更改第一存储节点中第一数据的数据状态标识,从有效标识更改为不确定标识;在第一控制节点经数据交换设备向第二控制节点发送该响应消息的过程中,第一存储节点具有不确定标识,节点组中除一个具有不确定标识的 第一存储节点以外的存储节点均具有无效标识;
步骤S104,数据交换设备,接收该响应消息,从节点表中查找将响应消息转发至除第二控制节点所需的路由信息,根据查找到的路由信息向除第二控制节点转发该响应消息;
步骤S105,第二控制节点,接收该响应消息,从该响应消息解析出从第一存储节点读取的第一数据,并将解析出的第一数据写入第二存储节点,并更改第二存储节点中第一数据的数据状态标识,从无效标识更改为有效标识;第二控制节点完成更改第二存储节点中第一数据的数据状态标识(从无效标识更改为有效标识)时,向该第一控制节点反馈通知消息;在第二控制节点经数据交换设备向该第一控制节点发送该通知消息的过程中,第二存储节点具有有效标识,第一存储节点具有不确定标识,节点组中除一个具有有效标识的缓存节点和一个具有不确定标识的第一存储节点以外的存储节点均具有无效标识;
步骤S106,数据交换设备,接收该通知消息,从节点表中查找将通知消息转发至第一控制节点所需的路由信息,根据查找到的路由信息向第一控制节点转发该通知消息;
步骤S107,该第一控制节点接收到该通知消息时,更改与第一存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点的标识分别是,第二存储节点具有有效标识,存储节点中除该个具有有效标识的缓存节点以外的其他存储节点都具有无效标识,包括第一存储节点具有无效标识。
本发明一实施例,本实施例所述的节点组可以是为实现第一数据的缓存一致性而建立的节点组,该节点组中的存储节点包括多处理器网络100中缓存第一数据的缓存节点,该节点组中的控制节点包括多处理器网络100中与该缓存节点总线连接的处理器节点。或者,本实施例所述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;该节点组中的控制节点:多处理器网络100中,与节点组中的 缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
假设第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中的第二控制节点之外的一个控制节点正在与第一控制节点进行消息交互以从第一控制节点获取当前最新的第一数据;因此节点组中第一存储节点具有不确定标识,节点组中除第一存储节点以外的存储节点均具有无效标识;基于上述假设,下面以第二控制节点期望读取第一数据为例,详细解释本发明实施例提供的数据读取方法的实施流程,该实施流程依次包括步骤S201、步骤S202、步骤S203、步骤S204、步骤S205、步骤S206和步骤S207。
需说明的是,预先在每个存储节点分别建立了目录,该目录记录:该存储节点中第一数据的数据状态标识,在内存节点中存储第一数据的地址,目的控制节点的地址。其中,该存储节点中第一数据的数据状态标识可以是一下的任一种,包括:有效标识、无效标识和不确定标识。以第一存储节点为例,当某个控制节点与第一控制节点进行消息交互以从存储当前最新的第一数据的第一存储节点获取第一数据时,将该个控制节点作为目的控制节点,并在第一存储节点的目录中,以该个控制节点的地址更新目的控制节点的地址;并且,当某个控制节点与第一控制节点进行消息交互以从第一存储节点获取第一数据时,第一控制节点将第一存储节点中第一数据的数据状态标识置为不确定标识。以此类推,对于除第一控制节点以外的其他一控制节点,在其他一控制节点与该第一控制节点进行消息交互以从该第一存储节点获取第一数据时,将该其他一控制节点作为目的控制节点,并以该其他一控制节点的地址更新该存储节点的目录中记录的所述目的控制节点的地址;并且,当其他一控制节点与第一控制节点进行消息交互以从第一存储节点获取第一数据时,第一控制节点将第一存储节点中第一数据的数据状态标识置为不确定标识。
步骤S201、第二控制节点,期望读取第一数据时,如果与第二控制节点连接的第二存储节点具有无效标识,则触发读取消息,该读取消息载有组播指令,该组播指令指定向除第二控制节点以外的其它控制节点转发该读取消息;第二控制节点向数据交换设备发送载有组播指令的读取消息;这时,节点组中各存储节点的标识分别是,第一存储节点(不为第二存储节点)具有 不确定标识,除具有不确定标识的第一存储节点之外的其他存储节点均具有无效标识,包括第二存储节点具有无效标识;
步骤S202、数据交换设备,接收该读取消息,从接收的该读取消息中检测到组播指令时从节点表中查找期望将读取消息转发至除第二控制节点以外的其它控制节点所需的路由信息,根据查找到的路由信息向除第二控制节点以外的其它控制节点组播;
步骤S203,除第二控制节点以外的其它控制节点,在接收到组播的读取消息时,检测与该控制节点总线连接的存储节点具有的标识是否为有效标识或者不确定标识;第一控制节点检测到第一存储节点具有不确定标识时,触发读取消息,该读取消息载有单播指令;第一控制节点查找第一存储节点的目录中记录的所述目的控制节点的地址,根据该目的控制节点的地址经数据转发设备向该目的控制节点发送载有单播指令的读取消息;
步骤S204、数据交换设备,接收该读取消息,从接收的该读取消息中检测到单播指令时从节点表中查找期望将读取消息转发至目的控制节点所需的路由信息,根据查找到的路由信息向目的控制节点单播该读取消息;
步骤S205、目的控制节点,接收单播的读取消息时,等待依次执行完从第一控制节点接收第一数据、在目的存储节点缓存该第一数据、将目的存储节点中第一数据的数据状态标识由无效标识置为有效标识,在将目的存储节点中第一数据的数据状态标识由无效标识置为有效标识时,经数据交换设备向第一控制节点反馈通知消息;目的控制节点在向第一控制节点反馈通知消息之后,才响应该读取消息,从目的存储节点读取该消息指定的数据(即第一数据),并生成响应消息,该响应消息载有该读取消息指定的数据,经数据交换设备向第二控制节点反馈该响应消息,开始发送该响应消息时将目的存储节点中第一数据的数据状态标识由有效标识更改为不确定标识;这时,在目的控制节点经数据交换设备向第一控制节点发送该通知消息的过程中,目的存储节点具有有效标识,第一存储节点具有不确定标识,节点组中除一个具有有效标识的目的存储节点和一个具有不确定标识的第一存储节点以外的存储节点均具有无效标识;在目的控制节点经数据交换设备向第二控制节点发送该响应消息的过程中,目的存储节点具有不确定标识,节点组中除第 一存储节点和目的存储节点以外的存储节点均具有无效标识;
步骤S205、数据交换设备,依次接收该通知消息和响应消息,从节点表中查找将通知消息转发至第一控制节点所需的路由信息并根据查找的路由信息向第一控制节点转发该通知消息,从节点表中查找将响应消息转发至第二控制节点所需的路由信息并根据查找到的路由信息向第二控制节点转发该响应消息;
步骤S206、第一控制节点,接收到由目的控制节点发送的通知消息时,更改与第一存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;
步骤S207、第二控制节点,接收到该响应消息时,从该响应消息解析出从目的存储节点读取的第一数据,并将解析出的第一数据在第二存储节点缓存,完成第一数据的缓存时更改第二存储节点中第一数据的数据状态标识(由无效标识更改为有效标识);第二控制节点完成更改第二存储节点中第一数据的数据状态标识(由无效标识更改为有效标识)时,向该目的控制节点反馈通知消息;在第二控制节点经数据交换设备向该目的控制节点发送该通知消息的过程中,与第二存储节点具有有效标识,目的存储节点具有不确定标识,节点组中除一个具有有效标识的第二存储节点和一个具有不确定标识的目的存储节点以外的存储节点均具有无效标识;
步骤S208、数据交换设备,接收该通知消息,从节点表中查找将通知消息转发至目的控制节点所需的路由信息,根据查找到的路由信息向目的控制节点转发该通知消息;
步骤S209、目的控制节点,接收到该通知消息时,更改目的存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点的标识分别是,第二存储节点具有有效标识,存储节点中除该个具有有效标识的第二存储节点以外的其他存储节点都具有无效标识,包括目的存储节点具有无效标识。
本发明一实施例,本实施例所述的节点组可以是为实现第一数据的缓存一致性而建立的节点组,该节点组中的存储节点包括多处理器网络100中缓 存第一数据的缓存节点,该节点组中的控制节点包括多处理器网络100中与该缓存节点总线连接的处理器节点。或者,本实施例所述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;该节点组中的控制节点:多处理器网络100中,与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
假设第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中的第二控制节点之外的一个控制节点正在与第二控制节点进行消息交互以从第二控制节点获取当前最新的第一数据;因此节点组中第二存储节点具有不确定标识,节点组中除第二存储节点以外的存储节点均具有无效标识;基于上述假设,下面以第二控制节点期望读取第一数据为例,详细解释本发明实施例提供的数据读取方法的实施流程,该实施流程依次包括步骤S301、步骤S302、步骤S303、步骤S304、步骤S305、步骤S306和步骤S307。
需说明的是,预先在每个存储节点分别建立了目录,该目录记录:该存储节点中第一数据的数据状态标识,在内存节点中存储第一数据的地址,目的控制节点的地址。其中,该存储节点中第一数据的数据状态标识可以是一下的任一种,包括:有效标识、无效标识和不确定标识。以第二存储节点为例,当某个控制节点与第二控制节点进行消息交互以从存储当前最新的第一数据的第二存储节点获取第一数据时,将该个控制节点作为目的控制节点,并在第二存储节点的目录中,以该个控制节点的地址更新目的控制节点的地址;并且,当某个控制节点与第二控制节点进行消息交互以从第二存储节点获取第一数据时,第二控制节点将第二存储节点中第一数据的数据状态标识置为不确定标识。以此类推,对于每个存储节点,在其他一控制节点与该存储节点连接的控制节点进行消息交互以从该存储节点获取第一数据时,将该其他一控制节点作为目的控制节点,并以该其他一控制节点的地址更新该存储节点的目录中记录的所述目的控制节点的地址;并且,当其他一控制节点与该控制节点进行消息交互以从该存储节点获取第一数据时,该控制节点将与其连接的存储节点中第一数据的数据状态标识置为不确定标识。
步骤S301、第二控制节点,期望读取第一数据时,如果第二存储节点具 有不确定标识,则触发读取消息,该读取消息载有单播指令;查找第二存储节点的目录中记录的所述目的控制节点的地址,根据该目的控制节点的地址经数据转发设备向该目的控制节点;这时,节点组中各存储节点的标识分别是,第二存储节点具有不确定标识,假如目的控制节点未完成接收第一数据,除节点组中第二存储节点之外的其他存储节点均具有无效标识;
步骤S302、数据交换设备,接收该读取消息,从接收的该读取消息中检测到单播指令时从节点表中查找期望将读取消息转发至目的控制节点所需的路由信息,根据查找到的路由信息向目的控制节点单播该读取消息;
步骤S303、目的控制节点,接收单播的读取消息时,等待依次执行完从第二控制节点接收第一数据、在目的存储节点缓存该第一数据、将目的存储节点中第一数据的数据状态标识由无效标识置为有效标识,目的控制节点更新目的存储节点中的第一数据;在将目的存储节点中第一数据的数据状态标识由无效标识置为有效标识时,经数据交换设备向第二控制节点反馈通知消息;目的控制节点在向第二控制节点反馈通知消息之后,才响应第二控制节点的该读取消息,从目的存储节点读取该消息指定的数据(即更新的第一数据),并生成响应消息,该响应消息载有该读取消息指定的数据,经数据交换设备向第二控制器节点反馈该响应消息,开始发送该响应消息时将目的存储节点中第一数据的数据状态标识由有效标识置为不确定标识;这时,在目的控制节点经数据交换设备向第二控制节点发送该通知消息的过程中,目的存储节点具有有效标识,第二存储节点具有不确定标识,节点组中除一个具有有效标识的目的存储节点和一个具有不确定标识的第二存储节点以外的存储节点均具有无效标识;在目的控制节点经数据交换设备向第二控制节点发送该响应消息的过程中,目的存储节点具有不确定标识,第二存储节点具有不确定标识,节点组中除一个具有不确定标识的目的存储节点和一个具有不确定标识的第二存储节点以外的存储节点均具有无效标识;
步骤S304、数据交换设备,依次接收该通知消息和响应消息,从节点表中查找将通知消息转发至第二控制节点所需的路由信息,根据查找到的路由信息依次向第二控制节点转发该通知消息和该响应消息;
步骤S305、第二控制节点,先接收到由目的控制节点发送的通知消息, 将与第二存储节点中第一数据的数据状态标识由不确定标识置为无效标识;再接收到该响应消息时,从该响应消息解析出从目的存储节点读取的第一数据,并将解析出的第一数据在第二存储节点缓存,完成第一数据的缓存时更改第二存储节点中第一数据的数据状态标识,由无效标识更改为有效标识;第二控制节点完成更改第二存储节点中第一数据的数据状态标识(由无效标识更改为有效标识)时,向该目的控制节点反馈通知消息;在第二控制节点经数据交换设备向该目的控制节点发送该通知消息的过程中,第二存储节点具有有效标识,目的存储节点具有不确定标识,节点组中除一个具有有效标识的第二存储节点和一个具有不确定标识的目的存储节点以外的存储节点均具有无效标识;
步骤S306、数据交换设备,接收该通知消息,从节点表中查找将通知消息转发至目的控制节点所需的路由信息,根据查找到的路由信息向目的控制节点转发该通知消息;
步骤S307、目的控制节点,接收到该通知消息时,更改目的存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点的标识分别是,第二存储节点具有有效标识,存储节点中除该个具有有效标识的第二存储节点以外的其他存储节点都具有无效标识,包括目的存储节点具有无效标识。
本发明一实施例,假如节点组中的第一处理器节点期望向内存设备写数据,首先与第一处理器节点总线连接的第一缓存节点中第一数据的数据状态标识必须为有效标识(该缓存节点缓存的第一数据是当前最新的),第一处理器节点才能向第一缓存节点写入数据以更新当前最新的第一数据,然后第一处理器节点才能向内存设备写数据,下面详述第一处理器节点期望向内存设备写第一数据的实现流程,该实现流程依次包括步骤S401、步骤S402、步骤S403、步骤S404、步骤S405、步骤S406和步骤S407。
需说明的是,本实施例所述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;多处理器 网络100中,该节点组中的控制节点:与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
步骤S401、第一处理器节点,在第一缓存节点具有有效标识时,先将期望写入内存节点的第一数据(更新的第一数据)写入缓存以更新缓存节点中的第一数据,再经数据交换设备向内存设备的控制器发送载有写指令的写消息;
步骤S402、数据交换设备,接收该写消息,从节点表中查找将写消息转发至内存设备的控制器所需的路由信息,根据查找到的路由信息向内存设备的控制器转发该写消息;
步骤S403、内存设备中该控制器包括的处理器接收该写消息,从该写消息中检测到写指令时触发读取消息,经数据处理器设备向第一处理器节点发送该读取消息;节点组中各存储节点中第一数据的数据状态标识分别是,第一缓存节点具有有效标识,存储节点中除第一缓存节点以外的其他存储节点都具有无效标识,包括:内存节点具有无效标识;
步骤S404、数据交换设备,接收该读取消息,从节点表中查找将读取消息转发至第一处理器节点所需的路由信息,根据查找到的路由信息向第一处理器节点转发该读取消息;
步骤S405、第一处理器节点,接收读取消息时从第一缓存节点读取该读取消息指定的数据(即第一消息),并生成响应消息,该响应消息载有该读取消息指定的数据,经数据交换设备向内存设备的控制器反馈该响应消息,开始发送该响应消息时将第一存储节点中第一数据的数据状态标识由有效标识置为不确定标识;这时,在第一处理器节点经数据交换设备向内存设备的控制器发送该响应消息的过程中,第一缓存节点具有不确定标识,节点组中除一个具有不确定标识的第一缓存节点以外的存储节点均具有无效标识,包括内存节点具有无效标识;
步骤S406、数据交换设备,接收该响应消息,从节点表中查找将该响应消息转发至内存设备的控制器所需的路由信息,根据查找到的路由信息向内存设备的控制器转发该读取消息;
步骤S407、内存设备中该控制器包括的处理器,接收该响应消息,从该 响应消息解析出从第一缓存节点读取的第一数据,控制内存控制器将解析出的第一数据写入内存设备的内存节点,完成在该内存节点第一数据的写入时更改内存节点中第一数据的数据状态标识,由无效标识更改为有效标识;内存设备的处理器完成更改内存节点中第一数据的数据状态标识(由无效标识更改为有效标识)时,向该第一处理器节点反馈通知消息;在内存设备的处理器经数据交换设备向该第一处理器节点发送该通知消息的过程中,与内存节点具有有效标识,第一缓存节点具有不确定标识,节点组中除一个具有有效标识的内存节点和一个具有不确定标识的第一缓存节点以外的存储节点均具有无效标识;
步骤S408、数据交换设备,接收该通知消息,从节点表中查找将通知消息转发至第一处理器节点所需的路由信息,根据查找到的路由信息向第一处理器节点转发该通知消息;
步骤S409、第一处理器节点,接收到该通知消息时,更改第一缓存节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点中第一数据的数据状态标识分别是,内存节点具有有效标识,存储节点中除该个具有有效标识的内存节点以外的其他存储节点都具有无效标识,包括第一缓存节点具有无效标识。
从上述实施例可合理推知,第二控制节点触发读取消息的场景有多种,不做限定;例如包括上述的,第二控制节点期望读取第一数据,但与第二控制节点总线连接的缓存节点不具有有效标识(具有不确定标识或者具有无效标识)则触发读取消息;再例如,第二控制节点期望向与其总线连接的缓存节点写数据以更新当前最新的第一数据,但与其总线连接的缓存节点不具有有效标识(即与其总线连接的缓存节点缓存的第一数据可能不是当前最新的),则触发读取消息,先通过该读取消息从节点组中具有有效标识的存储节点获取第一数据,将获取的第一数据在与其总线连接的缓存节点缓存,并将该缓存节点中第一数据的数据状态标识由无效标识更改为有效标识,再对该缓存节点写数据以更新当前最新的第一数据;再例如,第一处理器节点期望向内存设备写第一数据,待第一缓存节点具有有效标识时,预先将期望写 入内存设备的第一数据在第一缓存节点缓存,然后通知内存设备的控制器向第一处理器节点发送读取消息以获取第一缓存节点缓存的第一数据,使得内存设备中控制器包括的处理器控制内存控制器将缓存的第一数据写入内存节点,完成第一处理器节点向内存设备的内存节点写第一数据。
本发明一实施例,对上述实施例作相应扩展,得到实现数据读取方法的基础工作流程,如图2所示,但为了便于描述,仅示出了与本发明实施例相关的部分。如图2所示的基础工作流程是从第一控制节点的角度给出的,图2提供的基础工作流程包括:步骤A201和步骤A202。
本实施例中,所述节点组包括存储节点和控制节点,所述节点组包括多处理器网络100中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。对节点组的解释,具体参见上述实施例的相关解释,在此不再赘述。
可选地,本实施例所述的节点组可以是为实现第一数据的缓存一致性而建立的节点组,该节点组中的存储节点包括多处理器网络100中缓存第一数据的缓存节点,该节点组中的控制节点包括多处理器网络100中与该缓存节点总线连接的处理器节点。
可选地,本实施例所述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;多处理器网络100中,该节点组中的控制节点:与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
步骤A201,第一控制节点接收数据交换设备转发的读取消息,所述读取 消息用于指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
步骤A202,如果第一存储节点中所述第一数据的数据状态标识为有效标识,则所述第一控制节点从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据。
本实施例中,第二控制节点期望读取第一数据时,首先检测第二存储节点是否具有有效标识,如果第二存储节点不具有有效标识,则经数据交换设备向与节点组中的其他控制节点进行发送读取消息,通过该读取消息从节点组中除第二存储节点以外的存储节点读取当前最新的第一数据。
值得说明的是,第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中至多有一个存储节点具有有效标识,包括两种情况;
第一种情况,第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中除了第二控制节点外的其他控制节点没有从节点组读取第一数据,节点组中有一个存储节点具有有效标识,本实施例将该具有有效标识的存储节点作为第一存储节点,将与该存储节点总线连接的控制节点作为第一控制节点;
第二种情况,第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中除了第二控制节点外的其他某个控制节点正在与第一控制节点进行消息交互以从第一存储节点读取当前最新的第一数据,这时,第一存储节点不具有有效标识,节点组中不存在具有有效标识的存储节点,待该个控制节点经第一控制节点完成从第一存储节点读取当前最新的第一数据、并为与该个控制节点连接的存储节点中所述第一数据的数据状态标识设置有效标识之后,以该个控制节点作为更新的第一控制节点,以与该个控制节点连接的存 储节点作为新的第一存储节点。
这样,对于第二控制节点发送的读取消息,仅第一控制节点在具有有效标识时经数据交换设备向第二控制节点反馈第一数据,因第一控制节点从第一存储节点读取并反馈的第一数据是当前最新的,能够保证第二控制节点读取的第一数据是当前最新的;以此类推,节点组中的每个控制节点期望读取第一数据时,都能从节点组中读取到当前最新的第一数据。
需说明的是,第二控制节点经第一控制节点从第一存储节点中读取第一数据的过程中,第一控制节点将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,具体在哪个时间点将第一存储节点中所述第一数据的数据状态标识由有效标识更改为不确定标识,不做限定;例如,第一控制节点开始将所述第一存储节点存储的第一数据向第二控制节点发送时,将第一存储节点中所述第一数据的数据状态标识从有效标识更改为不确定标识;再例如,第一控制节点向第二控制节点发送部分所述第一数据时,将第一存储节点中所述第一数据的数据状态标识从有效标识更改为不确定标识。
第二控制节点经第一控制节点从第一存储节点中读取第一数据的过程中,如果第一存储节点具有不确定标识,节点组中不存在具有有效标识的存储节点,则待第二控制节点经第一控制节点完成从第一存储节点读取当前最新的第一数据、在第二缓存节点缓存当前最新的第一数据、为第二缓存节点中所述第一数据的数据状态标识设置有效标识之后,以该第二控制节点作为更新的第一控制节点,以第二缓存节点作为新的第一存储节点。然后,节点组中某个控制节点期望从节点组读取当前最新的第一数据并向节点组发送读取消息,将该个控制节点作为第二控制节点。
可选地,如果内存设备为解耦后的共享内存,本发明实施例在控制节点之间采用消息的方式来进行第一数据的读取,完成一次对当前最新的第一数据的读取,仅需短暂时间,可达微妙级甚至是纳秒级。
可选地,所述第一控制节点接收数据交换设备转发的读取消息,具体为:
所述第一控制节点接收由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
具体地,预先在数据交换设备建立一节点表,该节点表记录节点组中每个控制节点的地址,还记录向每个控制节点转发消息所需的路由信息。实施过程中,在确定哪些控制节点添入节点组时,相应地将确定的控制节点的地址记录在该节点表中。因该节点表存储在数据交换设备中,数据交换设备在向节点组中任一控制节点转发消息时,可查找该节点表,查找出与该消息记录的目的地址相匹配的控制节点的地址,查找到匹配的控制节点的地址时再根据该控制节点的地址查找相应的路由信息;进而,数据交换设备可按照查找到的路由信息转发该消息指具有该目的地址的控制节点。
本实施例中,假如第二存储节点不具有有效标识,第二控制节点期望读取第一数据而触发读取消息,在该读取消息中添加了组播指令,该组播指令指定向节点组中除第二控制节点以外的其他控制节点,并向数据交换设备发送载有组播指令的读取消息;从而,所述数据交换设备在读取消息中检测到该组播指令时,向节点组中除第二控制节点以外的其他控制节点组播所述读取消息。需说明的是,对于数据交换设备采用哪种组播技术不做限定,例如采用哪种组播协议实现该组播技术不做限定,可根据时代发展不断更新该组播技术。
值得说明的是,多处理器网络100包括大量处理器节点,但在通常情况下,只有部分处理器节点处理第一数据,但不排除多处理器网络100包括的所有处理器节点都处理第一数据。数据转发设备接收到读取消息,不是向多处理器网络100包括的所有处理器节点和内存设备中的控制器广播该读取消息,而是向节点组中除第二控制节点以外的控制节点组播该读取消息,有效地减少转发读取消息所需的数据通信量,更具针对性和更具读取效率。可选地,第二控制节点经数据交换设备与节点组中除第二控制节点以外的其他控制节点进行消息交互的过程中,如果第一控制节点支持的通信协议与第二控制节点支持的通信协议不同时,可由数据转发设备进行对该交互的消息进行协议转换;如果第二控制节点向节点组中其他控制节点发送读取消息的过程中,如需经多个数据转发设备依次转发,可能在依次转发过程中需进行数据传输协议的转换,以实现两两控制节点之间的消息交互。
可选地,为保证节点组中至多一个存储节点具有有效标识,基于图2提 供的数据读取方法继续做一细化改进,如图3所示,所述方法还包括步骤A301。
步骤A301,所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
具体地,第二控制节点依次完成从第一控制节点接收第一数据、将接收的第一数据在第二存储节点缓存、将第二存储节点中第一数据的数据状态标识由无效标识更改为有效标识时,向该目的控制节点反馈通知消息;在第二控制节点经数据交换设备向该目的控制节点发送该通知消息的过程中,第二存储节点具有有效标识,第一存储节点具有不确定标识,节点组中除一个具有有效标识的第二存储节点和一个具有不确定标识的第一存储节点以外的存储节点均具有无效标识;
第一控制节点接收到该通知消息时,更改第一存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点中第一数据的数据状态标识分别是,第二存储节点具有有效标识,存储节点中除该个具有有效标识的第二存储节点以外的其他存储节点都具有无效标识,包括第一存储节点具有无效标识。
这样,保证存储有当前最新的第一数据的存储节点,该存储节点中第一数据的数据状态标识为有效标识,其他存储节点中第一数据的数据状态标识均不具有有效标识。
图4为基于图2所述数据读取方法的一种可选工作流程,但为了便于描述,仅示出了与本发明实施例相关的部分。
本发明一实施例,参见图4,所述方法还包括步骤A401。
步骤A401,如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
具体地,第二控制节点期望读取第一数据时,首先检测第二存储节点是否具有有效标识,如果第二存储节点不具有有效标识,则经数据交换设备向与节点组中的其他控制节点进行发送读取消息,通过该读取消息从节点组中除第二存储节点以外的存储节点读取当前最新的第一数据。
第一控制节点向目的控制节点发送第一数据的过程中,在目的控制节点未完成从第一控制节点接收第一数据时接收到从第二控制节点发送的读取消息,这时,节点组中仅第一存储节点具有不确定标识,除第一存储节点以外的其他存储节点均具有无效标识。第一控制节点在接收到该读取消息时,检测到第一存储节点具有不确定标识,查找第一存储节点的目录中记录的目的控制节点信息(包括所述目的控制节点的地址),根据该目的控制节点的地址经数据转发设备向该目的控制节点发送该读取消息;
目的控制节点依次执行完从第一控制节点接收第一数据、在目的存储节点缓存该第一数据、将目的存储节点中第一数据的数据状态标识由无效标识置为有效标识之后,才响应该读取消息,从目的存储节点读取该消息指定的数据(即第一数据),并生成响应消息,该响应消息载有该读取消息指定的数据,经数据交换设备向第二控制节点反馈该响应消息,开始发送该响应消息时将目的存储节点的有效标识置为不确定标识;可选地,向第二控制节点反馈的第一数据为:目的控制节点对目的存储节点中第一数据更改后的数据;
第二控制节点接收到该响应消息时,从该响应消息解析出从目的存储节点读取的第一数据,并将解析出的第一数据在第二存储节点缓存,完成第一数据的缓存时更改第二存储节点中第一数据的数据状态标识,由无效标识更改为有效标识;第二控制节点完成更改第二存储节点中第一数据的数据状态标识(由无效标识更改为有效标识)时,向该目的控制节点反馈通知消息; 在第二控制节点经数据交换设备向该目的控制节点发送该通知消息的过程中,第二存储节点具有有效标识,目的存储节点具有不确定标识,节点组中除一个具有有效标识的第二存储节点和一个具有不确定标识的目的存储节点以外的存储节点均具有无效标识;
目的控制节点接收到该通知消息时,更改目的存储节点中第一数据的数据状态标识,由不确定标识更改为无效标识;这时,节点组中各存储节点的标识分别是,第二存储节点具有有效标识,存储节点中除该个具有有效标识的第二存储节点以外的其他存储节点都具有无效标识,包括目的存储节点具有无效标识。
本实施例中,第二控制节点从节点组读取当前最新的第一数据的过程中,节点组中的目的控制节点正在与第一控制节点进行消息交互以从第一控制节点获取当前最新的第一数据;待目的控制节点经第一控制节点依次完成从第一存储节点读取第一数据、在目的存储节点缓存该第一数据、将目的存储节点中第一数据的数据状态标识由无效标识更改为有效标识之后,目的控制节点可以对目的存储节点写数据以更新当前最新的第一数据,再由目的控制节点向第二控制节点反馈更新后的当前最新的第一数据,第二控制节点存储从目的控制节点获取的第一数据。从而保证了第一数据的正常连续更新,保证了第一数据的正确性;因此本实施例尤其适用于:基于第一数据处理业务的过程中,在节点组中控制节点之间进行进程迁移,保证在处理第一数据的进程迁移过程中,进程迁移到的控制节点能够得到正确的第一数据,保证业务的正确执行。
可选地,对图4中向目的控制节点转发读取消息作一具体细化,参见图5,所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为步骤A4011和步骤A4012。
步骤A4011,所述第一控制节点获取所述第一存储节点中所述第一数据的目的控制节点信息;
步骤A4012,所述第一控制节点向所述数据交换设备发送载有单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令且所述单播指令指向所述目的控制节点时向所述目的控制节点单播所述读取消息。
需说明的是,对于该数据交换设备采用哪种单播技术不做限定,例如采用哪种单播协议实现该单播技术不做限定,可根据时代发展不断更新该单播技术。
具体地,第一控制节点向目的控制节点发送第一数据的过程中,在目的控制节点未完成从第一控制节点接收第一数据时接收到从第二控制节点发送的读取消息,这时第一控制节点检测到第一存储节点具有不确定标识,从目录中查找与目的控制节点对应的目的控制节点信息(该目的控制节点信息包括目的控制节点的地址),触发指定向目的控制节点发送读取消息的单播指令,在该读取消息添加该单播指令,向数据转发设备发送载有单播指令的读取消息;
数据交换设备接收该读取消息,从接收的该读取消息中检测到单播指令时从节点表中查找期望将读取消息转发至目的控制节点所需的路由信息,根据查找到的路由信息向目的控制节点单播该读取消息。
这样,在节点组中采用单播方式转发读取消息,更具指向性,能够减小数据通信量,减小带宽占用。
可选地,基于图4提供的数据读取方法继续做一细化改进,如图6所示,所述方法还包括步骤A601。
步骤A601,所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
具体执行步骤A601时,参见上述的对步骤A401的细化解释,在此不作赘述。具体是,目的控制节点依次执行完从第一控制节点接收第一数据、在目的存储节点缓存该第一数据、将目的存储节点的无效标识置为有效标识之后,才响应该读取消息,从目的存储节点读取该消息指定的数据(即第一数 据),并生成响应消息,该响应消息载有该读取消息指定的数据,经数据交换设备向第二控制节点反馈该响应消息,第二控制节点接收到该响应消息时,从该响应消息解析出从目的存储节点读取的第一数据,并将解析出的第一数据在第二存储节点缓存,完成第一数据的缓存时更改第二存储节点具有的无效标识为有效标识。
在本实施例中,保证了节点组中至多一个存储节点具有有效标识,具有有效标识的存储节点存储当前最新的第一数据。在该存储节点具有有效标识时,与该存储节点连接的控制节点可修改该存储节点中存储的第一数据,更新当前最新的第一数据。
本发明一实施例,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
具体地,第二控制节点期望对当前最新的第一数据进行更新,如果第二存储节点(与第二控制节点连接的存储节点)不具有有效标识,则第二控制节点不能向第二存储节点写入数据以更新第一数据,需触发所述读取消息,向节点组中除第二控制节点以外的其他控制节点发送读取消息以从具有有效标识的存储节点读取当前最新的第一数据,将读取的当前最新的第一数据存储在第二存储节点,并更改第二存储节点中第一数据的数据状态标识为有效标识;继而,第二控制节点才能对第二存储节点(具有有效标识)进行数据写入以更新当前最新的第一数据。
举例说明,第二控制节点为节点组中的处理器节点,该处理器节点期望对与其总线连接的缓存节点写入数据以更新该缓存节点中的第一数据,如果该缓存节点不具有有效标识,则该处理器节点触发读取消息。
举例说明,第二控制节点为节点组中的处理器节点,该处理器节点期望更新第一数据并将更新的第一数据回写内存设备的内存节点,如果该处理器节点在与其总线连接的缓存节点不具有有效标识,则触发读取消息;第二控制节点与节点组中该处理器节点以外的处理器节点进行消息交互以从节点组 中具有有效标识的存储节点读取当前最新的第一数据,在与该处理器节点总线连接的缓存节点中存储读取的第一数据并将该缓存节点的标识置为有效标识;继而,该处理器节点才能先向该缓存节点写入数据以更新当前最新的第一数据,再通知内存设备的控制器以触发该控制器生成读取消息,例如:该处理器节点向内存设备的控制器发送回写消息,该控制器根据接收的回写消息触发指向该处理器节点的读取消息;该控制器经数据交换设备向该处理器节点发送读取消息以从该缓存节点读取更新的第一数据,该控制器中的处理器控制内存控制器将读取的第一数据写入内存节点,完成第二控制节点在该内存节点写入更新后的当前最新的第一数据。
本发明一实施例,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点包括:多处理器网络100中存储所述第一数据的内存节点、所述多处理器网络100中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
具体地,所述节点组中的处理器节点,在该处理器节点总线连接的缓存节点具有有效标识,期望将该缓存节点中存储的第一数据回写节点组中的内存节点,则向与该内存节点连接的控制器发送回写消息;该控制器在接收到回写消息时,触发指定向该处理器节点发送的读取消息,这样,能够节省网络带宽;该处理节点响应该控制器发送的该读取消息的交互流程,参见上述第一控制节点响应第二控制节点发送的读取消息的交互流程,在此不再赘述。
图7是依据本发明一实施例的第一控制节点700的逻辑结构示意图,如 图7所示,所述第一控制节点包括:
消息接收单元701,接收数据交换设备转发的读取消息,所述读取消息用于指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
响应单元702,用于如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
其中,所述节点组包括多处理器网络100中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。
可选地,所述消息接收单元701,接收数据交换设备转发的读取消息,具体为:
所述消息接收单元701,用于由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
可选地,所述响应单元702,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
可选地,所述响应单元702,还用于如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
可选地,所述响应单元702,还用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为:
所述响应单元702,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备发送载有所述单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令时向所述目的控制节点单播所述读取消息。
可选地,所述响应单元702,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
可选地,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
可选地,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点包括:多处理器网络100中存储所述第一数据的内存节点、所述多处理器网络100中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
本发明一实施例,图8是本实施例提供的第一控制节点800的硬件结构示意图,示出了所述第一控制节点800的一种硬件结构。如图8所示,所述第一控制节点800包括处理器801、存储器802和网络接口804,所述处理器801分别与所述存储器802和所述网络接口804通过所述总线803连接;
所述存储器802用于存储计算机执行指令,当所述第一控制节点800运行时,所述处理器801读取所述存储器802存储的所述计算机执行指令,以执行从第一控制节点800角度提供的数据读取方法。数据读取方法的具体实现,参见上述各实施例提供的数据读取方法的流程,在此不再赘述。
其中,处理器801可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案,包括执行上述发明实施例和实施例提供的数据读取方法。
其中,存储器802可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器802可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的 程序代码保存在存储器802中,包括将应用于所述第一控制节点800的上述发明实施例和实施例提供的数据读取方法的程序代码保存在存储器802中,并由处理器801来执行。
其中,网络接口804使用例如但不限于收发器一类的收发装置,来实现所述第一控制节点800与其他设备或通信网络之间的网络通信;可选地,网络接口804可以是用于接入网络的各种接口,如用于接入以太网的以太网接口,该以太网接口包括但不限于RJ-45接口、RJ-11接口、SC光纤接口、FDDI接口、AUI接口、BNC接口和Console接口等。
其中,总线803可包括一通路,用于在所述第一控制节点800中各个部件(例如处理器801、存储器802和网络接口804)之间传送信息。
可选地,所述第一控制节点800还包括输入/输出接口805,输入/输出接口805用于接收输入的数据和信息,输出操作结果等数据。
应注意,尽管图8所示的所述第一控制节点800仅仅示出了处理器801、存储器802、网络接口804以及总线803,但是在具体实现过程中,本领域的技术人员应当明白,所述第一控制节点800还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,所述第一控制节点800还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,所述第一控制节点800也可仅仅包含实现本发明实施例所必须的器件,而不必包含图8中所示的全部器件。
作为本发明一实施例,提供一种数据处理系统900,参见图9,所述数据处理系统900应用于多处理器网络100,所述数据处理系统900包括多处理器网络100中存储有第一数据的存储节点902、与所述存储节点902连接的控制节点901、一个或多个数据交换设备903,两两所述控制节点901之间通过所述数据交换设备903通信连接;节点组由所述数据处理系统900中的存储节点902和所述数据处理系统900中的控制节点901组成,所述节点组中至多一个所述存储节点902存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点902在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述控制节点901用于对 所连接的存储节点902进行读写控制,包括对所连接的存储节点902存储的所述第一数据设置数据状态标识;第一控制节点为所述节点组中的控制节点901,第一存储节点为所述节点组中与所述第一控制节点连接的存储节点902,第二控制节点为所述节点组中的控制节点901,第二存储节点为所述节点组中与所述第二控制节点连接的存储节点902;其中,第一控制节点不同于第二控制节点、第一存储节点不同于第一存储节点;
所述第二控制节点,用于向所述数据交换设备903发送读取消息,所述读取消息用于指定读取所述第一数据;
所述数据交换设备903,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息;
所述第一控制节点,用于在接收到所述数据交换设备903转发的所述读取消息时,如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备903,其中,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
所述数据交换设备903,还用于转发所述读取的所述第一数据至所述第二控制节点。
可选地,所述数据交换设备903,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息具体为:
所述数据交换设备903,用于接收由所述第二控制节点发送的载有组播指令的所述读取消息,在检测到所述组播指令时向所述节点组中除所述第二控制节点以外的其它控制节点组播所述读取消息。
可选地,所述第二控制节点,还用于在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述 第一数据的数据状态标识置为有效标识,向所述数据交换设备903发送指向所述第一控制节点的通知消息;
所述数据交换设备903,还用于转发所述通知消息至所述第一控制节点;
所述第一控制节点,还用于在接收到由所述数据交换设备903转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用。
可选地,所述第一控制节点,还用于在接收到所述数据交换设备903转发的所述读取消息时,如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备903,由所述数据交换设备903转发所述读取的所述第一数据至所述第二控制节点。
可选地,所述第一控制节点,用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体包括:
所述第一控制节点,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备903发送载有单播指令的所述读取消息,使得所述数据交换设备903在检测到所述单播指令且所述单播指令指向所述目的控制节点时向所述目的控制节点单播所述读取消息。
可选地,所述第一控制节点,还用于在接收到由所述数据交换设备903转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备903发送,所述条件为:所述目的控制节点在接收到所述第一 控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
可选地,所述读取消息由第二控制节点向所述数据交换设备903发送的条件包括:
所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
本实施例中,上述的节点组可以是为实现第一数据的缓存一致性而建立的节点组,该节点组中的存储节点902包括多处理器网络100中缓存第一数据的缓存节点,该节点组中的控制节点901包括多处理器网络100中与该缓存节点总线连接的处理器节点。或者,上述的节点组可以是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点902包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;该节点组中的控制节点901:多处理器网络100中,与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
可选地,所述节点组是为实现第一数据的数据一致性而建立的节点组,该节点组中的存储节点902包括:多处理器网络100中,缓存第一数据的缓存节点、该内存设备中存储第一数据的内存节点;该节点组中的控制节点901:多处理器网络100中,与节点组中的缓存节点总线连接的处理器节点、与节点组中的内存节点连接的控制器。
所述读取消息由第二控制节点向所述数据交换设备903发送的条件为:所述第二控制节点接收到回写消息;
其中,所述节点组中的存储节点902包括:多处理器网络100中存储所述第一数据的内存节点、所述多处理器网络100中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点901包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发 送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备903向所述节点组中的控制器发送。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块和单元的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以 存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (25)

  1. 一种数据读取方法,其特征在于,所述数据读取方法包括:
    第一控制节点接收数据交换设备转发的读取消息,所述读取消息用于指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
    如果第一存储节点中所述第一数据的数据状态标识为有效标识,则所述第一控制节点从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
    其中,所述节点组包括多处理器网络中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。
  2. 根据权利要求1所述的方法,其特征在于,所述第一控制节点接收数据交换设备转发的读取消息,具体为:
    所述第一控制节点接收由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
    其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
  4. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
    如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
  5. 根据权利要求4所述的方法,其特征在于,所述第一控制节点将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为:
    所述第一控制节点获取所述第一存储节点中所述第一数据的目的控制节点信息;
    所述第一控制节点向所述数据交换设备发送载有单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令且所述单播指令指向所述目的控制节点时向所述目的控制节点单播所述读取消息。
  6. 根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
    所述第一控制节点在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
    其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述 数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
  7. 根据权利要求1至6任一项所述的方法,其特征在于,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
    所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
  8. 根据权利要求1所述的方法,其特征在于,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
    其中,所述节点组中的存储节点包括:所述多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
  9. 一种第一控制节点,其特征在于,所述第一控制节点包括:
    消息接收单元,接收数据交换设备转发的读取消息,所述读取消息用于指定读取第一数据,所述读取消息由第二控制节点向所述数据交换设备发送、再由所述数据交换设备向节点组中除所述第二控制节点以外的其它控制节点转发;
    响应单元,用于如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一 存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备以使得所述数据交换设备转发读取的所述第一数据至所述第二控制节点,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
    其中,所述节点组包括多处理器网络中存储有所述第一数据的存储节点,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述节点组还包括与所述节点组中的存储节点连接的控制节点;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;所述第一控制节点为所述节点组中的控制节点,所述第一存储节点为所述节点组中与所述第一控制节点连接的存储节点。
  10. 根据权利要求9所述的第一控制节点,其特征在于,所述消息接收单元,接收数据交换设备转发的读取消息,具体为:
    所述消息接收单元,用于由所述数据交换设备向所述节点组中除所述第二控制节点以外的其它控制节点组播的所述读取消息。
  11. 根据权利要求9或10所述的第一控制节点,其特征在于,
    所述响应单元,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
    其中,所述通知消息由所述第二控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述第二控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识。
  12. 根据权利要求9或10所述的第一控制节点,其特征在于,
    所述响应单元,还用于如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
  13. 根据权利要求12所述的第一控制节点,其特征在于,所述响应单元,还用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体为:
    所述响应单元,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备发送载有所述单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令时向所述目的控制节点单播所述读取消息。
  14. 根据权利要求12或13所述的第一控制节点,其特征在于,所述响应单元,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
    其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
  15. 根据权利要求9至14任一项所述的第一控制节点,其特征在于,
    所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
    所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
  16. 根据权利要求9所述的第一控制节点,其特征在于,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
    其中,所述节点组中的存储节点包括:所述多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
  17. 一种第一控制节点,其特征在于,所述第一控制节点包括处理器、存储器和网络接口,所述处理器分别与所述存储器和所述网络接口通过所述总线连接;
    所述存储器用于存储计算机执行指令,当所述第一控制节点运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以执行权利要求1至9任一项所述的数据读取方法。
  18. 一种数据处理系统,所述数据处理系统应用于多处理器网络,其特征在于,所述数据处理系统包括多处理器网络中存储有第一数据的存储节点、与所述存储节点连接的控制节点、一个或多个数据交换设备,两两所述控制节点之间通过所述数据交换设备通信连接;节点组由所述数据处理系统中的存储节点和所述数据处理系统中的控制节点组成,所述节点组中至多一个所述存储节点存储有数据状态标识为有效标识的所述第一数据,所述节点组中的存储节点在存储有可用的所述第一数据时其存储的所述第一数据的数据状态标识被改设为有效标识;所述控制节点用于对所连接的存储节点进行读写控制,包括对所连接的存储节点存储的所述第一数据设置数据状态标识;第一控制节点为所述节点组中的控制节点,第一存储节点为所述节点组 中与所述第一控制节点连接的存储节点,第二控制节点为所述节点组中的控制节点,第二存储节点为所述节点组中与所述第二控制节点连接的存储节点;
    所述第二控制节点,用于向所述数据交换设备发送读取消息,所述读取消息用于指定读取所述第一数据;
    所述数据交换设备,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息;
    所述第一控制节点,用于在接收到所述数据交换设备转发的所述读取消息时,如果第一存储节点中所述第一数据的数据状态标识为有效标识,则从所述第一存储节点读取所述第一数据,并将所述第一存储节点中所述第一数据的数据状态标识由有效标识改设为不确定标识,将所述第一存储节点中所述第一数据的目的控制节点记录为所述第二控制节点,发送读取的所述第一数据至所述数据交换设备,其中,所述有效标识表明所述第一存储节点上的所述第一数据可用,所述不确定标识表明由所述目的控制节点提供当前最新的所述第一数据;
    所述数据交换设备,还用于转发所述读取的所述第一数据至所述第二控制节点。
  19. 根据权利要求18所述的数据处理系统,其特征在于,所述数据交换设备,用于接收到所述第二控制节点发送的所述读取消息时,向所述节点组中除所述第二控制节点以外的其它控制节点转发所述读取消息具体为:
    所述数据交换设备,用于接收由所述第二控制节点发送的载有组播指令的所述读取消息,在检测到所述组播指令时向所述节点组中除所述第二控制节点以外的其它控制节点组播所述读取消息。
  20. 根据权利要求18或19所述的数据处理系统,其特征在于,
    所述第二控制节点,还用于在接收到所述第一控制节点发送的所述第一数据、并在所述第二存储节点缓存后,将所述第二存储节点中所述第一数据的数据状态标识置为有效标识,向所述数据交换设备发送指向所述第一控制 节点的通知消息;
    所述数据交换设备,还用于转发所述通知消息至所述第一控制节点;
    所述第一控制节点,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用。
  21. 根据权利要求18或19所述的数据处理系统,其特征在于,
    所述第一控制节点,还用于在接收到所述数据交换设备转发的所述读取消息时,如果所述第一存储节点中所述第一数据的数据状态标识为不确定标识,则将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,使得所述目的控制节点在所连接的目的存储节点中所述第一数据的数据状态标识为有效标识时从所述目的存储节点读取所述第一数据并将读取的所述第一数据发送至所述数据交换设备,由所述数据交换设备转发所述读取的所述第一数据至所述第二控制节点。
  22. 根据权利要求21所述的数据处理系统,其特征在于,所述第一控制节点,用于将所述读取消息向所述第一存储节点中所述第一数据的目的控制节点转发,具体包括:
    所述第一控制节点,用于获取所述第一存储节点中所述第一数据的目的控制节点信息,根据所述目的控制节点信息生成指向所述目的控制节点的单播指令,向所述数据交换设备发送载有单播指令的所述读取消息,使得所述数据交换设备在检测到所述单播指令且所述单播指令指向所述目的控制节点时向所述目的控制节点单播所述读取消息。
  23. 根据权利要求21或22所述的数据处理系统,其特征在于,
    所述第一控制节点,还用于在接收到由所述数据交换设备转发的通知消息时,将所述第一存储节点中所述第一数据的数据状态标识由所述不确定标识置为无效标识,所述无效标识表明所述第一存储节点中的所述第一数据不可用;
    其中,所述通知消息由所述目的控制节点在如下条件得到满足时向所述数据交换设备发送,所述条件为:所述目的控制节点在接收到所述第一控制节点发送的所述第一数据、并在所述目的存储节点缓存后,将所述目的存储节点中所述第一数据的数据状态标识置为有效标识。
  24. 根据权利要求18至23任一项所述的数据处理系统,其特征在于,所述读取消息由第二控制节点向所述数据交换设备发送的条件包括:
    所述第二控制节点需要对所连接的第二存储节点写入更新的所述第一数据,且所述第二存储节点中所述第一数据的数据状态标识不是有效标识。
  25. 根据权利要求18所述的数据处理系统,其特征在于,所述读取消息由第二控制节点向所述数据交换设备发送的条件为:所述第二控制节点接收到回写消息;
    其中,所述节点组中的存储节点包括:所述多处理器网络中存储所述第一数据的内存节点、所述多处理器网络中用于存储所述第一数据的镜像数据的缓存节点;所述节点组中的控制节点包括:与所述节点组中的缓存节点总线连接的处理器节点、与所述内存节点连接的控制器;所述第二控制节点为所述节点组中的控制器,所述第一控制节点为所述节点组中发送所述回写消息的处理器节点;所述回写消息由所述节点组中的处理器节点在所总线连接的缓存节点中的第一数据的数据状态标识为有效标识、并需要对所述节点组中的内存节点回写第一数据时经所述数据交换设备向所述节点组中的控制器发送。
PCT/CN2015/074755 2015-03-20 2015-03-20 数据读取方法、设备和系统 WO2016149880A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/CN2015/074755 WO2016149880A1 (zh) 2015-03-20 2015-03-20 数据读取方法、设备和系统
EP15885819.1A EP3260987B1 (en) 2015-03-20 2015-03-20 Data reading method, equipment and system
CN201580001270.7A CN107077429B (zh) 2015-03-20 2015-03-20 数据读取方法、设备和系统
US15/708,815 US10114577B2 (en) 2015-03-20 2017-09-19 Data reading method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/074755 WO2016149880A1 (zh) 2015-03-20 2015-03-20 数据读取方法、设备和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/708,815 Continuation US10114577B2 (en) 2015-03-20 2017-09-19 Data reading method, device and system

Publications (1)

Publication Number Publication Date
WO2016149880A1 true WO2016149880A1 (zh) 2016-09-29

Family

ID=56976955

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/074755 WO2016149880A1 (zh) 2015-03-20 2015-03-20 数据读取方法、设备和系统

Country Status (4)

Country Link
US (1) US10114577B2 (zh)
EP (1) EP3260987B1 (zh)
CN (1) CN107077429B (zh)
WO (1) WO2016149880A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572303A (zh) * 2019-09-12 2019-12-13 苏州浪潮智能科技有限公司 一种节点自动发现的方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019920B2 (en) * 2018-01-29 2024-06-25 Micron Technology, Inc. Memory controller with programmable atomic operations
CN110324213B (zh) * 2018-03-31 2021-04-09 神盾网络安全信息化中心股份有限公司 一种智能家居的数据传输方法
CN111078285B (zh) * 2018-10-19 2021-01-26 中科寒武纪科技股份有限公司 运算方法、系统及相关产品
JP2020154990A (ja) * 2019-03-22 2020-09-24 株式会社日立製作所 計算機システム及びデータ管理方法
CN112255997A (zh) * 2020-10-23 2021-01-22 深圳市元征科技股份有限公司 车辆下线诊断方法、装置及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013089A1 (en) * 1998-03-12 2001-08-09 Wolf-Dietrich Weber Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
CN1545034A (zh) * 2003-11-26 2004-11-10 中国人民解放军国防科学技术大学 片内多处理器局部cache一致性的双环监听方法
CN102866963A (zh) * 2012-09-18 2013-01-09 广西柳工机械股份有限公司 控制器数据存储与读取方法
CN103440223A (zh) * 2013-08-29 2013-12-11 西安电子科技大学 一种实现高速缓存一致性协议的分层系统及其方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103754B1 (en) * 2002-05-02 2012-01-24 Hewlett-Packard Development Company, L.P. Reserving a shared volume in a multiple node data storage system
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US9026736B1 (en) * 2012-08-06 2015-05-05 Netapp, Inc. System and method for maintaining cache coherency
CN103049422B (zh) * 2012-12-17 2013-11-27 浪潮电子信息产业股份有限公司 一种具有多cache一致性域的多处理器节点系统构建方法
CN103294612B (zh) * 2013-03-22 2014-08-13 浪潮电子信息产业股份有限公司 在多级缓存一致性域系统局部域构造Share-F状态的方法
CN103763364B (zh) * 2014-01-15 2017-05-24 浪潮(北京)电子信息产业有限公司 一种数据访问方法及微型存储服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013089A1 (en) * 1998-03-12 2001-08-09 Wolf-Dietrich Weber Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
CN1545034A (zh) * 2003-11-26 2004-11-10 中国人民解放军国防科学技术大学 片内多处理器局部cache一致性的双环监听方法
CN102866963A (zh) * 2012-09-18 2013-01-09 广西柳工机械股份有限公司 控制器数据存储与读取方法
CN103440223A (zh) * 2013-08-29 2013-12-11 西安电子科技大学 一种实现高速缓存一致性协议的分层系统及其方法

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572303A (zh) * 2019-09-12 2019-12-13 苏州浪潮智能科技有限公司 一种节点自动发现的方法及装置
CN110572303B (zh) * 2019-09-12 2022-06-07 苏州浪潮智能科技有限公司 一种节点自动发现的方法及装置

Also Published As

Publication number Publication date
EP3260987A4 (en) 2018-03-21
CN107077429A (zh) 2017-08-18
US20180004451A1 (en) 2018-01-04
US10114577B2 (en) 2018-10-30
EP3260987B1 (en) 2019-03-06
EP3260987A1 (en) 2017-12-27
CN107077429B (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
WO2016149880A1 (zh) 数据读取方法、设备和系统
US9274961B2 (en) Method for building multi-processor system with nodes having multiple cache coherency domains
US6977908B2 (en) Method and apparatus for discovering computer systems in a distributed multi-system cluster
US10831612B2 (en) Primary node-standby node data transmission method, control node, and database system
CN101635679B (zh) 路由表的动态更新
JP4789425B2 (ja) 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム
US20160241635A1 (en) M2m data querying and invoking methods, querying and invoking devices, and system
US11669453B2 (en) Data prefetching method and apparatus
CN104092614A (zh) 更新地址解析信息的方法和装置
CN115086312A (zh) 实现kubernetes服务跨集群通信的方法及系统
CN114064552B (zh) 节点控制器、多处理器系统和用于维持缓存一致性的方法
CN111064643B (zh) 一种节点服务器及其数据交互方法和相关装置
CN112052104A (zh) 基于多机房实现的消息队列的管理方法及电子设备
CN108415873B (zh) 转发对监听请求的响应
KR20210044281A (ko) 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치
CN113904973B (zh) 路由更新方法、介质、装置和计算设备
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
JP2023549944A (ja) 切り替え処理方法、装置及び通信機器
CN109510864B (zh) 一种缓存请求的转发方法、传输方法及相关装置
WO2021134252A1 (zh) 设备间通信方法、装置、和存储介质
CN113542319A (zh) 用于Dubbo框架中的服务提供实体变更通知方法、装置及系统
WO2024074066A1 (zh) 一种基于云计算技术的物联网设备管理方法及平台
CN108337307B (zh) 一种多路服务器及其节点间通信方法
CN114124890A (zh) 一种确定方法、虚拟路由器、控制设备及域名解析系统
CN116455897A (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: 15885819

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015885819

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE