WO2019149031A1 - Data processing method and apparatus applied to node system - Google Patents

Data processing method and apparatus applied to node system Download PDF

Info

Publication number
WO2019149031A1
WO2019149031A1 PCT/CN2019/070388 CN2019070388W WO2019149031A1 WO 2019149031 A1 WO2019149031 A1 WO 2019149031A1 CN 2019070388 W CN2019070388 W CN 2019070388W WO 2019149031 A1 WO2019149031 A1 WO 2019149031A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
node
processor
state
listening
Prior art date
Application number
PCT/CN2019/070388
Other languages
French (fr)
Chinese (zh)
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 华为技术有限公司
Publication of WO2019149031A1 publication Critical patent/WO2019149031A1/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

Embodiments of the present application provide a data processing method and apparatus applied to a node system. The method comprises: a first node controller receives a data access request sent by a first node, and determines that first data is not managed by the first node controller; the first node controller sends a listening request to processors of all the nodes connected to a second node; the first node controller receives a listening response, with regard to the first data, sent by a first target processor, the first target processor being the processor, in the processors of all the nodes connected to the second node, caching the first data; and the first node controller obtains, according to the state of the first data in the listening response, the first data and sends the first data to the first node. According to the present solution, when a fault occurs to a second node controller, by transferring a service to a first node controller on another NC plane for processing, and carrying out broadcast listening, the system can still process data normally without going down.

Description

应用于节点系统的数据处理方法及装置Data processing method and device applied to node system 技术领域Technical field
本申请涉及电子技术领域,尤其涉及一种应用于节点系统的数据处理方法及装置。The present application relates to the field of electronic technologies, and in particular, to a data processing method and apparatus applied to a node system.
背景技术Background technique
在高性能处理器组建的缓存一致性-非对称存储器访问(CC-NUMA,Cache Coherence Non-Uniform Memory Access)系统中,包括多个节点,由于处理器本身的扩展能力有限,所以需要将每个节点中的处理器分成多个,再用节点控制器(NC,Node Controller)进行多处理器的扩展,以增加并行处理的处理器个数,提升系统性能。各节点上所有的处理器可以对系统中所有的处理器的内存进行一致性的访问,由于访问本节点内和其他各远端节点内存的时延不同,所以称为CC-NUMA系统。In the Cache Coherence Non-Uniform Memory Access (CC-NUMA) system, which includes a plurality of nodes, since the expansion capability of the processor itself is limited, each of them needs to be The processor in the node is divided into multiples, and then the multi-processor is extended by the node controller (NC) to increase the number of processors processed in parallel and improve system performance. All the processors on each node can have consistent access to the memory of all the processors in the system. Because of the different delays of accessing the memory in the node and other remote nodes, it is called CC-NUMA system.
在CC-NUMA系统中,一个节点由若干个处理器构成,跨节点之间由节点控制器进行互联。但是,一个节点控制器处理能力有限,带宽有限。因此,为了缓解带宽压力,经常使用双节点控制器进行跨节点扩展,也即一个节点的两个节点控制器分别与另一个节点的两个节点控制器对应相连,形成两个NC平面,两个NC平面共同分担负载。但是,这里两个平面的负载分担指的仅仅是性能上的负载分担。实际上,两个平面分别处理各自管理范围的业务,并记录对应的目录信息,互相之间没有业务交集。In a CC-NUMA system, a node consists of several processors interconnected by node controllers. However, a node controller has limited processing power and limited bandwidth. Therefore, in order to alleviate the bandwidth pressure, the two-node controller is often used for cross-node expansion, that is, two node controllers of one node are respectively connected with two node controllers of another node to form two NC planes, two The NC plane shares the load. However, the load sharing of the two planes here refers only to the performance load sharing. In fact, the two planes respectively process the services of their respective management scopes, and record the corresponding directory information, and there is no business intersection between them.
这种方案的问题在于,两个平面相互没有对方的目录信息,因此任意一个节点控制器发生故障导致其对应的平面无法工作时,另一个平面并不能正确处理故障平面的相关业务,从而可能导致整个系统宕机。The problem with this scheme is that the two planes do not have each other's directory information. Therefore, if any one of the node controllers fails and the corresponding plane fails to work, the other plane cannot correctly handle the related services of the fault plane, which may result in The entire system is down.
发明内容Summary of the invention
本申请实施例提供了一种应用于节点系统的数据处理方法及装置,以期解决任意一个节点控制器发生故障时的系统宕机问题。The embodiment of the present application provides a data processing method and device applied to a node system, so as to solve the system downtime problem when any node controller fails.
第一方面,本申请实施例提供了一种应用于节点系统的数据处理方法,节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,多个节点包括第一节点和第二节点,第二节点包括第一节点控制器,包括:In a first aspect, an embodiment of the present application provides a data processing method applied to a node system, where a node system includes multiple nodes, each of which includes two node controllers and at least one processor, where multiple nodes include a first node and a second node, the second node comprising a first node controller, comprising:
第一节点控制器接收第一节点发送的数据访问请求,数据访问请求用于请求获取第一数据;The first node controller receives a data access request sent by the first node, where the data access request is used to request to acquire the first data;
第一节点控制器确定第一数据不是由第一节点控制器管理;The first node controller determines that the first data is not managed by the first node controller;
第一节点控制器向与第二节点连接的所有节点中的处理器发送侦听请求,侦听请求用于指示与第二节点连接的所有节点中的处理器根据侦听请求的类型确定第一数据的状态;The first node controller sends a interception request to a processor in all nodes connected to the second node, the interception request is used to indicate that the processor in all the nodes connected to the second node determines the first according to the type of the interception request The state of the data;
第一节点控制器接收第一目标处理器发送的针对第一数据的侦听响应,第一目标处理器为与第二节点连接的所有节点中的处理器中缓存有第一数据的处理器,针对第一数据的侦听响应包括第一数据的状态;The first node controller receives a listening response sent by the first target processor for the first data, and the first target processor is a processor that caches the first data in a processor among all the nodes connected to the second node, The listening response for the first data includes a state of the first data;
第一节点控制器根据侦听响应中第一数据的状态获取第一数据;The first node controller acquires the first data according to the state of the first data in the listening response;
第一节点控制器向第一节点发送第一数据。The first node controller sends the first data to the first node.
在该技术方案中,在第二节点控制器出现故障时,通过将第二节点控制器所在的NC平面处理的业务转移到第一节点控制器所在的另一个NC平面处理并进行广播侦听,使得系统依然可以正常的进行数据处理而不会宕机。In the technical solution, when the second node controller fails, the service processed by the NC plane where the second node controller is located is transferred to another NC plane where the first node controller is located, and broadcast listening is performed. This allows the system to still perform normal data processing without downtime.
在第一方面的第一种可能的实现方式中,第一数据的状态为无效状态,针对第一数据的侦听响应还包括第一数据;则第一节点控制器根据侦听响应中第一数据的无效状态从侦听响应中获取第一数据。In a first possible implementation manner of the first aspect, the state of the first data is an invalid state, and the listening response for the first data further includes the first data; The invalid state of the data gets the first data from the listening response.
在该技术方案中,第一数据的状态为无效状态,侦听响应中包括第一数据,说明系统中的其他节点中有对第一数据进行过更改的,那么第一节点控制器需要将最新的第一数据返回给数据访问请求的请求方即第一节点。In the technical solution, the state of the first data is an invalid state, and the first data is included in the listening response, indicating that the first node has been changed in the other nodes in the system, and then the first node controller needs to be updated. The first data is returned to the requesting party of the data access request, that is, the first node.
在第一方面的第二种可能的实现方式中,第一数据的状态为共享状态,则第一节点控制器根据侦听响应中第一数据的共享状态从第二节点的内存储器中获取第一数据。In a second possible implementation manner of the first aspect, the state of the first data is a shared state, and the first node controller obtains the first memory from the second node according to the shared state of the first data in the listening response. One data.
在该技术方案中,第一数据的状态为共享状态,侦听响应不包括第一数据,说明系统中的其他节点中没有对第一数据进行过更改,因此第一节点控制器只需从内存储器中取出第一数据返回给数据访问请求的请求方即第一节点。In the technical solution, the state of the first data is a shared state, and the listening response does not include the first data, indicating that the first data is not changed in other nodes in the system, so the first node controller only needs to be from the inside. The first node that retrieves the first data in the memory and returns it to the data access request is the first node.
结合第一方面或第一方面的第一种至第二种可能的实现方式,在第一方面的第三种可能的实现方式中,侦听请求的类型包括共享侦听请求或独占侦听请求。In combination with the first aspect or the first to second possible implementation manners of the first aspect, in a third possible implementation manner of the first aspect, the type of the interception request includes a shared listening request or an exclusive listening request .
第二方面,本申请实施例提供了一种应用于节点系统的数据处理方法,节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,多个节点包括第二节点,第二节点包括第二节点控制器,包括:In a second aspect, an embodiment of the present application provides a data processing method applied to a node system, where a node system includes multiple nodes, each of which includes two node controllers and at least one processor, wherein multiple nodes include a second node, the second node comprising a second node controller, comprising:
第二节点控制器向与第二节点连接的所有节点中的处理器发送独占侦听请求,独占侦听请求用于指示与第二节点连接的所有节点中的处理器根据独占侦听请求的类型确定第二数据的状态为无效状态;The second node controller sends an exclusive listening request to the processor in all the nodes connected to the second node, the exclusive listening request is used to indicate the type of the processor in all the nodes connected to the second node according to the exclusive listening request Determining that the state of the second data is an invalid state;
第二节点控制器接收第二目标处理器发送的针对第二数据的独占侦听响应,第二目标处理器与第二节点连接的所有节点中的处理器中缓存有第二数据的处理器,针对第二数据的侦听响应包括第二数据的状态为无效状态;The second node controller receives the exclusive listening response sent by the second target processor for the second data, and the processor of the second target processor and the second node connected to the second node is buffered with the second data. The listening response for the second data includes the state of the second data being an invalid state;
第二节点控制器确定第二节点控制器管理的第二数据的数据缓存目录为无效态,第二数据的数据缓存目录为无效态指示与第二节点连接的所有节点中的处理器中的第二数据的状态为无效状态。The second node controller determines that the data cache directory of the second data managed by the second node controller is in an invalid state, and the data cache directory of the second data is in an invalid state indicating the number of processors in all nodes connected to the second node The status of the two data is invalid.
在该技术方案中,第二节点控制器恢复工作后,发送独占侦听广播,可以将缓存在其他所有节点中的第二数据都进行无效化,仅存在自身的内存储器中的第二数据是有效的,从而恢复对第二数据的控制。In the technical solution, after the second node controller resumes working, sending the exclusive listening broadcast, the second data cached in all other nodes can be invalidated, and only the second data in the internal memory is Effective, thereby restoring control of the second data.
在第二方面的第一种可能的实现方式中,独占侦听响应还包括第二数据;则第二节点控制器还向第二节点的内存储器发送第二数据,第二数据用于替换内存储器中原有的第二数据。In a first possible implementation manner of the second aspect, the exclusive listening response further includes the second data; the second node controller further sends the second data to the internal memory of the second node, where the second data is used in the replacement The second data in the memory.
在该技术方案中,独占侦听响应中包括第二数据,说明系统中的其他节点中有对第二数据进行过更改的,那么第二节点控制器需要将最新的第二数据替换内存储器中的第二数据,以使内存储器中保存的是最新的第二数据In the technical solution, the exclusive listening response includes the second data, indicating that the other node in the system has changed the second data, then the second node controller needs to replace the latest second data in the internal memory. Second data so that the latest second data is saved in the internal memory
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,多个节点还包括第三节点;With reference to the second aspect or the first possible implementation manner of the second aspect, in a second possible implementation manner of the second aspect, the multiple nodes further include a third node;
第二节点控制器接收第三节点发送的数据访问请求,数据访问请求用于请求获取第二数据;The second node controller receives a data access request sent by the third node, where the data access request is used to request to acquire the second data;
第二节点控制器向与第二节点连接的所有节点中的处理器发送侦听请求,侦听请求用于指示与第二节点连接的所有节点中的处理器根据侦听请求的类型确定第二数据的状态;The second node controller sends a interception request to a processor in all nodes connected to the second node, the interception request is used to indicate that the processor in all the nodes connected to the second node determines the second according to the type of the interception request The state of the data;
第二节点控制器接收第三目标处理器发送的针对第二数据的侦听响应,第三目标处理器与第二节点连接的所有节点中的处理器中缓存有第二数据的处理器,针对第二数据的侦听响应包括第二数据的状态;The second node controller receives a listening response for the second data sent by the third target processor, and the processor of the second target processor and the second node connected to the second node is buffered with the second data, The listening response of the second data includes the state of the second data;
第二节点控制器根据侦听响应中第二数据的状态获取第二数据并向第三节点发送第二数据;The second node controller acquires the second data according to the state of the second data in the listening response and sends the second data to the third node;
第二节点控制器在第二数据的数据缓存目录中记录第二数据的状态。The second node controller records the state of the second data in a data cache directory of the second data.
在该技术方案中,在数据缓存目录无效化的同时,第二节点控制器也可以同步地利用广播侦听的方式对数据访问请求进行处理,保证在目录无效化完成之前,系统也可以正常运行。In the technical solution, while the data cache directory is invalidated, the second node controller can also synchronously use the broadcast interception method to process the data access request, so that the system can also run normally before the directory invalidation is completed. .
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,第二节点控制器向与第二节点连接的所有节点中的处理器发送侦听请求之前,第二节点控制器还接收内存访问控制器发送的针对第二数据的独占访问请求;则第二节点控制器向第二处理器发送针对第二数据的侦听请求之前,第二节点控制器还确定未接收到内存访问控制器发送的内存扫描结束通知,内存扫描结束通知用于指示第二节点控制器所属节点内存中第二节点控制器管理的所有数据的数据缓存目录均为无效态。In conjunction with the second possible implementation of the second aspect, in a third possible implementation of the second aspect, the second node controller sends a snoop request to the processor in all nodes connected to the second node The second node controller further receives an exclusive access request for the second data sent by the memory access controller; and then the second node controller sends the second data request to the second processor before the second node controller It is also determined that the memory scan end notification sent by the memory access controller is not received, and the memory scan end notification is used to indicate that the data cache directory of all data managed by the second node controller in the node memory of the second node controller is in an invalid state.
在该技术方案中,内存扫描结束通知用于指示第二节点控制器所属节点内存中第二节点控制器管理的所有数据的数据缓存目录均为无效态。也即在数据缓存目录无效化完成之前,还需要以广播侦听的方式对数据访问请求进行处理。当数据缓存目录无效化完成之后,第二节点控制器就可以恢复到出故障前的正常工作状态,只需按照其记录的数据缓存目录进行数据处理,而不需要再进行广播侦听。In this technical solution, the memory scan end notification is used to indicate that the data cache directory of all data managed by the second node controller in the node memory of the node to which the second node controller belongs is in an invalid state. That is, before the invalidation of the data cache directory is completed, the data access request needs to be processed in the manner of broadcast snooping. After the data cache directory is invalidated, the second node controller can be restored to the normal working state before the failure, and only needs to perform data processing according to the data cache directory recorded therein, without performing broadcast listening.
本申请第三方面提供了一种应用于节点系统的数据处理装置。包括缓存一致性协议处理器、存储器以及通信接口。缓存一致性协议处理器连接到存储器和通信接口,例如缓存一致性协议处理器可以通过总线连接到存储器和通信接口。通信接口用于与其他设备进行通信。存储器用于存储程序代码和目录数据等。缓存一致性协议处理器用于执行上述各方面或各方面所述的任意一种可能的实现方式。A third aspect of the present application provides a data processing apparatus applied to a node system. Includes cache coherency protocol processor, memory, and communication interface. The cache coherency protocol processor is coupled to the memory and communication interface, such as a cache coherency protocol processor that can be coupled to the memory and communication interface via a bus. The communication interface is used to communicate with other devices. The memory is used to store program code, directory data, and the like. The cache coherency protocol processor is operative to perform any of the possible implementations described in the above aspects or aspects.
本申请第四方面提供了另一种应用于节点系统的数据处理装置,包括处理模块、接收模块和发送模块。上述处理模块用于实现第三方面中的缓存一致性协议处理器,上述接收模块和发送模块共同用于实现第三方面中的通信接口。该数据处理装置通过上述模块实现上述各方面或各方面所述的任意一种可能的实现方式。The fourth aspect of the present application provides another data processing apparatus applied to a node system, including a processing module, a receiving module, and a sending module. The foregoing processing module is configured to implement the cache coherency protocol processor in the third aspect, where the receiving module and the sending module are used together to implement the communication interface in the third aspect. The data processing apparatus implements any of the possible implementations described in the above aspects or aspects by the above modules.
第五方面,本申请提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各方面中任意可能的实现方式中的方法。In a fifth aspect, the present application provides a computer program product comprising: computer program code, which, when run on a computer, causes the computer to perform the method of any of the above-described various aspects.
第六方面,本申请提供了一种计算机可读介质,计算机可读介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各方面的实现方式中的方法。In a sixth aspect, the present application provides a computer readable medium storing program code that, when executed on a computer, causes the computer to perform the methods in the implementations of the various aspects described above.
附图说明DRAWINGS
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。In order to more clearly illustrate the technical solutions in the embodiments of the present application or the background art, the drawings to be used in the embodiments of the present application or the background art will be described below.
图1是本申请实施例提供的一种应用于节点系统的数据处理系统的结构示意图;1 is a schematic structural diagram of a data processing system applied to a node system according to an embodiment of the present application;
图2是本申请实施例提供的一种应用于节点系统的数据处理方法的流程示意图;2 is a schematic flowchart of a data processing method applied to a node system according to an embodiment of the present application;
图3是本申请实施例提供的另一种应用于节点系统的数据处理方法的流程示意图;3 is a schematic flowchart of another data processing method applied to a node system according to an embodiment of the present application;
图4是本申请实施例提供的一种应用于节点系统的数据处理系统的系统结构图;4 is a system structural diagram of a data processing system applied to a node system according to an embodiment of the present application;
图5是本申请实施例提供的一种应用于节点系统的数据处理装置的结构示意图;FIG. 5 is a schematic structural diagram of a data processing apparatus applied to a node system according to an embodiment of the present application; FIG.
图6是本申请实施例提供的另一种应用于节点系统的数据处理装置的结构示意图;6 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present application;
图7是本申请实施例提供的另一种应用于节点系统的数据处理装置的结构示意图;FIG. 7 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present disclosure;
图8是本申请实施例提供的另一种应用于节点系统的数据处理装置的结构示意图。FIG. 8 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present application.
具体实施方式Detailed ways
下面结合本申请实施例中的附图对本申请实施例进行描述。The embodiments of the present application are described below in conjunction with the accompanying drawings in the embodiments of the present application.
请参见图1,图1是本申请实施例提供的一种应用于节点系统的数据处理系统的结构示意图,本申请实施例中的节点可以包括服务器、个人计算机、接入网设备、核心网设备等各类终端设备或通信设备,节点系统则是由多个节点相互连接后组成的互联系统。该数据处理系统包括多个节点(图1示出节点10和节点20),其中,每个节点中都包括多个处理器(图1示出节点10包括处理器101和处理器102,节点20包括处理器201和处理器202)以及两个节点控制器(图1示出节点10包括节点控制器103和节点控制器104,节点20包括节点控制器203和节点控制器204)。进一步地,每个节点的处理器都存在相应的扩展内存储器(例如处理器101对应的内存储器105,处理器102对应的内存储器106,处理器201对应的内存储器205,处理器202对应的内存储器206)。其中,每个处理器中还包括自身的缓存Cache。每个节点的两个节点控制器共同管理该节点中的多个处理器并分担负载。Referring to FIG. 1 , FIG. 1 is a schematic structural diagram of a data processing system applied to a node system according to an embodiment of the present disclosure. The nodes in the embodiments of the present application may include a server, a personal computer, an access network device, and a core network device. Such as various types of terminal equipment or communication equipment, the node system is an interconnected system composed of multiple nodes connected to each other. The data processing system includes a plurality of nodes (FIG. 1 shows node 10 and node 20), wherein each node includes a plurality of processors (FIG. 1 shows that node 10 includes processor 101 and processor 102, node 20 A processor 201 and a processor 202) and two node controllers are included (FIG. 1 shows that node 10 includes node controller 103 and node controller 104, and node 20 includes node controller 203 and node controller 204). Further, each processor of the node has a corresponding extended internal memory (for example, the internal memory 105 corresponding to the processor 101, the internal memory 106 corresponding to the processor 102, the internal memory 205 corresponding to the processor 201, and the corresponding to the processor 202. Internal memory 206). Among them, each processor also includes its own cache cache. The two node controllers of each node jointly manage multiple processors in the node and share the load.
本申请实施例的数据处理系统中,每个节点的两个节点控制器分别与另一个节点的两个节点控制器对应相连,形成两个NC平面,两个NC平面共同分担负载。例如,图1中节点10中的节点控制器103与节点20中的节点控制器203相连接,形成一个NC平面00;节点10中的节点控制器104与节点20中的节点控制器204相连接,形成另一个NC平面01。In the data processing system of the embodiment of the present application, two node controllers of each node are respectively connected to two node controllers of another node to form two NC planes, and the two NC planes share the load. For example, the node controller 103 in the node 10 in FIG. 1 is connected to the node controller 203 in the node 20 to form an NC plane 00; the node controller 104 in the node 10 is connected to the node controller 204 in the node 20. Form another NC plane 01.
以节点10与节点20之间的两个NC平面00与01为例,平面00可以负责路由和处理节点10包括的多个处理器上的一部分业务,平面01可以负责路由和处理节点10包括的多个处理器上的另一部分业务;相应地,平面00也可以负责路由和处理节点20包括的多个处理器上的一部分业务,平面01也可以负责路由和处理节点20包括的多个处理器上的另 一部分业务。Taking the two NC planes 00 and 01 between the node 10 and the node 20 as an example, the plane 00 may be responsible for routing and processing a part of the services on the plurality of processors included in the node 10, and the plane 01 may be responsible for routing and processing the nodes 10 included. Another portion of the traffic on the plurality of processors; accordingly, plane 00 may also be responsible for routing and processing a portion of the traffic on the plurality of processors included in node 20, and plane 01 may also be responsible for routing and processing multiple processors included in node 20 Another part of the business.
本申请实施例的数据处理系统中,各节点上所有的处理器可以对系统中所有的处理器的内存储器进行一致性的访问。而为了保证这种跨节点的数据访问的一致性,每个节点中都会保存一份数据缓存目录(Directory),记录本节点内数据被其他节点的处理器访问的情况,具体包括记录数据的状态和位置。数据缓存目录可以存储在独立的实体中,也可以存储在节点控制器中,还可以存储上述提到的其他实体中。In the data processing system of the embodiment of the present application, all processors on each node can perform consistent access to the internal memory of all processors in the system. In order to ensure the consistency of data access across nodes, a data cache directory (Directory) is stored in each node, and the data in the node is recorded by the processor of other nodes, including the state of the recorded data. And location. The data cache directory can be stored in a separate entity, in a node controller, or in other entities mentioned above.
例如,如果节点10的处理器101缓存了节点20的处理器201对应的内存储器205中的数据,那么节点20就会在数据缓存目录中记录该数据被节点10或节点10中的处理器101缓存,并标记该数据的状态为共享状态还是独占状态。其中,共享状态是指该数据处于可读状态,不会被节点20修改,其他节点也可以共享该数据;独占状态是指该数据仅能被节点20独占,独占时可能发生数据的修改,因此为了保证数据的一致性,其他节点不能同时共享该数据。For example, if the processor 101 of the node 10 caches data in the internal memory 205 corresponding to the processor 201 of the node 20, the node 20 records the data in the data cache directory by the processor 101 in the node 10 or the node 10. Cache and mark the state of the data as shared or exclusive. The shared state means that the data is in a readable state and is not modified by the node 20, and other nodes can share the data; the exclusive state means that the data can only be exclusively occupied by the node 20, and data modification may occur when monopolized. In order to ensure data consistency, other nodes cannot share the data at the same time.
需要说明的是,本申请实施例的数据处理系统属于双NC平面处理系统,每个节点中对应的两个NC平面各自处理其负责的一部分业务并记录在相应得到数据缓存目录中,即两个NC平面之间的业务是独立的,不会产生交集,因此某一NC平面上对应的节点控制器也没有另一NC平面所处理的业务的数据缓存目录。It should be noted that the data processing system in the embodiment of the present application belongs to a dual NC plane processing system, and each of the two NC planes in each node processes a part of the services it is responsible for and records in the corresponding data cache directory, that is, two. The services between the NC planes are independent and do not produce an intersection. Therefore, the corresponding node controller on one NC plane does not have a data cache directory of the service processed by another NC plane.
本申请实施例适用于某一节点中的某一个节点控制器出现故障但系统未宕机的场景中,描述了该场景下未出故障的节点控制器对数据的处理方法,以及出故障的节点控制器重新工作后数据的处理方法以及目录的重建方法。The embodiment of the present application is applicable to a scenario in which a node controller in a certain node fails but the system is not down, and the method for processing the data of the node controller that has not failed in the scenario and the faulty node are described. The method of processing data after the controller is re-worked and the method of rebuilding the directory.
请参见图2,图2是本申请实施例提供的一种应用于节点系统的数据处理方法的流程示意图。该方法包括但不限于如下步骤:Referring to FIG. 2, FIG. 2 is a schematic flowchart diagram of a data processing method applied to a node system according to an embodiment of the present application. The method includes but is not limited to the following steps:
结合图4的系统结构图,在本申请实施例的场景中,首先,第二节点中的第二节点控制器出现故障,管理员启动热移除流程,系统进入静默(即所有进程都暂停工作)状态,将原本应该由第二节点控制器所在的NC平面01处理的所有业务都配置由第一节点控制器所在的NC平面00处理,从而执行S201-S206。With reference to the system structure diagram of FIG. 4, in the scenario of the embodiment of the present application, first, the second node controller in the second node fails, the administrator starts the hot removal process, and the system enters silence (ie, all processes are suspended. In the state, all services that should be processed by the NC plane 01 where the second node controller is located are configured to be processed by the NC plane 00 where the first node controller is located, thereby executing S201-S206.
S201,第一节点向第二节点的第一节点控制器发送数据访问请求。S201. The first node sends a data access request to the first node controller of the second node.
第一数据存储在第二节点的内存储器中,当第一节点的第一处理器希望缓存第一数据,从而对第一数据进行读/写操作时,会发送针对第一数据的数据访问请求,数据访问请求用于请求获取第一数据。其中可以携带第一数据的地址信息,用于指示希望获取的是该地址信息对应的第一数据。The first data is stored in the internal memory of the second node, and when the first processor of the first node wishes to cache the first data, thereby performing a read/write operation on the first data, a data access request for the first data is sent. The data access request is used to request to acquire the first data. The address information of the first data may be carried to indicate that the first data corresponding to the address information is desired to be obtained.
第一节点发送的数据访问请求可以是第一节点中的第一处理器通过第三节点控制器透传给第一节点控制器的,即第三节点控制器并不解析针对第一数据的数据访问请求;第一节点发送的数据访问请求也可以是第一处理器先发送给第三节点控制器的,第三节点控制器解析后进行目的地址的更改等操作,向管理第一数据的第一节点控制器发送的。The data access request sent by the first node may be transparently transmitted by the first processor in the first node to the first node controller through the third node controller, that is, the third node controller does not parse the data for the first data. The access request; the data access request sent by the first node may also be sent by the first processor to the third node controller, and the third node controller performs the operation of changing the destination address after the parsing, and the first data is managed. A node controller sent.
在本申请实施例中,第一数据的业务原本是由NC平面01负责,第一处理器应该将针对第一数据的数据访问请求发送给第四节点控制器并通过NC平面01路由至第二节点的第二节点控制器,由第二节点控制器根据数据缓存目录进行处理。但是由于第二节点控制器出现故障,NC平面01上的所有业务都配置由NC平面00处理,因此,此时第一处理器会 将针对第一数据的数据访问请求发送给第三节点控制器并通过NC平面00路由至第二节点的第一节点控制器,由第一节点控制器进行处理。例如,原本NC平面00处理所有路由地址的最后一位为0的数据业务,NC平面01处理所有路由地址的最后一位为1的数据业务;但是,由于第二节点控制器出现故障,则路由地址的最后一位为0的数据业务也会被配置为由NC平面01处理。S202,第一节点控制器确定第一数据不是由第一节点控制器管理。In the embodiment of the present application, the service of the first data is originally performed by the NC plane 01, and the first processor should send a data access request for the first data to the fourth node controller and route to the second through the NC plane 01. The second node controller of the node is processed by the second node controller according to the data cache directory. However, due to the failure of the second node controller, all services on the NC plane 01 are configured to be processed by the NC plane 00. Therefore, the first processor sends a data access request for the first data to the third node controller. And routing to the first node controller of the second node through the NC plane 00, and processing by the first node controller. For example, the original NC plane 00 handles the data service with the last bit of all routing addresses being 0, and the NC plane 01 handles the data service with the last bit of all routing addresses being 1; however, because the second node controller fails, the routing The data service whose last bit of the address is 0 is also configured to be processed by NC plane 01. S202. The first node controller determines that the first data is not managed by the first node controller.
由于在双NC系统中,每个节点的两个节点控制器分担负载,因此第一节点控制器中存有自己负责管理的那一部分数据的地址信息,并存在相应的数据缓存目录。Since in the dual NC system, the two node controllers of each node share the load, the first node controller stores the address information of the part of the data that is responsible for management, and the corresponding data cache directory exists.
当第一节点控制器接收到数据访问请求后,可以根据第一数据的地址信息判断第一数据是否是由其自身管理的。若是由其自身管理,则第一节点控制器则会根据第一数据对应的数据缓存目录对该数据访问请求进行处理;若不是由其自身管理,那么第一节点控制器则需要采用广播侦听的方法进行处理,即执行S203。After receiving the data access request, the first node controller may determine, according to the address information of the first data, whether the first data is managed by itself. If it is managed by itself, the first node controller processes the data access request according to the data cache directory corresponding to the first data; if not managed by itself, the first node controller needs to adopt broadcast listening The method is processed, that is, S203 is executed.
S203,第一节点控制器向与第二节点连接的所有节点中的处理器发送侦听请求。S203. The first node controller sends a interception request to a processor in all nodes connected to the second node.
本申请实施例中,与第二节点连接的所有节点中的处理器即为系统中除第二节点以外的所有其他节点中的所有处理器。也就是说,第一节点控制器在系统中发起广播侦听。侦听请求用于指示与第二节点连接的所有节点中的处理器根据侦听请求的类型确定第一数据的状态。In the embodiment of the present application, the processors in all the nodes connected to the second node are all the processors in all other nodes except the second node in the system. That is, the first node controller initiates a broadcast snoop in the system. The interception request is for indicating that the processor in all nodes connected to the second node determines the state of the first data according to the type of the interception request.
不同的数据访问请求对应不同的侦听请求。例如,当数据访问请求指示的是希望共享第一数据即不修改第一数据,那么第一节点控制器发出的侦听请求的类型就为共享侦听请求;当针对第一数据的数据访问请求指示的是希望独占第一数据即有可能修改第一数据,那么第一节点控制器发出的侦听请求的类型就为独占侦听请求。Different data access requests correspond to different listening requests. For example, when the data access request indicates that it is desired to share the first data, that is, the first data is not modified, the type of the interception request issued by the first node controller is a shared listening request; when the data access request is for the first data Indicates that it is possible to monopolize the first data, that is, it is possible to modify the first data, and then the type of the interception request issued by the first node controller is an exclusive listening request.
S204,与第二节点连接的所有节点中的处理器根据侦听请求的类型确定第一数据的状态。S204. The processor in all nodes connected to the second node determines the state of the first data according to the type of the interception request.
与第二节点连接的所有节点中的处理器接收到侦听请求后,可以首先查询自身是否缓存有第一数据,若没有缓存第一数据,则可以反馈第一数据不存在的侦听响应。若缓存有第一数据,则可以获取第一数据当前的状态,然后结合侦听请求的类型确定第一数据的状态。After receiving the snooping request, the processor in the node connected to the second node may first query whether the first data is cached by itself. If the first data is not cached, the listening response that the first data does not exist may be fed back. If the first data is cached, the current state of the first data may be acquired, and then the state of the first data is determined in conjunction with the type of the interception request.
若侦听请求的类型为共享侦听请求,与第二节点连接的所有节点中的处理器根据侦听请求以及第一数据当前的状态,确定第一数据的状态为共享状态。也就是说,如果侦听请求为共享侦听请求,可以说明当前有其他处理器希望共享该第一数据,此时与第二节点连接的所有节点中的处理器中缓存的第一数据当前的状态如果是共享状态,那么就不用改动,继续处于共享状态即可;此时与第二节点连接的所有节点中的处理器中缓存的第一数据当前的状态如果是独占状态,那么需要将独占状态更改为共享状态,以支持其他处理器共享该第一数据,更改为共享状态后,与第二节点连接的所有节点中的处理器也不能够再对第一数据进行修改。If the type of the interception request is a shared listening request, the processor in all the nodes connected to the second node determines that the state of the first data is the shared state according to the listening request and the current state of the first data. That is, if the interception request is a shared listening request, it may indicate that there is currently another processor that wishes to share the first data, and the first data cached in the processor in all nodes connected to the second node at this time is currently If the state is a shared state, then the user does not need to change and continues to be in the shared state; at this time, if the current state of the first data cached in the processor in all the nodes connected to the second node is exclusive, then the exclusive state needs to be monopolized. The state is changed to the shared state to support other processors to share the first data. After changing to the shared state, the processor in all nodes connected to the second node cannot modify the first data.
若侦听请求的类型为独占侦听请求,与第二节点连接的所有节点中的处理器根据侦听请求以及第一数据当前的状态,确定第一数据的状态为无效状态。也就是说,如果侦听请求为独占侦听请求,可以说明当前有其他处理器希望独占该第一数据,此时与第二节点连接的所有节点中的处理器中缓存的第一数据当前的状态无论是共享状态还是独占状态,都 需要修改为无效状态,即与第二节点连接的所有节点中的处理器目前不再能够读/写第一数据,如果需要再读/写第一数据,则需要再向第一节点控制器请求。If the type of the interception request is an exclusive listening request, the processor in all nodes connected to the second node determines that the state of the first data is an invalid state according to the listening request and the current state of the first data. That is to say, if the interception request is an exclusive listening request, it may indicate that there are other processors currently wishing to monopolize the first data, and the first data cached in the processor in all the nodes connected to the second node is currently current. The state, whether it is a shared state or an exclusive state, needs to be modified to an invalid state, that is, the processor in all the nodes connected to the second node is no longer able to read/write the first data, and if it is necessary to read/write the first data, Then you need to request again from the first node controller.
S205,第一目标处理器向第一节点控制器发送针对第一数据的侦听响应。S205. The first target processor sends a listening response for the first data to the first node controller.
第一目标处理器即为与第二节点连接的所有节点中的处理器中缓存有第一数据的处理器。第一目标处理器在确定第一数据的状态之后,向第一节点控制器发送针对第一数据的侦听响应。其中,针对第一数据的侦听响应包括第一数据的状态。The first target processor is a processor in which a first data is cached in a processor among all nodes connected to the second node. The first target processor, after determining the state of the first data, transmits a listening response for the first data to the first node controller. Wherein, the listening response for the first data includes the status of the first data.
需要说明的是,与第二节点连接的所有节点中的处理器中没有缓存第一数据的处理器也可以向第一节点控制器发送的侦听响应,但是该侦听响应中则用于指示第一数据不存在。It should be noted that, among the processors in all the nodes connected to the second node, the processor that caches the first data may also send a listening response to the first node controller, but the listening response is used to indicate The first data does not exist.
可选的,若第一目标处理器中第一数据当前的状态为独占状态,则确定第一数据的状态为无效状态,那么针对第一数据的侦听响应还包括第一目标处理器中缓存的第一数据。也即第一目标处理器有可能修改过第一数据,那么第一目标处理器需要将其最新的第一数据返回给第一节点控制器。Optionally, if the current state of the first data in the first target processor is an exclusive state, determining that the state of the first data is an invalid state, the listening response for the first data further includes: buffering in the first target processor The first data. That is, it is possible for the first target processor to modify the first data, and then the first target processor needs to return its latest first data to the first node controller.
S206,第一节点控制器根据侦听响应中第一数据的状态获取第一数据。S206. The first node controller acquires the first data according to the state of the first data in the listening response.
若针对第一数据的侦听响应中第一数据的状态为无效状态,还包括第一数据,也即侦听响应中的是最新的第一数据,那么第一节点控制器直接从侦听响应中获取第一数据。If the state of the first data in the listening response for the first data is an invalid state, and further includes the first data, that is, the latest data in the listening response, the first node controller directly responds from the interception Get the first data.
若针对第一数据的侦听响应中第一数据的状态为共享状态,不包括第一数据,也即第一目标处理器是共享第一数据,没有修改第一数据,那么第一节点控制器可以从第二节点的内存储器中获取第一数据。If the state of the first data in the listening response for the first data is a shared state, not including the first data, that is, the first target processor is sharing the first data, and the first data is not modified, then the first node controller The first data can be obtained from the internal memory of the second node.
可选的,第一节点控制器由于暂时处理第二节点控制器的部分业务,因此可以不记录第一数据的数据缓存目录。Optionally, the first node controller may not record the data cache directory of the first data because the part of the service of the second node controller is temporarily processed.
S207,第一节点控制器向第一节点发送第一数据。S207. The first node controller sends the first data to the first node.
根据S206所述的两种实施场景,第一节点控制器可以从第一目标处理器发送的侦听响应或第二节点的内存储器中获取第一数据,然后将第一数据发送给第一节点以响应数据访问请求。与S201对应的,向第一节点发送第一数据可以是通过第三节点控制器透传给第一处理器,也可以是先发送给第三节点控制器,第三节点控制器解析后进行目的地址的更改等操作,向第一处理器发送的。According to the two implementation scenarios described in S206, the first node controller may acquire the first data from the listening response sent by the first target processor or the internal memory of the second node, and then send the first data to the first node. In response to a data access request. Corresponding to S201, sending the first data to the first node may be transparently transmitted to the first processor by the third node controller, or may be sent to the third node controller first, and the third node controller parses the target data. An operation such as a change in address, sent to the first processor.
这样,在第二节点的第二节点控制器出现故障时,通过将第二节点控制器所在的NC平面处理的业务转移到另一个NC平面处理并进行广播侦听,使得系统依然可以正常的进行数据处理而不会宕机。In this way, when the second node controller of the second node fails, the service processed by the NC plane where the second node controller is located is transferred to another NC plane for processing and broadcast listening, so that the system can still perform normally. Data processing without downtime.
图3是本申请实施例提供的另一种应用于节点系统的数据处理方法的流程示意图。该方法包括但不限于如下步骤:FIG. 3 is a schematic flowchart diagram of another data processing method applied to a node system according to an embodiment of the present application. The method includes but is not limited to the following steps:
结合图4的系统结构图,在第二节点更换了新的第二节点控制器后,管理员启动热添加流程,系统进入静默状态,将原本应该由第二节点控制器所在的NC平面01处理的所有业务恢复配置为还是由NC平面01处理,从而执行S301-S314。In combination with the system structure diagram of FIG. 4, after the second node replaces the new second node controller, the administrator initiates the hot add process, and the system enters a silent state, which should be processed by the NC plane 01 where the second node controller is located. All service recovery configurations are still processed by NC plane 01, thereby executing S301-S314.
S301,第二节点控制器向与第二节点连接的所有节点中的处理器发送独占侦听请求。S301. The second node controller sends an exclusive listening request to a processor in all nodes connected to the second node.
本申请实施例中,与第二节点连接的所有节点中的处理器即为系统中除第二节点以外的所有其他节点中的所有处理器。也就是说,更换了新的第二节点控制器后,第二节点控制器就在系统中发起广播独占侦听。独占侦听请求用于指示与第二节点连接的所有节点中 的处理器根据独占侦听请求的类型确定第二数据的状态为无效状态。In the embodiment of the present application, the processors in all the nodes connected to the second node are all the processors in all other nodes except the second node in the system. That is to say, after the new second node controller is replaced, the second node controller initiates broadcast exclusive listening in the system. The exclusive listening request is for indicating that the processor in all the nodes connected to the second node determines that the state of the second data is an invalid state according to the type of the exclusive listening request.
可选的,S301之前还可以包括S300:Optionally, S300 can also be included before S301:
S300,内存访问控制器向第二节点控制器发送针对第二数据的独占访问请求。S300. The memory access controller sends an exclusive access request for the second data to the second node controller.
热添加流程启动后,内存访问(DMA,Direct Memory Access)控制器可以开始遍历第二节点控制器所管理的所有地址信息,并向第二节点控制器分别发送针对其管理的每个地址信息对应的数据的独占访问请求,以触发第二节点控制器广播针对其管理的每个地址信息对应的数据的独占侦听请求。这里以第二数据为例,即内存访问控制器获取到第二数据的地址信息时,向第二节点控制器发送针对第二数据的独占访问请求,以触发第二节点控制器执行S301。当针对第二数据的广播独占侦听结束后,内存访问控制器可以接着读取下一个数据,并触发针对该数据的广播独占侦听流程,直到内存访问控制器对第二节点控制器所管理的所有地址信息遍历结束。After the hot add process is started, the DMA (Direct Memory Access) controller may start to traverse all the address information managed by the second node controller, and respectively send each address information for the management of the second node controller. An exclusive access request for the data to trigger the second node controller to broadcast an exclusive listening request for data corresponding to each address information it manages. Here, taking the second data as an example, when the memory access controller acquires the address information of the second data, the exclusive access request for the second data is sent to the second node controller to trigger the second node controller to execute S301. After the broadcast exclusive listening for the second data ends, the memory access controller can then read the next data and trigger a broadcast exclusive listening process for the data until the memory access controller manages the second node controller. All address information traversal ends.
S302,与第二节点连接的所有节点中的处理器根据独占侦听请求的类型确定第二数据的状态为无效状态。S302. The processor in all nodes connected to the second node determines that the state of the second data is an invalid state according to the type of the exclusive listening request.
独占侦听请求的目的在于,可以使与第二节点连接的所有节点中的处理器中缓存的第一数据无论是共享状态还是独占状态,都变为无效状态,即与第二节点连接的所有节点中的处理器目前不再能够读/写第一数据。The purpose of the exclusive listening request is to enable the first data cached in the processors in all the nodes connected to the second node to be in an invalid state, that is, all connected to the second node. The processor in the node is no longer able to read/write the first data.
S303,第二目标处理器向第二节点控制器发送针对第二数据的独占侦听响应。S303. The second target processor sends an exclusive listening response for the second data to the second node controller.
第二目标处理器即为与第二节点连接的所有节点中的处理器中缓存有第二数据的处理器。第二目标处理器在确定第二数据的状态之后,向第二节点控制器发送针对第二数据的独占侦听响应。其中,针对第二数据的侦听响应包括第二数据的状态为无效状态。The second target processor is a processor in which a second data is cached in a processor among all nodes connected to the second node. The second target processor, after determining the state of the second data, transmits an exclusive listening response for the second data to the second node controller. The listening response for the second data includes the state of the second data being an invalid state.
需要说明的是,与第二节点连接的所有节点中的处理器中没有缓存第二数据的处理器也可以向第二节点控制器发送的独占侦听响应,但是该独占侦听响应中则用于指示第二数据不存在。It should be noted that, among the processors in all the nodes connected to the second node, the processor that caches the second data may also send an exclusive listening response to the second node controller, but the exclusive listening response is used in the exclusive listening response. Indicates that the second data does not exist.
S304,第二节点控制器确定第二节点控制器管理的第二数据的数据缓存目录为无效态。S304. The second node controller determines that the data cache directory of the second data managed by the second node controller is in an invalid state.
第二数据的数据缓存目录为无效态指示的是第二处理器中的第二数据的状态为无效状态。也即第二节点控制器将缓存在其他所有节点中的第二数据都进行无效化,仅存在自身的内存储器中的第二数据是有效的,从而恢复对第二数据的控制。The data cache directory of the second data is in an invalid state indicating that the state of the second data in the second processor is an invalid state. That is, the second node controller invalidates the second data cached in all other nodes, and only the second data stored in its own internal memory is valid, thereby restoring the control of the second data.
可选的,若第二目标处理器中第二数据当前的状态为独占状态,则针对第二数据的独占侦听响应还包括第二目标处理器中缓存的第二数据,则S303之后还包括:Optionally, if the current state of the second data in the second target processor is an exclusive state, the exclusive listening response for the second data further includes the second data cached in the second target processor, and the S303 further includes :
S305,第二节点控制器向第二节点的内存储器发送第二数据。S305. The second node controller sends the second data to the internal memory of the second node.
独占侦听响应中的第二数据用于替换内存储器中的第二数据,也即在第二节点的内存储器中存储最新的第二数据。The second data in the exclusive listening response is used to replace the second data in the internal memory, that is, to store the latest second data in the internal memory of the second node.
进一步的,在对第二数据的数据缓存目录进行无效态的同时,若接收到其他节点(例如图3所示的第三节点)的处理器针对第二数据的数据访问请求,则第二节点控制器执行S306-S313。Further, while the data cache directory of the second data is in an invalid state, if the processor of the other node (for example, the third node shown in FIG. 3) receives the data access request for the second data, the second node The controller executes S306-S313.
S306,第三节点向第二节点的第二节点控制器发送数据访问请求。S306. The third node sends a data access request to the second node controller of the second node.
数据访问请求用于请求获取所述第二数据。A data access request is used to request acquisition of the second data.
S306的具体实现方法可以参考S201,此处不再赘述。For the specific implementation method of S306, refer to S201, and details are not described herein again.
S308,第二节点控制器向与第二节点连接的所有节点中的处理器发送侦听请求。S308. The second node controller sends a interception request to a processor in all nodes connected to the second node.
S308的具体实现方法可以参考S203,此处不再赘述。For the specific implementation method of S308, refer to S203, and details are not described herein again.
可选的,若第二节点控制器接收内存访问控制器发送的针对第二数据的独占访问请求,即执行S300,则S308之前还可以包括S307:Optionally, if the second node controller receives the exclusive access request for the second data sent by the memory access controller, that is, executing S300, the S308 may further include S307:
S307,第二节点控制器确定未接收到内存访问控制器发送的内存扫描结束通知。S307. The second node controller determines that the memory scan end notification sent by the memory access controller is not received.
内存扫描结束通知是用于通知第二节点控制器其管理的其管理的每个地址信息对应的数据已经遍历完成并进行了广播独占侦听,也即指示第二节点控制器所属节点内存中第二节点控制器管理的所有数据的数据缓存目录均为无效态。The memory scan end notification is used to notify the second node controller that the data corresponding to each address information managed by the second node controller has been traversed and broadcast exclusive operation, that is, the memory of the node to which the second node controller belongs is indicated. The data cache directory of all data managed by the two-node controller is invalid.
在第二节点控制器接收到内存访问控制器发送的内存扫描结束通知之后,会按照数据缓存目录进行数据处理而不会再进行广播侦听,因此,在执行S308进行广播侦听之前,需要确认未接收到内存扫描结束通知。After the second node controller receives the memory scan end notification sent by the memory access controller, the data processing is performed according to the data cache directory, and no broadcast snooping is performed. Therefore, before performing broadcast snooping in S308, it is necessary to confirm The memory scan end notification was not received.
S309,与第二节点连接的所有节点中的处理器根据侦听请求的类型确定第二数据的状态。S309. The processor in all nodes connected to the second node determines the state of the second data according to the type of the interception request.
S310,第三目标处理器向第二节点控制器发送针对第二数据的侦听响应。S310. The third target processor sends a listening response for the second data to the second node controller.
第三目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器。S309-S310的具体实现方法可以参考S204-S205,此处不再赘述。A processor of the second data is cached in a processor of all nodes connected to the second node by the third target processor. For the specific implementation method of S309-S310, refer to S204-S205, and details are not described herein again.
S311,第二节点控制器根据侦听响应中第二数据的状态获取第二数据。S311. The second node controller acquires the second data according to the state of the second data in the listening response.
S312,第二节点控制器向第三节点发送第二数据。S312. The second node controller sends the second data to the third node.
S311-S312的具体实现方法可以参考S206-S207,此处不再赘述。For specific implementation methods of S311-S312, refer to S206-S207, and details are not described herein again.
S313,第二节点控制器在第二数据的数据缓存目录中记录第二数据的状态。S313. The second node controller records the state of the second data in a data cache directory of the second data.
在对第二数据的数据访问请求处理之后,第二节点控制器在第二数据的数据缓存目录中记录第二数据的状态。也就是说,第二节点控制器根据反馈的侦听响应,记录第二数据都被缓存于哪些节点的处理器中,以及第二数据在这些处理器中的状态。例如,某一节点A的处理器123返回的侦听响应中包括第二数据被侦听后的状态为共享状态,那么第二节点控制器就在第二数据的数据缓存目录中记录“节点A的处理器123,共享状态”。After processing the data access request for the second data, the second node controller records the state of the second data in the data cache directory of the second data. That is, the second node controller records the states of the nodes in which the second data is cached based on the feedback response of the feedback, and the state of the second data in the processors. For example, if the listening response returned by the processor 123 of a certain node A includes the state in which the second data is intercepted as the shared state, then the second node controller records "node A" in the data cache directory of the second data. Processor 123, shared state."
这样,在数据缓存目录无效化的同时,第二节点控制器也可以同步地利用广播侦听的方式对数据访问请求进行处理,保证在目录无效化完成之前,系统也可以正常运行。In this way, while the data cache directory is invalidated, the second node controller can also synchronously use the broadcast interception method to process the data access request, so that the system can also run normally before the directory invalidation is completed.
需要说明的是,S301-S305与S306-S313可以之间不区先后顺序,可以同时执行。It should be noted that S301-S305 and S306-S313 can be executed at the same time without prioritization.
S314,当确定第二节点控制器管理的所有数据的数据缓存目录无效态完成,第二节点控制器根据数据缓存目录进行数据处理。S314. When it is determined that the data cache directory invalid state of all data managed by the second node controller is completed, the second node controller performs data processing according to the data cache directory.
第二节点控制器管理的所有数据的数据缓存目录均为无效态即认为第二节点控制器管理的所有数据的数据缓存目录无效态完成,之后,第二节点控制器会按照数据缓存目录进行数据处理而不会再执行S306-S313进行广播侦听的数据处理方法。The data cache directory of all the data managed by the second node controller is in an invalid state, that is, the data cache directory of all the data managed by the second node controller is invalid, and then the second node controller performs data according to the data cache directory. The data processing method for performing broadcast snooping is not performed again in S306-S313.
可选的,若第二节点控制器接收内存访问控制器发送的针对第二数据的独占访问请求,即执行S300,则第二节点控制器确定其管理的所有数据的数据缓存目录无效态完成的方法可以为:接收到内存访问控制器发送的内存扫描结束通知,指示第二节点控制器所属节点内存中第二节点控制器管理的所有数据的数据缓存目录均为无效态。Optionally, if the second node controller receives the exclusive access request for the second data sent by the memory access controller, that is, executing S300, the second node controller determines that the data cache directory of all data managed by the node is invalid. The method may be: receiving a memory scan end notification sent by the memory access controller, indicating that the data cache directory of all data managed by the second node controller in the node memory of the second node controller is in an invalid state.
这样,当数据缓存目录无效化完成之后,第二节点控制器就可以恢复到出故障前的正 常工作状态,只需按照其记录的数据缓存目录进行数据处理,而不需要再进行广播侦听。Thus, after the data cache directory is invalidated, the second node controller can be restored to the normal working state before the failure, and only needs to perform data processing according to the data cache directory recorded therein, without performing broadcast listening.
上文主要从不同网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,应用于节点系统的数据处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。The solution provided by the embodiment of the present application is mainly introduced from the perspective of interaction between different network elements. It can be understood that the data processing device applied to the node system includes hardware structures and/or software modules corresponding to the execution of the respective functions in order to implement the above functions. The embodiments of the present application can be implemented in a combination of hardware or hardware and computer software in combination with the elements of the examples and algorithm steps described in the embodiments disclosed in the application. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the technical solutions of the embodiments of the present application.
本申请实施例可以根据上述方法示例对应用于节点系统的数据处理装置进行功能模块或功能单元的划分,例如,可以对应各个功能划分各个功能模块或功能单元,也可以将两个或两个以上的功能集成在一个处理模块或处理单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块或单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。请参见以下具体介绍。The embodiment of the present application may perform the division of the function module or the function unit corresponding to the data processing device for the node system according to the above method example. For example, each function module or function unit may be divided according to each function, or two or more may be divided. The functionality is integrated in a processing module or processing unit. The above integrated modules or units can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules or units in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner. Please see the specifics below.
请参阅图5,图5是本申请实施例提供的一种应用于节点系统的数据处理装置的结构示意图。该装置可以用于实现上述图2所示的实施例中的第一节点控制器。如图5所示,该装置包括:Please refer to FIG. 5. FIG. 5 is a schematic structural diagram of a data processing apparatus applied to a node system according to an embodiment of the present application. The apparatus can be used to implement the first node controller of the embodiment shown in Figure 2 above. As shown in Figure 5, the device includes:
接收模块501,用于接收所述第一节点发送的数据访问请求,所述数据访问请求用于请求获取第一数据;The receiving module 501 is configured to receive a data access request sent by the first node, where the data access request is used to request to acquire the first data;
处理模块502,确定所述第一数据不是由所述第一节点控制器管理;The processing module 502 determines that the first data is not managed by the first node controller;
发送模块503,用于向与所述第二节点连接的所有节点中的处理器发送侦听请求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第一数据的状态;a sending module 503, configured to send a listening request to a processor in all nodes connected to the second node, where the listening request is used to indicate a processor in all nodes connected to the second node Determining a state of the first data according to a type of the interception request;
所述接收模块501还用于:接收第一目标处理器发送的针对所述第一数据的侦听响应,所述第一目标处理器为与所述第二节点连接的所有节点中的处理器中缓存有所述第一数据的处理器,所述针对所述第一数据的侦听响应包括所述第一数据的状态;The receiving module 501 is further configured to: receive a listening response sent by the first target processor for the first data, where the first target processor is a processor in all nodes connected to the second node a processor that caches the first data, the listening response for the first data includes a state of the first data;
所述处理模块502还用于:根据所述侦听响应中所述第一数据的状态获取所述第一数据;The processing module 502 is further configured to: acquire the first data according to a state of the first data in the listening response;
所述发送模块503还用于:向所述第一节点发送所述第一数据。The sending module 503 is further configured to: send the first data to the first node.
可选的,所述第一数据的状态为无效状态,所述针对所述第一数据的侦听响应还包括所述第一数据;Optionally, the state of the first data is an invalid state, and the listening response for the first data further includes the first data;
所述处理模块502用于:根据所述侦听响应中所述第一数据的所述无效状态从所述侦听响应中获取所述第一数据。The processing module 502 is configured to: acquire the first data from the listening response according to the invalid state of the first data in the listening response.
可选的,所述第一数据的状态为共享状态,所述处理模块502用于:Optionally, the state of the first data is a shared state, and the processing module 502 is configured to:
根据所述侦听响应中所述第一数据的所述共享状态从所述第二节点的内存储器中获取所述第一数据。Obtaining the first data from an internal memory of the second node according to the shared state of the first data in the listening response.
可选的,所述侦听请求的类型包括共享侦听请求或独占侦听请求。Optionally, the type of the listening request includes a shared listening request or an exclusive listening request.
上述图5所示实施例中的应用于节点系统的数据处理装置可以以图6所示的应用于节 点系统的数据处理装置600实现。如图6所示,为本申请实施例提供了另一种应用于节点系统的数据处理装置的结构示意图,图6所示的应用于节点系统的数据处理装置600包括:缓存一致性协议处理器601和通信接口603,所述缓存一致性协议处理器601用于支持数据处理装置600与其他设备之间的信息传输。缓存一致性协议处理器601和通信接口603通信连接,例如通过总线相连。所述应用于节点系统的数据处理装置600还可以包括存储器602。存储器602用于存储供数据处理装置600执行的程序代码和目录数据,缓存一致性协议处理器601用于执行存储器602中存储的应用程序代码,以实现图2所示实施例提供的第一节点控制器的动作。The data processing apparatus applied to the node system in the above-described embodiment shown in Fig. 5 can be realized by the data processing apparatus 600 applied to the node system shown in Fig. 6. FIG. 6 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present application. The data processing apparatus 600 applied to the node system shown in FIG. 6 includes: a cache coherency protocol processor. 601 and communication interface 603, the cache coherency protocol processor 601 is configured to support information transmission between the data processing device 600 and other devices. The cache coherency protocol processor 601 and the communication interface 603 are communicatively coupled, such as by a bus. The data processing device 600 applied to the node system may also include a memory 602. The memory 602 is configured to store program code and directory data for execution by the data processing apparatus 600, and the cache coherency protocol processor 601 is configured to execute the application code stored in the memory 602 to implement the first node provided by the embodiment shown in FIG. The action of the controller.
存储器602可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器602也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器602还可以包括上述种类的存储器的组合。The memory 602 may include a volatile memory such as a random access memory (RAM); the memory 602 may also include a non-volatile memory such as a read-only memory (read- Only memory, ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD); the memory 602 may also include a combination of the above types of memories.
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图2所示实施例中第一节点控制器所用的计算机软件指令,其包含用于执行上述实施例中为第一节点控制器所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。Also provided in the embodiment of the present application is a computer storage medium, which can be used to store computer software instructions used by the first node controller in the embodiment shown in FIG. 2, and is configured to execute the first node in the foregoing embodiment. The program designed by the controller. The storage medium includes, but is not limited to, a flash memory, a hard disk, a solid state disk.
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被计算设备运行时,可以执行上述图2实施例中为第一节点控制器所设计的应用于节点系统的数据处理方法。In the embodiment of the present application, a computer program product is also provided. When the computer product is run by the computing device, the data processing method applied to the node system designed for the first node controller in the foregoing embodiment of FIG. 2 may be executed.
请参阅图7,图7是本申请实施例提供的另一种应用于节点系统的数据处理装置的结构示意图。该装置可以用于实现上述图3所示的实施例中的第二节点控制器。如图7所示,该装置包括:Please refer to FIG. 7. FIG. 7 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present application. The apparatus can be used to implement the second node controller of the embodiment shown in Figure 3 above. As shown in Figure 7, the device includes:
发送模块701,用于向与所述第二节点连接的所有节点中的处理器发送独占侦听请求,所述独占侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述独占侦听请求的类型确定所述第二数据的状态为无效状态;The sending module 701 is configured to send, to the processor in all the nodes connected to the second node, an exclusive listening request, where the exclusive listening request is used to indicate that all the nodes connected to the second node are The processor determines, according to the type of the exclusive listening request, that the state of the second data is an invalid state;
接收模块702,用于接收第二目标处理器发送的针对所述第二数据的独占侦听响应,所述第二目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态为无效状态;The receiving module 702 is configured to receive, by the second target processor, an exclusive listening response for the second data, where the second target processor is cached in a processor in all nodes connected to the second node. The processor of the second data, the listening response for the second data includes a state in which the second data is in an invalid state;
处理模块703,用于确定所述第二节点控制器管理的所述第二数据的数据缓存目录为无效态,所述第二数据的数据缓存目录为无效态指示所述与所述第二节点连接的所有节点中的处理器中的所述第二数据的状态为无效状态。The processing module 703 is configured to determine that the data cache directory of the second data managed by the second node controller is in an invalid state, and the data cache directory of the second data is in an invalid state to indicate the second node The state of the second data in the processors in all of the connected nodes is in an invalid state.
可选的,所述独占侦听响应还包括所述第二数据;Optionally, the exclusive listening response further includes the second data;
所述发送模块701还用于:The sending module 701 is further configured to:
向所述第二节点的内存储器发送所述第二数据,所述第二数据用于替换所述内存储器中原有的第二数据。Transmitting the second data to an internal memory of the second node, the second data being used to replace the original second data in the internal memory.
可选的,所述多个节点还包括第三节点;Optionally, the multiple nodes further include a third node;
所述接收模块702还用于:接收所述第三节点发送的数据访问请求,所述数据访问请求用于请求获取所述第二数据;The receiving module 702 is further configured to: receive a data access request sent by the third node, where the data access request is used to request to acquire the second data;
所述发送模块701还用于:向与所述第二节点连接的所有节点中的处理器发送侦听请 求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第二数据的状态;The sending module 701 is further configured to: send a listening request to a processor in all nodes connected to the second node, where the listening request is used to indicate all nodes connected to the second node The processor determines a state of the second data according to a type of the interception request;
所述接收模块702还用于:接收第三目标处理器发送的针对所述第二数据的侦听响应,所述第三目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态;The receiving module 702 is further configured to: receive a listening response sent by the third target processor for the second data, where the third target processor is in a processor among all nodes connected to the second node a processor that caches the second data, the listening response for the second data including a state of the second data;
所述处理模块703还用于:根据所述侦听响应中所述第二数据的状态获取所述第二数据并向所述第三节点发送所述第二数据;在所述第二数据的数据缓存目录中记录所述第二数据的状态。The processing module 703 is further configured to: acquire the second data according to a state of the second data in the listening response, and send the second data to the third node; in the second data The state of the second data is recorded in a data cache directory.
可选的,所述接收模块702还用于:所述第二节点控制器接收内存访问控制器发送的所述针对所述第二数据的独占访问请求;Optionally, the receiving module 702 is further configured to: receive, by the second node controller, the exclusive access request for the second data that is sent by the memory access controller;
所述处理模块703还用于:所述第二节点控制器确定未接收到所述内存访问控制器发送的内存扫描结束通知,所述内存扫描结束通知用于指示所述第二节点控制器所属节点内存中所述第二节点控制器管理的所有数据的数据缓存目录均为无效态。The processing module 703 is further configured to: the second node controller determines that the memory scan end notification sent by the memory access controller is not received, and the memory scan end notification is used to indicate that the second node controller belongs to The data cache directory of all data managed by the second node controller in the node memory is in an invalid state.
上述图7所示实施例中的应用于节点系统的数据处理装置可以以图8所示的应用于节点系统的数据处理装置800实现。如图8所示,为本申请实施例提供了另一种应用于节点系统的数据处理装置的结构示意图,图8所示的应用于节点系统的数据处理装置800包括:缓存一致性协议处理器801和通信接口803,所述缓存一致性协议处理器801用于支持数据处理装置800与其他设备之间的信息传输。缓存一致性协议处理器801和通信接口803通信连接,例如通过总线相连。所述应用于节点系统的数据处理装置800还可以包括存储器802。存储器802用于存储供数据处理装置800执行的程序代码和目录数据,缓存一致性协议处理器801用于执行存储器802中存储的应用程序代码,以实现图3所示实施例提供的第二节点控制器的动作。The data processing apparatus applied to the node system in the above-described embodiment shown in FIG. 7 can be implemented by the data processing apparatus 800 applied to the node system shown in FIG. FIG. 8 is a schematic structural diagram of another data processing apparatus applied to a node system according to an embodiment of the present application. The data processing apparatus 800 applied to the node system shown in FIG. 8 includes: a cache coherency protocol processor. 801 and communication interface 803, the cache coherency protocol processor 801 is configured to support information transmission between the data processing device 800 and other devices. The cache coherency protocol processor 801 and the communication interface 803 are communicatively coupled, such as by a bus. The data processing device 800 applied to the node system may also include a memory 802. The memory 802 is configured to store program code and directory data for execution by the data processing apparatus 800, and the cache coherency protocol processor 801 is configured to execute the application code stored in the memory 802 to implement the second node provided by the embodiment shown in FIG. The action of the controller.
存储器802可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器802也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器802还可以包括上述种类的存储器的组合。The memory 802 may include a volatile memory such as a random access memory (RAM); the memory 802 may also include a non-volatile memory such as a read-only memory (read- Only memory, ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD); the memory 802 may also include a combination of the above types of memory.
在本申请实施例中还提供了一种计算机存储介质,可以用于存储图3所示实施例中第二节点控制器所用的计算机软件指令,其包含用于执行上述实施例中为第二节点控制器所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。In the embodiment of the present application, a computer storage medium is provided, which can be used to store computer software instructions used by the second node controller in the embodiment shown in FIG. 3, and is configured to execute the second node in the foregoing embodiment. The program designed by the controller. The storage medium includes, but is not limited to, a flash memory, a hard disk, a solid state disk.
在本申请实施例中还提供了一种计算机程序产品,该计算机产品被计算设备运行时,可以执行上述图3实施例中为第二节点控制器所设计的应用于节点系统的数据处理方法。In the embodiment of the present application, a computer program product is also provided. When the computer product is executed by the computing device, the data processing method applied to the node system designed for the second node controller in the foregoing embodiment of FIG. 3 may be executed.

Claims (16)

  1. 一种应用于节点系统的数据处理方法,其特征在于,所述节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,所述多个节点包括第一节点和第二节点,所述第二节点包括第一节点控制器,所述方法包括:A data processing method applied to a node system, wherein the node system includes a plurality of nodes, each of which includes two node controllers and at least one processor, wherein the plurality of nodes includes the first a node and a second node, the second node includes a first node controller, and the method includes:
    所述第一节点控制器接收所述第一节点发送的数据访问请求,所述数据访问请求用于请求获取第一数据;Receiving, by the first node controller, a data access request sent by the first node, where the data access request is used to request to acquire first data;
    所述第一节点控制器确定所述第一数据不是由所述第一节点控制器管理;The first node controller determines that the first data is not managed by the first node controller;
    所述第一节点控制器向与所述第二节点连接的所有节点中的处理器发送侦听请求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第一数据的状态;The first node controller sends a interception request to a processor of all nodes connected to the second node, the interception request is used to indicate processing in all nodes connected to the second node Determining a state of the first data according to a type of the interception request;
    所述第一节点控制器接收第一目标处理器发送的针对所述第一数据的侦听响应,所述第一目标处理器为与所述第二节点连接的所有节点中的处理器中缓存有所述第一数据的处理器,所述针对所述第一数据的侦听响应包括所述第一数据的状态;The first node controller receives a listening response sent by the first target processor for the first data, and the first target processor is a cache in a processor among all nodes connected to the second node a processor having the first data, the listening response for the first data including a state of the first data;
    所述第一节点控制器根据所述侦听响应中所述第一数据的状态获取所述第一数据;The first node controller acquires the first data according to the state of the first data in the listening response;
    所述第一节点控制器向所述第一节点发送所述第一数据。The first node controller sends the first data to the first node.
  2. 如权利要求1所述的方法,其特征在于,所述第一数据的状态为无效状态,所述针对所述第一数据的侦听响应还包括所述第一数据;The method of claim 1, wherein the state of the first data is an invalid state, and the listening response for the first data further comprises the first data;
    所述第一节点控制器根据所述侦听响应中所述第一数据的状态获取所述第一数据包括:The acquiring, by the first node controller, the first data according to the state of the first data in the listening response includes:
    所述第一节点控制器根据所述侦听响应中所述第一数据的所述无效状态从所述侦听响应中获取所述第一数据。The first node controller acquires the first data from the listening response according to the invalid state of the first data in the listening response.
  3. 如权利要求1所述的方法,其特征在于,所述第一数据的状态为共享状态,The method of claim 1, wherein the state of the first data is a shared state,
    所述第一节点控制器根据所述侦听响应中所述第一数据的状态获取所述第一数据包括:The acquiring, by the first node controller, the first data according to the state of the first data in the listening response includes:
    所述第一节点控制器根据所述侦听响应中所述第一数据的所述共享状态从所述第二节点的内存储器中获取所述第一数据。The first node controller acquires the first data from an internal memory of the second node according to the shared state of the first data in the listening response.
  4. 如权利要求1-3任一项所述的方法,其特征在于,所述侦听请求的类型包括共享侦听请求或独占侦听请求。The method according to any one of claims 1 to 3, wherein the type of the interception request comprises a shared listening request or an exclusive listening request.
  5. 一种应用于节点系统的数据处理方法,其特征在于,所述节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,所述多个节点包括第二节点,所述第二节点包括第二节点控制器,所述方法包括:A data processing method applied to a node system, wherein the node system includes a plurality of nodes, each of which includes two node controllers and at least one processor, wherein the plurality of nodes includes a second a node, the second node includes a second node controller, and the method includes:
    所述第二节点控制器向与所述第二节点连接的所有节点中的处理器发送独占侦听请求,所述独占侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述独占侦听请求的类型确定所述第二数据的状态为无效状态;The second node controller sends an exclusive listening request to a processor in all nodes connected to the second node, where the exclusive listening request is used to indicate all nodes connected to the second node The processor determines, according to the type of the exclusive listening request, that the state of the second data is an invalid state;
    所述第二节点控制器接收第二目标处理器发送的针对所述第二数据的独占侦听响应, 所述第二目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态为无效状态;The second node controller receives an exclusive listening response sent by the second target processor for the second data, and the second target processor caches in a processor among all nodes connected to the second node a processor having the second data, the listening response for the second data including a state of the second data being an invalid state;
    所述第二节点控制器确定所述第二节点控制器管理的所述第二数据的数据缓存目录为无效态,所述第二数据的数据缓存目录为无效态指示所述与所述第二节点连接的所有节点中的处理器中的所述第二数据的状态为无效状态。The second node controller determines that the data cache directory of the second data managed by the second node controller is in an invalid state, and the data cache directory of the second data is in an invalid state indicating the second and the second The state of the second data in the processor in all of the nodes connected by the node is in an invalid state.
  6. 如权利要求5所述的方法,其特征在于,所述独占侦听响应还包括所述第二数据;The method of claim 5, wherein the exclusive listening response further comprises the second data;
    所述方法还包括:The method further includes:
    所述第二节点控制器向所述第二节点的内存储器发送所述第二数据,所述第二数据用于替换所述内存储器中原有的第二数据。The second node controller sends the second data to an internal memory of the second node, where the second data is used to replace the original second data in the internal memory.
  7. 如权利要求5或6所述的方法,其特征在于,所述多个节点还包括第三节点;The method according to claim 5 or 6, wherein the plurality of nodes further comprise a third node;
    所述方法还包括:The method further includes:
    所述第二节点控制器接收所述第三节点发送的数据访问请求,所述数据访问请求用于请求获取所述第二数据;Receiving, by the second node controller, a data access request sent by the third node, where the data access request is used to request to acquire the second data;
    所述第二节点控制器向与所述第二节点连接的所有节点中的处理器发送侦听请求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第二数据的状态;The second node controller sends a interception request to a processor of all nodes connected to the second node, the interception request is used to indicate processing in all nodes connected to the second node Determining a state of the second data according to a type of the interception request;
    所述第二节点控制器接收第三目标处理器发送的针对所述第二数据的侦听响应,所述第三目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态;The second node controller receives a listening response sent by the third target processor for the second data, and the third target processor caches the processor in all nodes connected to the second node. a processor of the second data, the listening response for the second data includes a state of the second data;
    所述第二节点控制器根据所述侦听响应中所述第二数据的状态获取所述第二数据并向所述第三节点发送所述第二数据;The second node controller acquires the second data according to the state of the second data in the listening response and sends the second data to the third node;
    所述第二节点控制器在所述第二数据的数据缓存目录中记录所述第二数据的状态。The second node controller records a state of the second data in a data cache directory of the second data.
  8. 如权利要求7所述的方法,其特征在于,所述第二节点控制器向与所述第二节点连接的所有节点中的处理器发送侦听请求之前,还包括:The method of claim 7, wherein before the second node controller sends a listening request to the processor in all the nodes connected to the second node, the method further includes:
    所述第二节点控制器接收内存访问控制器发送的所述针对所述第二数据的独占访问请求;The second node controller receives the exclusive access request for the second data sent by a memory access controller;
    所述第二节点控制器向与所述第二节点连接的所有节点中的处理器发送侦听请求之前,还包括:Before the second node controller sends a listening request to the processor in all the nodes connected to the second node, the method further includes:
    所述第二节点控制器确定未接收到所述内存访问控制器发送的内存扫描结束通知,所述内存扫描结束通知用于指示所述第二节点控制器所属节点内存中所述第二节点控制器管理的所有数据的数据缓存目录均为无效态。The second node controller determines that the memory scan end notification sent by the memory access controller is not received, and the memory scan end notification is used to indicate that the second node control is in the memory of the node to which the second node controller belongs The data cache directory of all data managed by the device is invalid.
  9. 一种应用于节点系统的数据处理装置,其特征在于,所述节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,所述多个节点包括第一节点和第二节点,所述第二节点包括第一节点控制器,所述数据处理装置为第一节点控制器, 包括:A data processing apparatus applied to a node system, wherein the node system includes a plurality of nodes, each of which includes two node controllers and at least one processor, wherein the plurality of nodes includes the first a node and a second node, the second node includes a first node controller, and the data processing device is a first node controller, including:
    接收模块,用于接收所述第一节点发送的数据访问请求,所述数据访问请求用于请求获取第一数据;a receiving module, configured to receive a data access request sent by the first node, where the data access request is used to request to acquire first data;
    处理模块,确定所述第一数据不是由所述第一节点控制器管理;Processing the module, determining that the first data is not managed by the first node controller;
    发送模块,用于向与所述第二节点连接的所有节点中的处理器发送侦听请求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第一数据的状态;a sending module, configured to send a listening request to a processor in all nodes connected to the second node, where the listening request is used to indicate that the processor in all nodes connected to the second node is configured according to The type of the interception request determines a state of the first data;
    所述接收模块还用于:接收第一目标处理器发送的针对所述第一数据的侦听响应,所述第一目标处理器为与所述第二节点连接的所有节点中的处理器中缓存有所述第一数据的处理器,所述针对所述第一数据的侦听响应包括所述第一数据的状态;The receiving module is further configured to: receive a listening response sent by the first target processor for the first data, where the first target processor is a processor in all nodes connected to the second node a processor that caches the first data, the listening response for the first data including a state of the first data;
    所述处理模块还用于:根据所述侦听响应中所述第一数据的状态获取所述第一数据;The processing module is further configured to: acquire the first data according to a state of the first data in the listening response;
    所述发送模块还用于:向所述第一节点发送所述第一数据。The sending module is further configured to: send the first data to the first node.
  10. 如权利要求9所述的装置,其特征在于,所述第一数据的状态为无效状态,所述针对所述第一数据的侦听响应还包括所述第一数据;The apparatus according to claim 9, wherein the state of the first data is an invalid state, and the listening response for the first data further comprises the first data;
    所述处理模块用于:根据所述侦听响应中所述第一数据的所述无效状态从所述侦听响应中获取所述第一数据。The processing module is configured to: acquire the first data from the listening response according to the invalid state of the first data in the listening response.
  11. 如权利要求9所述的装置,其特征在于,所述第一数据的状态为共享状态,The device according to claim 9, wherein the state of the first data is a shared state,
    所述处理模块用于:The processing module is used to:
    根据所述侦听响应中所述第一数据的所述共享状态从所述第二节点的内存储器中获取所述第一数据。Obtaining the first data from an internal memory of the second node according to the shared state of the first data in the listening response.
  12. 如权利要求9-11任一项所述的装置,其特征在于,所述侦听请求的类型包括共享侦听请求或独占侦听请求。The apparatus according to any one of claims 9-11, wherein the type of the interception request comprises a shared listening request or an exclusive listening request.
  13. 一种应用于节点系统的数据处理装置,其特征在于,所述节点系统包括多个节点,各节点中均包括两个节点控制器以及至少一个处理器,其中,所述多个节点包括第二节点,所述第二节点包括第二节点控制器,所述数据处理装置为第二节点控制器,包括:A data processing apparatus applied to a node system, wherein the node system includes a plurality of nodes, each of which includes two node controllers and at least one processor, wherein the plurality of nodes includes a second a node, the second node includes a second node controller, and the data processing device is a second node controller, including:
    发送模块,用于向与所述第二节点连接的所有节点中的处理器发送独占侦听请求,所述独占侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述独占侦听请求的类型确定所述第二数据的状态为无效状态;a sending module, configured to send, to a processor in all nodes connected to the second node, an exclusive listening request, where the exclusive listening request is used to indicate processing in all nodes connected to the second node Determining, according to the type of the exclusive listening request, that the state of the second data is an invalid state;
    接收模块,用于接收第二目标处理器发送的针对所述第二数据的独占侦听响应,所述第二目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态为无效状态;a receiving module, configured to receive an exclusive listening response sent by the second target processor for the second data, where the second target processor caches the processor in all nodes connected to the second node a processor of the second data, wherein the listening response for the second data includes a state in which the second data is in an invalid state;
    处理模块,用于确定所述第二节点控制器管理的所述第二数据的数据缓存目录为无效态,所述第二数据的数据缓存目录为无效态指示所述与所述第二节点连接的所有节点中的处理器中的所述第二数据的状态为无效状态。a processing module, configured to determine that a data cache directory of the second data managed by the second node controller is in an invalid state, and a data cache directory of the second data is in an invalid state, indicating that the second node is connected to the second node The state of the second data in the processor in all of the nodes is in an invalid state.
  14. 如权利要求13所述的装置,其特征在于,所述独占侦听响应还包括所述第二数据;所述发送模块还用于:The apparatus according to claim 13, wherein the exclusive listening response further comprises the second data; the sending module is further configured to:
    向所述第二节点的内存储器发送所述第二数据,所述第二数据用于替换所述内存储器中原有的第二数据。Transmitting the second data to an internal memory of the second node, the second data being used to replace the original second data in the internal memory.
  15. 如权利要求13或14所述的装置,其特征在于,所述多个节点还包括第三节点;The apparatus according to claim 13 or 14, wherein said plurality of nodes further comprise a third node;
    所述接收模块还用于:接收所述第三节点发送的数据访问请求,所述数据访问请求用于请求获取所述第二数据;The receiving module is further configured to: receive a data access request sent by the third node, where the data access request is used to request to acquire the second data;
    所述发送模块还用于:向与所述第二节点连接的所有节点中的处理器发送侦听请求,所述侦听请求用于指示所述与所述第二节点连接的所有节点中的处理器根据所述侦听请求的类型确定所述第二数据的状态;The sending module is further configured to: send a listening request to a processor in all nodes connected to the second node, where the listening request is used to indicate that all the nodes connected to the second node are Determining, by the processor, a state of the second data according to a type of the interception request;
    所述接收模块还用于:接收第三目标处理器发送的针对所述第二数据的侦听响应,所述第三目标处理器与所述第二节点连接的所有节点中的处理器中缓存有所述第二数据的处理器,所述针对所述第二数据的侦听响应包括所述第二数据的状态;The receiving module is further configured to: receive a listening response sent by the third target processor for the second data, where the third target processor caches in a processor among all nodes connected to the second node a processor having the second data, the listening response for the second data including a state of the second data;
    所述处理模块还用于:根据所述侦听响应中所述第二数据的状态获取所述第二数据并向所述第三节点发送所述第二数据;在所述第二数据的数据缓存目录中记录所述第二数据的状态。The processing module is further configured to: acquire the second data according to a state of the second data in the listening response, and send the second data to the third node; and data in the second data The state of the second data is recorded in the cache directory.
  16. 如权利要求15所述的装置,其特征在于,The device of claim 15 wherein:
    所述接收模块还用于:接收内存访问控制器发送的所述针对所述第二数据的独占访问请求;The receiving module is further configured to: receive the exclusive access request for the second data sent by a memory access controller;
    所述处理模块还用于:确定未接收到所述内存访问控制器发送的内存扫描结束通知,所述内存扫描结束通知用于指示所述第二节点控制器所属节点内存中所述第二节点控制器管理的所有数据的数据缓存目录均为无效态。The processing module is further configured to: determine that the memory scan end notification sent by the memory access controller is not received, where the memory scan end notification is used to indicate the second node in the memory of the node to which the second node controller belongs The data cache directory of all data managed by the controller is invalid.
PCT/CN2019/070388 2018-01-30 2019-01-04 Data processing method and apparatus applied to node system WO2019149031A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810094902.4 2018-01-30
CN201810094902.4A CN110098945B (en) 2018-01-30 2018-01-30 Data processing method and device applied to node system

Publications (1)

Publication Number Publication Date
WO2019149031A1 true WO2019149031A1 (en) 2019-08-08

Family

ID=67442405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/070388 WO2019149031A1 (en) 2018-01-30 2019-01-04 Data processing method and apparatus applied to node system

Country Status (2)

Country Link
CN (1) CN110098945B (en)
WO (1) WO2019149031A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138851B (en) * 2020-01-16 2023-07-14 华为技术有限公司 Data management method, related device and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120311267A1 (en) * 2011-05-31 2012-12-06 Gaither Blaine D External cache operation based on clean castout messages
CN103870435A (en) * 2014-03-12 2014-06-18 华为技术有限公司 Server and data access method
CN104899160A (en) * 2015-05-30 2015-09-09 华为技术有限公司 Cache data control method, node controller and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120311267A1 (en) * 2011-05-31 2012-12-06 Gaither Blaine D External cache operation based on clean castout messages
CN103870435A (en) * 2014-03-12 2014-06-18 华为技术有限公司 Server and data access method
CN104899160A (en) * 2015-05-30 2015-09-09 华为技术有限公司 Cache data control method, node controller and system

Also Published As

Publication number Publication date
CN110098945A (en) 2019-08-06
CN110098945B (en) 2021-10-19

Similar Documents

Publication Publication Date Title
TWI431475B (en) Apparatus, system and method for memory mirroring and migration at home agent
CN108418900B (en) Caching method, write-in point client and read client in server cluster system
JP3661761B2 (en) Non-uniform memory access (NUMA) data processing system with shared intervention support
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US8631210B2 (en) Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
US20150058570A1 (en) Method of constructing share-f state in local domain of multi-level cache coherency domain system
US9684597B1 (en) Distributed cache coherent shared memory controller integrated with a protocol offload network interface card
EP2992436A1 (en) Memory network to route memory traffic and i/o traffic
US20150189039A1 (en) Memory Data Access Method and Apparatus, and System
CN107341114B (en) Directory management method, node controller and system
CN103294611B (en) Server node data cache method based on limited data consistency state
EP2568379B1 (en) Method for preventing node controller deadlock and node controller
US20050102477A1 (en) Multiprocessor system
US9720603B1 (en) IOC to IOC distributed caching architecture
WO2019149031A1 (en) Data processing method and apparatus applied to node system
WO2017016427A1 (en) Method and device for maintaining cache data consistency according to directory information
CN108415873B (en) Forwarding responses to snoop requests
CN110083548B (en) Data processing method and related network element, equipment and system
US8627016B2 (en) Maintaining data coherence by using data domains
US20210397560A1 (en) Cache stashing system
US11947418B2 (en) Remote access array
CN109710183B (en) Data synchronization method and device
JPH09305489A (en) Information processing system and control method therefor
CN116848516A (en) Distributed caching system and data caching method
CN116107771A (en) Cache state recording method, data access method, related device and equipment

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: 19747883

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19747883

Country of ref document: EP

Kind code of ref document: A1