WO2017020743A1 - 缓存数据共享的方法及设备 - Google Patents
缓存数据共享的方法及设备 Download PDFInfo
- Publication number
- WO2017020743A1 WO2017020743A1 PCT/CN2016/091522 CN2016091522W WO2017020743A1 WO 2017020743 A1 WO2017020743 A1 WO 2017020743A1 CN 2016091522 W CN2016091522 W CN 2016091522W WO 2017020743 A1 WO2017020743 A1 WO 2017020743A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cache
- data file
- data
- server
- proxy node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Definitions
- the present application relates to the field of computers, and in particular, to a method and device for cache data sharing.
- a process on a compute node can use "cache + subscription" to get the latest content of the subscribed data file, thereby updating the locally cached content.
- Each process maintains its own independent cache and a separate connection to the server. It knows whether the content of the data file is up-to-date by using a data file in the subscription server to ensure the timeliness of the data in the cache.
- the data subscription behavior will increase as the number of processes increases, which will lead to the following problems: a) because each process's subscription behavior is dependent on the independent connection to the server established by the process, along with the number of connections The increase will increase the load on the server and pose a serious challenge to the performance of the server. b) Due to the increased load on the server, the delay in obtaining feedback for a single subscription behavior increases, which in turn affects the timeliness of the process to obtain the latest content of the subscription data. c) Since each process has an independent cache, an increase in the number of subscriptions on a single compute node means an increase in cache resource consumption and an increase in the processing of subscription feedback, which in turn consumes computational resources of the compute nodes.
- An object of the present application is to provide a method and device for cache data sharing, thereby saving Compute the cache and computing resources on the node, reduce the large number of connections to the server caused by the subscription behavior, and reduce the load on the server.
- the present application provides a method for caching proxy node to perform cache data sharing, and the method includes:
- sending the data file to the proxy process according to the data access request includes:
- the data access request includes identification information of the data file
- Locating the data file in a cache of the cache proxy node according to the data access request including:
- the method further includes:
- the data file received by the server is saved in the cache, and the state of the data file is set to be the latest;
- the method further includes:
- the method further includes:
- the notification of the change of the data file sent by the server is obtained, including:
- the change notification about the data file sent by the server is obtained by caching the heartbeat communication between the proxy node and the server.
- the cache of the cache proxy node is based on a non-volatile storage medium.
- the present application further provides a method for computing node data for cache data sharing, the method comprising:
- the proxy process of the computing node sends a data access request for a data file to a cache proxy node, wherein the proxy process is one of a plurality of processes on a compute node that is responsible for management by the cache proxy node;
- the agent process receives the data file sent by the caching proxy node according to the data access request.
- the data access request includes identification information of the data file.
- a caching proxy node for caching data sharing comprising:
- a request obtaining device configured to acquire a data access request sent by the proxy process about the data file, where the proxy process includes multiple processes on the computing node that the cache proxy node is responsible for managing;
- a file sending device configured to send the data file to the proxy process according to the data access request.
- the file sending device includes:
- a searching module configured to search for the data file in a cache of the cache proxy node according to the data access request
- a sending module configured to send the data file to the proxy process if the data file exists in a cache of the cache proxy node, and if the state of the data file is the latest; and if the cache proxy node The data file does not exist in the cache, or the state of the data file in the cache of the cache proxy node is not up-to-date, and a data acquisition request for the data file is sent to the server, and the After the server acquires the data file sent by the request according to the data, the server sends the data file received by the server to the agent process.
- the data access request includes identification information of the data file
- the searching module is configured to search for the data file in a cache of the cache proxy node according to the identifier information of the data file in the data access request.
- the file sending device further includes:
- a cache update module configured to: after receiving the data file sent by the server according to the data acquisition request, if the data file does not exist in the cache of the cache proxy node, save the cache received by the server a data file, and setting a state of the data file to be up-to-date; and updating the data file in the cache if the state of the data file in the cache of the cache proxy node is not up-to-date The status of the data file is set to the latest.
- cache proxy node further includes:
- a subscribing device configured to send a subscription request for the data file to the server when acquiring a data access request for the data file sent by the proxy process, when the content of the data file of the server is changed, A change notification corresponding to the subscription request is obtained from the server.
- cache proxy node further includes:
- the notification obtaining means is configured to acquire a change notification about the data file sent by the server, and set the status of the data file to be non-latest according to the change notification.
- the notification obtaining means is configured to acquire, by the heartbeat communication between the proxy node and the server, a change notification about the data file sent by the server, and set the state of the data file to be non-latest according to the change notification.
- the cache of the cache proxy node is based on a non-volatile storage medium.
- the present application further provides a computing node for buffering data sharing, the computing node comprising:
- a request sending device configured to control, by the proxy process of the computing node, a data access request for a data file to be sent to a cache proxy node, wherein the proxy process is a plurality of computing nodes responsible for management by the cache proxy node One of the processes;
- a file obtaining apparatus configured to control the proxy process to receive the data file sent by the caching proxy node according to the data access request.
- the data access request includes identification information of the data file.
- the process on one or more computing nodes is managed by the cache proxy node, and the data files that need to be used by the proxy process are saved in the cache of the cache proxy node, so the process on the compute node does not need to be maintained. Own independent cache space, for a specific data file in the cache proxy node cache can achieve sharing of multiple processes, saving cache and computing resources; at the same time, the proxy process does not need to establish a direct connection with the server, for the same cache proxy Multiple processes under node management only need to establish a connection with the server, thereby reducing the load on the server due to the subscription behavior and reducing the load on the server.
- FIG. 1(a) is a schematic structural diagram of a system for cache data sharing according to an embodiment of the present application
- FIG. 1(b) is a schematic structural diagram of another implementation manner of a system for providing cache data sharing according to an embodiment of the present application
- FIG. 2 is a schematic diagram of a method for performing cache data sharing according to an embodiment of the present application
- FIG. 3 is a schematic diagram of a method for performing cache data sharing on a cache proxy node according to an embodiment of the present application
- FIG. 4 is a schematic structural diagram of a cache proxy node for cache data sharing according to an embodiment of the present disclosure
- FIG. 5 is a schematic structural diagram of a computing node for cache data sharing according to an embodiment of the present disclosure
- FIG. 6 is a schematic structural diagram of a file sending apparatus in a cache proxy node for cache data sharing according to an embodiment of the present application
- FIG. 7 is a schematic structural diagram of a cache proxy node for cache data sharing according to an embodiment of the present disclosure.
- FIG. 8 is a schematic diagram of interaction between devices in a cache data sharing process according to an embodiment of the present application.
- the terminal, the device of the service network, and the trusted party each include one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
- processors CPUs
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
- RAM random access memory
- ROM read only memory
- Memory is an example of a computer readable medium.
- Computer readable media includes both permanent and non-persistent, removable and non-removable media.
- Information storage can be implemented by any method or technology.
- the information can be computer readable instructions, data structures, modules of programs, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage,
- computer readable media does not include non-transitory computer readable media, such as modulated data signals and carrier waves.
- FIG. 1(a) shows a schematic structural diagram of a system for implementing cache data sharing consisting of a compute node, a cache proxy node, and a server, the system including at least a compute node 110, a cache proxy node 120, and a server 130.
- the computing node 110 runs a plurality of processes 111, 112, 113, each of which establishes a connection with the proxy caching proxy node 120, and a connection is established between the caching proxy node 120 and the server 130.
- the processes in the computing node 110 do not directly establish and interact with the server 130, but interact with the server 130 through the caching proxy node 120.
- each of the servers may establish a connection with one or more caching proxy nodes, and each caching proxy node may also establish a connection with processes on one or more computing nodes, on these computing nodes. The process is managed.
- the computing node, the caching proxy node, and the server involved in the system may include, but are not limited to, a network host, a single network server, multiple network server sets, or a cloud computing-based computer set.
- the cloud is composed of a large number of host or network servers based on Cloud Computing, which is a kind of distributed computing, a virtual computer composed of a group of loosely coupled computers.
- the cache proxy node may be integrated into the compute node as a cache proxy module 120' having the corresponding function in the compute node 130. For details, refer to FIG. 1(b).
- FIG. 2 illustrates a method for performing cache data sharing, wherein, at the cache proxy node side, the method includes:
- Step S202 the caching proxy node acquires a data access request for the data file sent by the proxy process.
- the one of the plurality of processes on the computing node that is being managed by the proxy proxy node for example, the processes 111, 112, and 113 in the foregoing FIG. 1(a) are all proxyed by the cache proxy node 120. process.
- Step S203 The cache proxy node sends the data file to the proxy process according to the data access request.
- the method includes:
- Step S201 the proxy process of the computing node sends a data access request for the data file to the cache proxy node;
- Step S204 the agent process receives the data file sent by the caching proxy node according to the data access request.
- the cache node is used to manage processes on one or more compute nodes.
- the data files that need to be used by the proxy process are stored in the cache of the cache proxy node. Therefore, the processes on the compute nodes do not need to maintain their own independent cache space.
- Caching a specific data file in the proxy node cache enables sharing of multiple processes, saving cache and computing resources. For example, in the system shown in FIG. 1(a), the processes 111, 112, and 113 all cache the proxy process of the proxy node 120, and the data files required during the running process are saved in the cache of the cache proxy node 120. Data file A is required for all three processes.
- each process maintains its own independent cache, and processes 111, 112, and 113 need to save one data file A in its independent cache, that is, three identical data files A need to be saved.
- the three processes can share the data file A in the cache proxy node cache, only one data file A needs to be saved at this time, thereby saving the cache and computing resources.
- each process since the agent process does not need to establish a connection directly with the server, it is only necessary to establish a connection with the server for multiple processes managed by the same cache proxy node, thereby reducing the amount of server-to-server due to the subscription behavior. Connect to reduce the load on the server.
- FIG. 1(a) if the existing method is used, each process maintains its own independent connection to the server 130. At this time, the server 130 needs to manage three connections, and adopts a cache proxy node. Thereafter, the subscription behavior of the three processes is unified through the caching proxy node, so the server 130 only needs to connect one connection between the management server 130 and the caching proxy node 120, thereby reducing the load on the server.
- the cache proxy node Due to the different storage conditions of the data files in the cache proxy node cache, the cache proxy node sends the data files to the proxy process in a different manner.
- the embodiment of the present application further provides a preferred method for performing cache data sharing on a cache proxy node.
- the process of the method is as shown in FIG. 3, and includes:
- Step S301 the cache proxy node acquires data about the data file sent by the proxy process. Access request.
- Step S302 searching for the data file in a cache of the cache proxy node according to the data access request
- Step S303 if the data file exists in the cache of the cache proxy node, and the state of the data file is the latest, sending the data file to the proxy process;
- Step S304 if the data file does not exist in the cache of the cache proxy node, or the state of the data file in the cache of the cache proxy node is not up-to-date, send data about the data file to the server. Acquiring the request, and after receiving the data file sent by the server according to the data acquisition request, sending the data file received by the server to the proxy process.
- the data access request may include the identifier information of the data file.
- the step S302 is configured to search the data file in the cache of the cache proxy node according to the data access request, specifically: according to the The identification information of the data file in the data access request is searched for in the cache of the cache proxy node.
- the identifier information may be any information that can uniquely identify the data file.
- the identifier information used in this embodiment is path information of the data file.
- the caching proxy node When searching for a data file, the caching proxy node performs a matching search in the cache according to the path information included in the data access request. If a matching data file has the same path information in the cache, it may be determined that the data exists in the cache. Access the data file corresponding to the request.
- the cache proxy node searches for the data file in the cache according to the data access request
- the following storage conditions may exist: 1.
- the data file exists in the cache, and the state of the data file is the latest (that is, in the server).
- the content of the data file is consistent with the content in the cache;
- the data file exists in the cache, but the state of the data file is not up-to-date (ie, the content of the data file has been changed in the server, but has not been changed in the cache);
- Third, the data file does not exist in the cache.
- the data file of the latest content in the cache can be directly sent to the process of the compute node according to the data access request.
- the cache proxy node 120 receives the data access request about the data file A sent by the process 111 in the computing node 110, it searches for the data in the cache according to the data access request.
- File A the status of the file in the cache of the proxy node 120 can be represented by Update and Dirty, where Update indicates that the data file status is up to date, and Dirty indicates that the status of the data file is not up to date.
- the cache proxy node 120 directly sends the data file A in the cache to the process 111.
- the caching proxy node needs to send a data acquisition request for the data file to the server to obtain the data file of the latest content.
- the cache proxy node 120 sends a data acquisition request to the server 130.
- the server 130 transmits the data file A of the latest content to the caching proxy node 120 according to the data acquisition request, whereby the caching proxy node 120 transmits the data file A to the process 111 after receiving the data file A.
- the cache proxy node further updates the cache, so as to be directly in the cache when receiving other data access requests for the same data file.
- the data file of the latest content is found without having to access the server in order to solve the processing resources and reduce the server load.
- the cache proxy node after receiving the data file sent by the server according to the data acquisition request, the cache proxy node further includes: if the data file does not exist in the cache of the cache proxy node, storing the server in the cache Receiving the data file, and setting the state of the data file to be the latest; if the state of the data file in the cache of the cache proxy node is not up-to-date, updating the data file in the cache, and The status of the data file is set to be the latest.
- the proxy cache node 120 finds that the data file A does not exist in the cache during the previous search process, and directly saves the data file A in the cache and sets its state to Update; if the data file in the cache is found in the previous search process When the state of A is Dirty, the content of the original data file A is updated according to the received data file A, and its state is set to Update.
- the foregoing method for performing cache data sharing on the cache proxy node side further includes: acquiring a change notification about the data file sent by the server, and setting the state of the data file to be non-latest according to the change notification.
- the update of the state of the data file in the cache can be implemented by means of a subscription. Since all of the proxy processes get the latest content data files through their corresponding caching proxy nodes, the caching proxy node subscribes to all the data files it needs to be served by the proxy nodes. Specifically, the cache proxy node sends a subscription request for the data file to the server when acquiring a data access request for the data file sent by the proxy process, so that when the content of the data file of the server is changed And obtaining, from the server, a change notification corresponding to the subscription request. Since the caching proxy node only sends the subscription request for the specific data file when the data access request is obtained, the subscribed data file is actually used by the proxy, which can avoid invalid subscription and save processing resources.
- the cache proxy node 120 upon receiving the data access request for the data file A sent by the process 111, sends a subscription request for the data file A to the server 130 to complete. Subscribe to data file A to ensure subsequent notification of changes to data file A. After completing the subscription of data file A. Accordingly, in the server 130, after receiving the subscription request, the information of each caching proxy node (including the caching proxy node 120) subscribed to the data file A is saved. When the content of the data file A is changed, a change notification is sent to all the caching proxy nodes that subscribe to the data file A. After receiving the change notification, the cache proxy node 120 sets the state of the data file A to Dirty, so that the next time the data access request for the data file A of the proxy process is processed, the content of the data file A is updated. .
- the caching proxy node acquires a change notification about the data file sent by the server, including: the caching proxy node acquires a notification of the change of the data file sent by the server by caching the heartbeat communication between the proxy node and the server.
- the cache proxy node and the server will use heartbeat communication to confirm whether the two parties are still online. Therefore, the heartbeat signal sent and received by the buffering proxy node and the server can transmit the change notification about the data file, and the existing timing communication is used to realize the information transmission, thereby saving the expenditure of the communication resource.
- the server sends a heartbeat response (Heartbeat Response) to the heartbeat request after the cache proxy node is received.
- Heartbeat Response Heartbeat Response
- the change notification information can be written into the heartbeat reply, so that the cache is cached.
- the proxy node receives a heartbeat reply, it can get a change notification.
- the cache of the cache proxy node is based on a non-volatile storage medium, such as a PCM (Phase-Change Random Access Memory), so that the cached proxy node restarts the data stored in the cache. Files are not lost, reducing the number of cache warmups and enhancing the robustness of the overall system.
- PCM Phase-Change Random Access Memory
- the structure of a cache proxy node for cache data sharing is as shown in FIG. 4 , and includes a request acquisition device 410 and a file sending device 420 .
- the request obtaining apparatus 410 is configured to acquire a data access request about a data file sent by the proxy process, where the proxy process includes multiple processes on the computing node that the cache proxy node is responsible for, such as the foregoing figure.
- the processes 111, 112, 113 in 1(a) are all proxy processes of the caching proxy node 120.
- the file sending device 420 is configured to send the data file to the proxy process according to the data access request.
- the structure of a computing node for cache data sharing is as shown in FIG. 5, and includes a request sending device 510 and a file obtaining device 520.
- the request sending device 510 is configured to control the proxy process of the computing node to send a data access request for the data file to the caching proxy node.
- the file obtaining means 520 is configured to control the proxy process to receive the data file sent by the caching proxy node according to the data access request.
- the processes 111, 112, and 113 all cache the proxy process of the proxy node 120, and the data files required during the running process are saved in the cache of the cache proxy node 120.
- Data file A is required for all three processes.
- each process maintains its own independent cache, and processes 111, 112, and 113 need to save one data file A in its independent cache, that is, three identical data files A need to be saved.
- the three processes can share the data file A in the cache proxy node cache, only one data file A needs to be saved at this time, thereby saving the cache and computing resources.
- each process since the agent process does not need to establish a connection directly with the server, it is only necessary to establish a connection with the server for multiple processes managed by the same cache proxy node, thereby reducing the amount of server-to-server due to the subscription behavior. Connect to reduce the load on the server.
- FIG. 1(a) if the existing method is used, each process maintains its own independent connection to the server 130. At this time, the server 130 needs to manage three connections, and adopts a cache proxy node. Thereafter, the subscription behavior of the three processes is unified through the caching proxy node, so the server 130 only needs to connect one connection between the management server 130 and the caching proxy node 120, thereby reducing the load on the server.
- the cache proxy node Due to the different storage conditions of the data files in the cache proxy node cache, the cache proxy node sends the data files to the proxy process in a different manner. To this end, the embodiment of the present application further provides a cache proxy node for cache data sharing.
- the structure of the file sending device in the cache proxy node is as shown in FIG. 6 , and includes: a search module 421 and Send module 422.
- the searching module 421 is configured to search the data file in the cache of the cache proxy node according to the data access request
- the sending module 422 is configured to: if the data file exists in a cache of the cache proxy node, and Sending the data file to the proxy process if the status of the data file is up-to-date; and if the data file does not exist in the cache of the cache proxy node, or in a cache of the cache proxy node Sending a data acquisition request for the data file to the server after the status of the data file is non-latest, and after receiving the data file sent by the server according to the data acquisition request, The data file received by the server is sent by the proxy process.
- the data access request may include the identification information of the data file; correspondingly, the searching module 421 is specifically configured to cache the cache proxy node according to the identifier information of the data file in the data access request. Find the data file in .
- the identifier information may be any information that can uniquely identify the data file.
- the identifier information used in this embodiment is path information of the data file.
- the lookup module 421 of the cache proxy node performs a matching search in the cache according to the path information included in the data access request. If a certain data file in the cache matches the same path information, the cache may be determined. There is a data file corresponding to the data access request.
- the cache proxy node searches for the data file in the cache according to the data access request
- the following storage conditions may exist: 1.
- the data file exists in the cache, and the state of the data file is the latest (that is, in the server).
- the content of the data file is consistent with the content in the cache;
- the data file does not exist in the cache.
- the data file of the latest content in the cache can be directly sent to the process of the compute node according to the data access request.
- the cache proxy node 120 receives the data access request about the data file A sent by the process 111 in the computing node 110, it searches for the data in the cache according to the data access request.
- File A the status of the file in the cache of the proxy node 120 can be represented by Update and Dirty, where Update indicates that the data file status is up to date, and Dirty indicates that the status of the data file is not up to date. If the data file A exists in the cache and the state of the data file A is Update, the cache proxy node 120 directly sends the data file A in the cache to the process. 111.
- the caching proxy node needs to send a data acquisition request for the data file to the server to obtain the data file of the latest content.
- the cache proxy node 120 sends a data acquisition request to the server 130.
- the server 130 transmits the data file A of the latest content to the caching proxy node 120 according to the data acquisition request, whereby the caching proxy node 120 transmits the data file A to the process 111 after receiving the data file A.
- the file sending apparatus 420 further includes a cache update module (not shown), and after receiving the data file sent by the server according to the data acquisition request, the cache proxy node further updates the cache to When receiving other data access requests for the same data file, the data file of the latest content can be found directly in the cache without accessing the server, so as to solve the processing resources and reduce the server load.
- the cache update module is stored in the cache and is received by the server.
- the cache proxy node 120 receives the data file A sent by the server 130
- the proxy cache node 120 finds that the data file A does not exist in the cache during the previous search process, the data file A is directly saved in the cache. And set its state to Update; if the state of the data file A in the cache is Dirty in the previous search process, the content of the original data file A is updated according to the received data file A, and at the same time
- the status is set to Update.
- the embodiment of the present application further provides another preferred cache proxy node for cache data sharing, and the cache proxy node is as shown in FIG. 7, except for the request obtaining device 410 and the file sending device 420 shown in FIG.
- the notification obtaining means 430 is configured to acquire a change notification about the data file sent by the server, and set the state of the data file to be non-latest according to the change notification.
- the update of the state of the data file in the cache can be implemented by means of a subscription. Since all of the proxy processes get the latest content data files through their corresponding caching proxy nodes, the caching proxy node subscribes to all the data files it needs to be served by the proxy nodes. Specifically, the caching proxy node may further include a subscribing device (not shown) for transmitting a subscription to the data file to the server when acquiring a data access request for the data file sent by the proxy process Requesting, to obtain a change notification corresponding to the subscription request from the server when the content of the data file of the server changes. Since the caching proxy node only sends the subscription request for the specific data file when the data access request is obtained, the subscribed data file is actually used by the proxy, which can avoid invalid subscription and save processing resources.
- a subscribing device not shown
- the cache proxy node 120 upon receiving the data access request for the data file A sent by the process 111, sends a subscription request for the data file A to the server 130 to complete. Subscribe to data file A to ensure subsequent notification of changes to data file A. After completing the subscription of data file A. Accordingly, in the server 130, after receiving the subscription request, the information of each caching proxy node (including the caching proxy node 120) subscribed to the data file A is saved. When the content of the data file A is changed, a change notification is sent to all the caching proxy nodes that subscribe to the data file A. After receiving the change notification, the cache proxy node 120 sets the state of the data file A to Dirty, so that the next time the data access request for the data file A of the proxy process is processed, the content of the data file A is updated. .
- the notification obtaining means is specifically configured to acquire a change notification about the data file sent by the server by using a heartbeat communication between the proxy node and the server.
- the cache proxy node and the server will use heartbeat communication to confirm whether the two parties are still line. Therefore, the heartbeat signal sent and received by the buffering proxy node and the server can transmit the change notification about the data file, and the existing timing communication is used to realize the information transmission, thereby saving the expenditure of the communication resource.
- the server sends a heartbeat response (Heartbeat Response) to the heartbeat request after the cache proxy node is received.
- Heartbeat Response Heartbeat Response
- the change notification information can be written into the heartbeat reply, so that the cache is cached.
- the proxy node receives a heartbeat reply, it can get a change notification.
- the cache of the cache proxy node is based on a non-volatile storage medium, such as PCM, so that after the cache proxy node is restarted, data files saved in the cache are not lost, thereby reducing cache warm-up.
- PCM non-volatile storage medium
- the system shown in FIG. 1( a ) is taken as an example to describe the interaction process between the devices in the cache data sharing process, as shown in FIG. 8 .
- step S801 the process 111 in the computing node 110 sends a data access request to the caching proxy node 120.
- the data access request contains the path information of the required data file.
- Step S802 after receiving the data access request, the cache proxy node 120 searches for the existence of the data file in its own cache according to the path information of the data file. In this step, there may be three search results, corresponding to three search results. , respectively, perform different subsequent steps. If the data file exists in the cache, and the status of the data file is Update, step S806 is performed; if the data file exists in the cache, and the status of the data file is Dirty, step S803 is performed; if the data file does not exist in the cache, execute Step S803.
- step S803 the caching proxy node 120 sends a data acquisition request to the server 130.
- step S804 the server 130 sends the corresponding data file to the caching proxy node 120 according to the data acquisition request.
- Step S805 the cache proxy node 120 updates its own cache according to the received data file. If the data file already exists, the content is updated, and the state is set to Update by Dirty; if the data file does not exist, it is directly saved to Cache and set the status to Update.
- step S806 the caching proxy node 120 sends the data file in the cache to the process 111 of the computing node 110.
- the caching proxy node simultaneously performs step S807 to send a subscription request to the server 130.
- Step S808 after receiving the subscription request, the server 130 completes the subscription of the corresponding data file. If the content of the data file in the server 130 changes, the server 130 will send a change notification to the caching proxy node 120 subscribing to the data file.
- step S809 the caching proxy node 120 sets the state of the data file to Dirty according to the change notification.
- the cache proxy node manages processes on one or more compute nodes, and the data files that need to be used by the proxy processes are stored in the cache of the cache proxy node, so the processes on the compute nodes need not maintain their own independence.
- Cache space, for a specific data file in the cache proxy node cache can achieve sharing of multiple processes, saving cache and computing resources; at the same time the proxy process does not need to establish a direct connection with the server, for the same cache proxy node management Under the multiple processes, only need to establish a connection with the server, thereby reducing the large number of connections to the server due to the subscription behavior, reducing the load on the server.
- the present application can be implemented in software and/or a combination of software and hardware, for example, using an application specific integrated circuit (ASIC), a general purpose computer, or any other similar hardware device.
- the software program of the present application can be executed by a processor to implement the steps or functions described above.
- the software programs (including related data structures) of the present application can be stored in a computer readable recording medium such as a RAM memory, a magnetic or optical drive or a floppy disk and the like.
- some of the steps or functions of the present application may be implemented in hardware, for example, as a circuit that cooperates with a processor to perform various steps or functions.
- a portion of the present application can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide a method and/or technical solution in accordance with the present application.
- the program instructions for invoking the method of the present application may be stored in a fixed or removable recording medium, and/or transmitted by a data stream in a broadcast or other signal bearing medium, and/or stored in a The working memory of the computer device in which the program instructions are run.
- an embodiment in accordance with the present application includes a device including a memory for storing computer program instructions and a processor for executing program instructions. When the computer program instructions are executed by the processor, the apparatus is triggered to operate based on the methods and/or technical solutions described above in accordance with various embodiments of the present application.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请的目的是提供一种缓存数据共享的方法及设备,具体地,在缓存代理节点端,获取被代理进程发送的关于数据文件的数据访问请求,根据数据访问请求向被代理进程发送数据文件;通过缓存代理节点来管理一个或者多个计算节点上的进程,这些被代理进程需要使用的数据文件均保存于缓存代理节点的缓存中,因此计算节点上的进程无需维持自己独立的缓存空间,对于缓存代理节点缓存中的某个特定数据文件可以实现对多个进程的共享,节约了缓存与计算资源;同时被代理进程无需再与服务器直接建立连接,对于同一缓存代理节点管理下的多个进程,仅需与服务器建立一个连接即可,由此减少了因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。
Description
本申请涉及计算机领域,尤其涉及一种缓存数据共享的方法及设备。
大规模分布式计算系统中,为了加快对服务器端数据的访问,计算节点中的进程通常会引入缓存来管理经常访问的数据。在分布式场景下,服务器端的数据随时可能发生变化,因此为了保证每个进程维持的缓存的时效性,进程管理的缓存需要不定时地更新。但是,无论是每个计算节点定期从服务器端拉取(Pull)数据,或者服务器端不定时推送(Push)数据至各计算节点进程的缓存,均会给分布式计算系统带来访问压力。
在分布式协调系统中,计算节点上的进程可以使用“缓存+订阅”来获取订阅的数据文件的最新内容,进而更新本地缓存的内容。每个进程均维护着自己独立的缓存以及单独到服务器的连接,通过与订阅服务器中某个数据文件,来获知该数据文件的内容是否为最新,从而保证缓存中数据的时效性。随着业务规模的迅速增长,整个系统中往往运行着成千上万乃至更多的进程,并且单个计算节点上运行的进程也越来越多。
由此,数据订阅行为也会随着进程数量的增加而增加,随之将导致以下问题:a)由于每个进程的订阅行为都依附该进程建立的独立到服务器的连接,随着连接数的增加,会增加服务器的负载,对服务器的性能带来了严峻挑战。b)由于服务器的负载增加,单个订阅行为的获取反馈的延迟增加,进而影响进程获取订阅数据最新内容的时效性。c)由于每个进程拥有独立的缓存,单个计算节点上订阅数量增加意味着缓存资源消耗的增加,以及处理订阅反馈的操作增加,进而消耗计算节点的计算资源。
发明内容
本申请的一个目的是提供一种缓存数据共享的方法及设备,从而节约
计算节点上缓存与计算资源,减少因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。
为实现上述目的,本申请提供了一种缓存代理节点端进行缓存数据共享的方法,该方法包括:
获取被代理进程发送的关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;
根据所述数据访问请求向所述被代理进程发送所述数据文件。
进一步地,根据所述数据访问请求向所述被代理进程发送所述数据文件,包括:
根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;
若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;
若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所述被代理进程发送由服务器接收到的数据文件。
进一步地,所述数据访问请求包含所述数据文件的标识信息;
根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件,包括:
根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。
进一步地,在接收到所述服务器根据所述数据获取请求发送的数据文件之后,还包括:
若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;
若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更
新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。
进一步地,该方法还包括:
在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。
进一步地,该方法还包括:
获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
进一步地,获取服务器发送的关于数据文件的更改通知,包括:
通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知。
进一步地,所述缓存代理节点的缓存基于非易失性的存储介质。
相应地,本申请还提供了一种计算节点端进行缓存数据共享的方法,该方法包括:
所述计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;
所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
进一步地,所述数据访问请求包含所述数据文件的标识信息。
根据本申请的另一方面,还提供了一种缓存数据共享的缓存代理节点,该缓存代理节点包括:
请求获取装置,用于获取被代理进程发送的关于数据文件的数据访问请求,其中,所述被代理进程包括所述缓存代理节点负责管理的计算节点上的多个进程;
文件发送装置,用于根据所述数据访问请求向所述被代理进程发送所述数据文件。
进一步地,所述文件发送装置,包括:
查找模块,用于根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;
发送模块,用于若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;以及若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所述被代理进程发送由服务器接收到的数据文件。
进一步地,所述数据访问请求包含所述数据文件的标识信息;
所述查找模块,用于根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。
进一步地,所述文件发送装置,还包括:
缓存更新模块,用于在接收到所述服务器根据所述数据获取请求发送的数据文件之后,若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;以及若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。
进一步地,该缓存代理节点还包括:
订阅装置,用于在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。
进一步地,该缓存代理节点还包括:
通知获取装置,用于获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
进一步地,所述通知获取装置,用于通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
进一步地,所述缓存代理节点的缓存基于非易失性的存储介质。
相应地,本申请还提供了一种缓存数据共享的计算节点,该计算节点包括:
请求发送装置,用于控制所述计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;
文件获取装置,用于控制所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
进一步地,所述数据访问请求包含所述数据文件的标识信息。
与现有技术相比,通过缓存代理节点来管理一个或者多个计算节点上的进程,这些被代理进程需要使用的数据文件均保存于缓存代理节点的缓存中,因此计算节点上的进程无需维持自己独立的缓存空间,对于缓存代理节点缓存中的某个特定数据文件可以实现对多个进程的共享,节约了缓存与计算资源;同时被代理进程无需再与服务器直接建立连接,对于同一缓存代理节点管理下的多个进程,仅需与服务器建立一个连接即可,由此减少了因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1(a)为本申请实施例提供一种缓存数据共享的系统的结构示意图;
图1(b)为本申请实施例提供缓存数据共享的系统的另一种实现方式的结构示意图;
图2为本申请实施例提供一种进行缓存数据共享的方法;
图3为本申请实施例提供的一种在缓存代理节点端进行缓存数据共享的方法;
图4为本申请实施例提供的一种缓存数据共享的缓存代理节点的结构示意图;
图5为本申请实施例提供的一种缓存数据共享的计算节点的结构示意图;
图6为本申请实施例中缓存数据共享的缓存代理节点中文件发送装置的结构示意图;
图7为本申请实施例提供的一种优选的缓存数据共享的缓存代理节点的结构示意图;
图8为本申请实施例中进行缓存数据共享过程中各设备之间的交互示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1(a)示出了由计算节点、缓存代理节点和服务器构成的实现缓存数据共享的系统的结构示意图,该系统至少包括计算节点110、缓存代理节点120和服务器130。计算节点110运行有多个进程111、112、113,每个进程均与所述代理缓存代理节点120建立有连接,缓存代理节点120和服务器130之间建立有连接。由此,所述计算节点110中的进程不直接与服务器130建立连接并进行交互,而是通过缓存代理节点120与所述服务器130进行交互。为简明起见,图1(a)中示出的计算节点、缓存代理节点和服务器均为一个,其数量可能小于一个实际系统中的数量,但这种省略无疑地是以不会影响对本发明进行清楚、充分的公开为前提的。例如,在实际应用中,所述每个服务器可能与一个或多个缓存代理节点建立连接,而每个缓存代理节点也可能与一个或多个计算节点上的进程建立连接,对这些计算节点上的进程进行管理。
在此,本领域技术人员应当理解,该系统涉及的计算节点、缓存代理节点以及服务器均可以包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。此外,所述缓存代理节点也可以集成于所述计算节点中,作为该计算节点130中具备相应功能的缓存代理模块120’的形式实现,具体可参见图1(b)。
图2示出了一种进行缓存数据共享的方法,其中,在缓存代理节点端,该方法包括:
步骤S202,缓存代理节点获取被代理进程发送的关于数据文件的数据访问请求。其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一,例如前述图1(a)中的进程111、112、113均为缓存代理节点120的被代理进程。
步骤S203,缓存代理节点根据所述数据访问请求向所述被代理进程发送所述数据文件。
相应地,在计算节点端,该方法包括:
步骤S201,计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求;
步骤S204,所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
通过缓存代理节点来管理一个或者多个计算节点上的进程,这些被代理进程需要使用的数据文件均保存于缓存代理节点的缓存中,因此计算节点上的进程无需维持自己独立的缓存空间,对于缓存代理节点缓存中的某个特定数据文件可以实现对多个进程的共享,节约了缓存与计算资源。例如,以图1(a)所示的系统为例,进程111、112、113均缓存代理节点120的被代理进程,其运行过程中需要的数据文件均保存在缓存代理节点120的缓存中,对于三个进程均需要使用的数据文件A。若采用现有的方式,每个进程均维持自己独立的缓存,进程111、112和113均需要在其独立的缓存中保存一个数据文件A,即需要保存三份相同的数据文件A,而采用缓存代理节点后,由于三个进程可以共用缓存代理节点缓存中的数据文件A,此时仅需要保存一份数据文件A即可,由此节约了缓存和计算资源。
此外,由于被代理进程无需再与服务器直接建立连接,对于同一缓存代理节点管理下的多个进程,仅需与服务器建立一个连接即可,由此减少了因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。仍以图1(a)所示的系统为例,若采用现有的方式,每个进程均维持自己独立的到服务器130的连接,此时服务器130需要管理三个连接,而采用缓存代理节点后,三个进程的订阅行为统一通过缓存代理节点完成,因此服务器130仅需要管理服务器130与缓存代理节点120之间的一个连接即可,由此减轻服务器的负载。
由于数据文件在缓存代理节点缓存中的存储状况不同,缓存代理节点根据会采用不同的方式向所述被代理进程发送所述数据文件。为此,本申请实施例还提供了一种优选的在缓存代理节点端进行缓存数据共享的方法,该方法的流程如图3所示,包括:
步骤S301,缓存代理节点获取被代理进程发送的关于数据文件的数据
访问请求。
步骤S302,根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;
步骤S303,若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;
步骤S304,若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所述被代理进程发送由服务器接收到的数据文件。
优选地,所述数据访问请求可以包含所述数据文件的标识信息;相应地,步骤S302根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件,具体包括:根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。其中,所述标识信息可以是任意可以唯一标识所述数据文件的信息,例如本实施例中所采用的标识信息为所述数据文件的路径信息。在查找数据文件时,缓存代理节点根据数据访问请求中包含的路径信息在缓存中进行匹配查找,若在缓存中匹配到某一数据文件具有相同的路径信息,则可以确定缓存中存在所述数据访问请求对应的数据文件。由此,可以准确快速地确定数据文件在缓存代理节点缓存中的存储状况不同,进而采取不同的方式向所述被代理进程发送所述数据文件。在此,本领域技术人员应当理解,上述路径信息作为数据文件的标识信息的方式为举例,其他现有的或今后可能出现的标识信息的实现方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
当缓存代理节点根据所述数据访问请求在缓存中查找所述数据文件后,可能存在以下几种存储状况:一、缓存中存在所述数据文件,且该数据文件的状态为最新(即在服务器中该数据文件的内容与在缓存中的内容一致);二、缓存中存在所述数据文件,但是该数据文件的状态为非最新
(即在服务器中该数据文件的内容已经更改,但是缓存中还未更改);三、缓存中不存在所述数据文件。
对于第一种情况,可以直接根据数据访问请求将缓存中最新内容的数据文件发给计算节点的进程。以图1(a)所示的系统为例,其缓存代理节点120接收到计算节点110中的进程111发送的关于数据文件A的数据访问请求后,会根据该数据访问请求在缓存中查找数据文件A。在该系统中,缓存代理节点120缓存中的文件状态可以采用Update和Dirty表示,其中Update表示数据文件状态为最新,Dirty表示数据文件的状态为非最新。若为前述的第一种情况,缓存中存在数据文件A,且该数据文件A的状态为Update,则缓存代理节点120直接将缓存中的数据文件A发送给进程111。
而对于第二和第三种情况,缓存代理节点需要向服务器发送关于所述数据文件的数据获取请求,以获取最新内容的数据文件。仍以前述系统为例,若代理缓存节点120的缓存中不存在数据文件A或者缓存中存在数据文件A但该数据文件A的状态为Dirty,则缓存代理节点120会向服务器130发送数据获取请求,服务器130根据数据获取请求向缓存代理节点120发送最新内容的数据文件A,由此缓存代理节点120在接收到该数据文件A后,将其发送给进程111。
进一步地,缓存代理节点在接收到所述服务器根据所述数据获取请求发送的数据文件之后,还会对缓存进行更新,以便在接到其它关于同一数据文件的数据访问请求时,能够直接在缓存中找到最新内容的所述数据文件,而无需再访问服务器,以便解决处理资源,减轻服务器负载。具体地,缓存代理节点在接收到所述服务器根据所述数据获取请求发送的数据文件之后,还包括:若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。接上例,缓存代理节点120在接收到服务器130发送的该数据文件A后,若
代理缓存节点120在先前的查找过程中发现缓存中不存在数据文件A,则直接在缓存中保存数据文件A,并将其状态设置为Update;若在先前的查找过程中发现缓存中的数据文件A的状态为Dirty,则根据接收到的数据文件A,对原数据文件A的内容进行更新,同时将其状态置为Update。
由于在分布式场景下,服务器中数据文件的内容随时可能发生变化,因此需要对缓存中的数据文件的状态进行实时的更新,以保证计算节点的进程可以获取到最新内容的数据文件。由此,前述的在缓存代理节点端进行缓存数据共享的方法,还包括:获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
在实际应用中,缓存中数据文件状态的更新可以通过订阅的方式实现。由于所有被代理进程通过其对应的缓存代理节点获取最新内容的数据文件,因此缓存代理节点会对所有其被代理节点需要的数据文件进行订阅。具体地,缓存代理节点在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。由于缓存代理节点仅在获取数据访问请求时,才发送针对特定数据文件的订阅请求,使得订阅的数据文件均是其被代理进行实际使用到的,可以避免无效的订阅,节约处理资源。
仍以图1(a)所示的系统为例,缓存代理节点120在收到进程111发送的关于该数据文件A的数据访问请求,会向服务器130发送关于数据文件A的订阅请求,以完成对数据文件A的订阅,以确保后续能够收到数据文件A的更改通知。在完成数据文件A的订阅后。相应地,在服务器130中,在接收到订阅请求后,会对每个订阅了数据文件A的缓存代理节点(包括缓存代理节点120)的信息进行保存。当数据文件A的内容变更时,会向订阅了数据文件A的所有缓存代理节点发送更改通知。缓存代理节点120在接收到更改通知后,会将数据文件A的状态设置为Dirty,使得下次处理被代理进程的关于数据文件A的数据访问请求时,向对该数据文件A的内容进行更新。
优选地,缓存代理节点获取服务器发送的关于数据文件的更改通知,包括:缓存代理节点通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知。由于在实际应用中,缓存代理节点和服务器之间会通过心跳通信来确认双方是否仍然在线。由此缓存代理节点和服务器之间可以利用定时收发的心跳信号来传输关于数据文件的更改通知,利用现有的定时通信实现信息的传递,节约通信资源的开支。例如服务器会在收到缓存代理节点的心跳请求(Heartbeat Request)之后,向其发送心跳回复(Heartbeat Response),当服务器需要发送更改通知时,可以将更改通知的信息写入心跳回复中,使得缓存代理节点在收到心跳回复时,即可获得更改通知。
进一步地,所述缓存代理节点的缓存基于非易失性的存储介质,例如PCM(Phase-Change Random Access Memory,相变随机存取存储器),使得缓存代理节点重启后,其缓存内保存的数据文件不会丢失,从而减少缓存预热(warm up)的次数,增强整个系统的鲁棒性。
基于本申请的另一方面,本申请实施例提供的一种缓存数据共享的缓存代理节点的结构如图4所示,包括请求获取装置410和文件发送装置420。具体地,请求获取装置410用于获取被代理进程发送的关于数据文件的数据访问请求,其中,所述被代理进程包括所述缓存代理节点负责管理的计算节点上的多个进程,例如前述图1(a)中的进程111、112、113均为缓存代理节点120的被代理进程。文件发送装置420用于根据所述数据访问请求向所述被代理进程发送所述数据文件。
相应地,本申请实施例提供的一种缓存数据共享的计算节点的结构如图5所示,包括请求发送装置510和文件获取装置520。具体地,请求发送装置510用于控制所述计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求。文件获取装置520用于控制所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
通过缓存代理节点来管理一个或者多个计算节点上的进程,这些被代理进程需要使用的数据文件均保存于缓存代理节点的缓存中,因此计算节
点上的进程无需维持自己独立的缓存空间,对于缓存代理节点缓存中的某个特定数据文件可以实现对多个进程的共享,节约了缓存与计算资源。例如,以图1(a)所示的系统为例,进程111、112、113均缓存代理节点120的被代理进程,其运行过程中需要的数据文件均保存在缓存代理节点120的缓存中,对于三个进程均需要使用的数据文件A。若采用现有的方式,每个进程均维持自己独立的缓存,进程111、112和113均需要在其独立的缓存中保存一个数据文件A,即需要保存三份相同的数据文件A,而采用缓存代理节点后,由于三个进程可以共用缓存代理节点缓存中的数据文件A,此时仅需要保存一份数据文件A即可,由此节约了缓存和计算资源。
此外,由于被代理进程无需再与服务器直接建立连接,对于同一缓存代理节点管理下的多个进程,仅需与服务器建立一个连接即可,由此减少了因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。仍以图1(a)所示的系统为例,若采用现有的方式,每个进程均维持自己独立的到服务器130的连接,此时服务器130需要管理三个连接,而采用缓存代理节点后,三个进程的订阅行为统一通过缓存代理节点完成,因此服务器130仅需要管理服务器130与缓存代理节点120之间的一个连接即可,由此减轻服务器的负载。
由于数据文件在缓存代理节点缓存中的存储状况不同,缓存代理节点根据会采用不同的方式向所述被代理进程发送所述数据文件。为此,本申请实施例还提供了一种优选的缓存数据共享的缓存代理节点,结合图4,该缓存代理节点端中的文件发送装置的结构如图6所示,包括:查找模块421和发送模块422。具体地,查找模块421用于根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;发送模块422用于若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;以及若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所
述被代理进程发送由服务器接收到的数据文件。
优选地,所述数据访问请求可以包含所述数据文件的标识信息;相应地,查找模块421,具体用于根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。其中,所述标识信息可以是任意可以唯一标识所述数据文件的信息,例如本实施例中所采用的标识信息为所述数据文件的路径信息。在查找数据文件时,缓存代理节点的查找模块421根据数据访问请求中包含的路径信息在缓存中进行匹配查找,若在缓存中匹配到某一数据文件具有相同的路径信息,则可以确定缓存中存在所述数据访问请求对应的数据文件。由此,可以准确快速地确定数据文件在缓存代理节点缓存中的存储状况不同,进而采取不同的方式向所述被代理进程发送所述数据文件。在此,本领域技术人员应当理解,上述路径信息作为数据文件的标识信息的方式为举例,其他现有的或今后可能出现的标识信息的实现方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
当缓存代理节点根据所述数据访问请求在缓存中查找所述数据文件后,可能存在以下几种存储状况:一、缓存中存在所述数据文件,且该数据文件的状态为最新(即在服务器中该数据文件的内容与在缓存中的内容一致);二、缓存中存在所述数据文件,但是该数据文件的状态为非最新(即在服务器中该数据文件的内容已经更改,但是缓存中还未更改);三、缓存中不存在所述数据文件。
对于第一种情况,可以直接根据数据访问请求将缓存中最新内容的数据文件发给计算节点的进程。以图1(a)所示的系统为例,其缓存代理节点120接收到计算节点110中的进程111发送的关于数据文件A的数据访问请求后,会根据该数据访问请求在缓存中查找数据文件A。在该系统中,缓存代理节点120缓存中的文件状态可以采用Update和Dirty表示,其中Update表示数据文件状态为最新,Dirty表示数据文件的状态为非最新。若为前述的第一种情况,缓存中存在数据文件A,且该数据文件A的状态为Update,则缓存代理节点120直接将缓存中的数据文件A发送给进程
111。
而对于第二和第三种情况,缓存代理节点需要向服务器发送关于所述数据文件的数据获取请求,以获取最新内容的数据文件。仍以前述系统为例,若代理缓存节点120的缓存中不存在数据文件A或者缓存中存在数据文件A但该数据文件A的状态为Dirty,则缓存代理节点120会向服务器130发送数据获取请求,服务器130根据数据获取请求向缓存代理节点120发送最新内容的数据文件A,由此缓存代理节点120在接收到该数据文件A后,将其发送给进程111。
进一步地,所述文件发送装置420还包括缓存更新模块(未示出),缓存代理节点在接收到所述服务器根据所述数据获取请求发送的数据文件之后,还会对缓存进行更新,以便在接到其它关于同一数据文件的数据访问请求时,能够直接在缓存中找到最新内容的所述数据文件,而无需再访问服务器,以便解决处理资源,减轻服务器负载。具体地,缓存更新模块于在接收到所述服务器根据所述数据获取请求发送的数据文件之后,若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。接上例,缓存代理节点120在接收到服务器130发送的该数据文件A后,若代理缓存节点120在先前的查找过程中发现缓存中不存在数据文件A,则直接在缓存中保存数据文件A,并将其状态设置为Update;若在先前的查找过程中发现缓存中的数据文件A的状态为Dirty,则根据接收到的数据文件A,对原数据文件A的内容进行更新,同时将其状态置为Update。
由于在分布式场景下,服务器中数据文件的内容随时可能发生变化,因此需要对缓存中的数据文件的状态进行实时的更新,以保证计算节点的进程可以获取到最新内容的数据文件。由此,本申请实施例还提供了一种另一种优选的缓存数据共享的缓存代理节点,该缓存代理节点如图7所示,除图4所示的请求获取装置410和文件发送装置420之外,还包括通知获
取装置430。具体地,通知获取装置430用于获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。在此,本领域技术人员应当理解,所述请求获取装置410和文件发送装置420分别与图4实施例中对应装置的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
在实际应用中,缓存中数据文件状态的更新可以通过订阅的方式实现。由于所有被代理进程通过其对应的缓存代理节点获取最新内容的数据文件,因此缓存代理节点会对所有其被代理节点需要的数据文件进行订阅。具体地,缓存代理节点还可以包括订阅装置(未示出),该订阅装置用于在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。由于缓存代理节点仅在获取数据访问请求时,才发送针对特定数据文件的订阅请求,使得订阅的数据文件均是其被代理进行实际使用到的,可以避免无效的订阅,节约处理资源。
仍以图1(a)所示的系统为例,缓存代理节点120在收到进程111发送的关于该数据文件A的数据访问请求,会向服务器130发送关于数据文件A的订阅请求,以完成对数据文件A的订阅,以确保后续能够收到数据文件A的更改通知。在完成数据文件A的订阅后。相应地,在服务器130中,在接收到订阅请求后,会对每个订阅了数据文件A的缓存代理节点(包括缓存代理节点120)的信息进行保存。当数据文件A的内容变更时,会向订阅了数据文件A的所有缓存代理节点发送更改通知。缓存代理节点120在接收到更改通知后,会将数据文件A的状态设置为Dirty,使得下次处理被代理进程的关于数据文件A的数据访问请求时,向对该数据文件A的内容进行更新。
优选地,所述通知获取装置具体用于通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知。由于在实际应用中,缓存代理节点和服务器之间会通过心跳通信来确认双方是否仍然在
线。由此缓存代理节点和服务器之间可以利用定时收发的心跳信号来传输关于数据文件的更改通知,利用现有的定时通信实现信息的传递,节约通信资源的开支。例如服务器会在收到缓存代理节点的心跳请求(Heartbeat Request)之后,向其发送心跳回复(Heartbeat Response),当服务器需要发送更改通知时,可以将更改通知的信息写入心跳回复中,使得缓存代理节点在收到心跳回复时,即可获得更改通知。
进一步地,所述缓存代理节点的缓存基于非易失性的存储介质,例如PCM,使得缓存代理节点重启后,其缓存内保存的数据文件不会丢失,从而减少缓存预热(warm up)的次数,增强整个系统的鲁棒性。
本实施例以图1(a)所示的系统为例,对缓存数据共享过程中系统的各设备之间的交互流程进行详细说明,具体如图8所示:
步骤S801,计算节点110中的进程111向缓存代理节点120发送数据访问请求。该数据访问请求里包含需要的数据文件的路径信息。
步骤S802,缓存代理节点120接收到数据访问请求后,根据数据文件的路径信息在自身的缓存中查找是否存在这一数据文件;本步骤中,可能会存在三种查找结果,对应三种查找结果,分别执行不同的后续步骤。若缓存中存在数据文件,且数据文件的状态为Update,则执行步骤S806;若缓存中存在数据文件,且数据文件的状态为Dirty,则执行步骤S803;若缓存中不存在数据文件,则执行步骤S803。
步骤S803,缓存代理节点120向服务器130发送数据获取请求。
步骤S804,服务器130根据数据获取请求将对应的数据文件发送给缓存代理节点120。
步骤S805,缓存代理节点120根据接收到的数据文件更新自身的缓存,若数据文件原来已经存在,则更新其内容,并将状态由Dirty置为Update;若数据文件原来不存在,则直接保存至缓存,并将状态设置为Update。
步骤S806,缓存代理节点120将缓存中的数据文件发送给计算节点110的进程111。
另一方面,缓存代理节点在接收到数据访问请求后,同时执行步骤S807,向服务器130发送订阅请求。
步骤S808,服务器130在接收到订阅请求后,完成对对应数据文件的订阅。若服务器130中该数据文件的内容发生变化,则服务器会130会向订阅该数据文件的缓存代理节点120发送更改通知。
步骤S809,缓存代理节点120根据更改通知,数据文件的状态设置为Dirty。
综上所述,通过缓存代理节点来管理一个或者多个计算节点上的进程,这些被代理进程需要使用的数据文件均保存于缓存代理节点的缓存中,因此计算节点上的进程无需维持自己独立的缓存空间,对于缓存代理节点缓存中的某个特定数据文件可以实现对多个进程的共享,节约了缓存与计算资源;同时被代理进程无需再与服务器直接建立连接,对于同一缓存代理节点管理下的多个进程,仅需与服务器建立一个连接即可,由此减少了因为订阅行为带来的大量到服务器的连接,减轻服务器的负载。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其
中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
Claims (20)
- 一种缓存代理节点端进行缓存数据共享的方法,其中,该方法包括:获取被代理进程发送的关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;根据所述数据访问请求向所述被代理进程发送所述数据文件。
- 根据权利要求1所述的方法,其中,根据所述数据访问请求向所述被代理进程发送所述数据文件,包括:根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所述被代理进程发送由服务器接收到的数据文件。
- 根据权利要求2所述的方法,其中,所述数据访问请求包含所述数据文件的标识信息;根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件,包括:根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。
- 根据权利要求2或3所述的方法,其中,在接收到所述服务器根据所述数据获取请求发送的数据文件之后,还包括:若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。
- 根据权利要求2至4中任一项所述的方法,其中,该方法还包括:在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。
- 根据权利要求2至5中任一项所述的方法,其中,该方法还包括:获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
- 根据权利要求6所述的方法,其中,获取服务器发送的关于数据文件的更改通知,包括:通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知。
- 根据权利要求1至7中任一项所述的方法,其中,所述缓存代理节点的缓存基于非易失性的存储介质。
- 一种计算节点端进行缓存数据共享的方法,其中,该方法包括:所述计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
- 根据权利要求9所述的方法,其中,所述数据访问请求包含所述数据文件的标识信息。
- 一种缓存数据共享的缓存代理节点,其中,该缓存代理节点包括:请求获取装置,用于获取被代理进程发送的关于数据文件的数据访问请求,其中,所述被代理进程包括所述缓存代理节点负责管理的计算节点上的多个进程;文件发送装置,用于根据所述数据访问请求向所述被代理进程发送所述数据文件。
- 根据权利要求11所述的缓存代理节点,其中,所述文件发送装置, 包括:查找模块,用于根据所述数据访问请求在所述缓存代理节点的缓存中查找所述数据文件;发送模块,用于若所述缓存代理节点的缓存中存在所述数据文件,且所述数据文件的状态为最新,则向所述被代理进程发送所述数据文件;以及若所述缓存代理节点的缓存中不存在所述数据文件,或所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则向服务器发送关于所述数据文件的数据获取请求,并在接收到所述服务器根据所述数据获取请求发送的数据文件之后,向所述被代理进程发送由服务器接收到的数据文件。
- 根据权利要求12所述的缓存代理节点,其中,所述数据访问请求包含所述数据文件的标识信息;所述查找模块,用于根据所述数据访问请求中所述数据文件的标识信息在所述缓存代理节点的缓存中查找所述数据文件。
- 根据权利要求12或13所述的缓存代理节点,其中,所述文件发送装置,还包括:缓存更新模块,用于在接收到所述服务器根据所述数据获取请求发送的数据文件之后,若所述缓存代理节点的缓存中不存在所述数据文件,则在缓存中保存由服务器接收到的数据文件,并将所述数据文件的状态设置为最新;以及若所述缓存代理节点的缓存中的所述数据文件的状态为非最新,则更新缓存中的所述数据文件,并将所述数据文件的状态设置为最新。
- 根据权利要求12至14中任一项所述的缓存代理节点,其中,该缓存代理节点还包括:订阅装置,用于在获取被代理进程发送的关于数据文件的数据访问请求时,向所述服务器发送关于所述数据文件的订阅请求,以在所述服务器的所述数据文件的内容更改时,从所述服务器获取对应于所述订阅请求的更改通知。
- 根据权利要求12至15中任一项所述的缓存代理节点,其中,该缓存代理节点还包括:通知获取装置,用于获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
- 根据权利要求16所述的缓存代理节点,其中,所述通知获取装置,用于通过缓存代理节点与服务器之间的心跳通信获取服务器发送的关于数据文件的更改通知,根据所述更改通知将所述数据文件的状态设置为非最新。
- 根据权利要求11至17中任一项所述的缓存代理节点,其中,所述缓存代理节点的缓存基于非易失性的存储介质。
- 一种缓存数据共享的计算节点,其中,该计算节点包括:请求发送装置,用于控制所述计算节点的被代理进程向缓存代理节点发送关于数据文件的数据访问请求,其中,所述被代理进程为所述缓存代理节点负责管理的计算节点上的多个进程之一;文件获取装置,用于控制所述被代理进程接收所述缓存代理节点根据所述数据访问请求发送的所述数据文件。
- 根据权利要求19所述的计算节点,其中,所述数据访问请求包含所述数据文件的标识信息。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510476786.9A CN106453444B (zh) | 2015-08-06 | 2015-08-06 | 缓存数据共享的方法及设备 |
| CN201510476786.9 | 2015-08-06 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017020743A1 true WO2017020743A1 (zh) | 2017-02-09 |
Family
ID=57942388
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2016/091522 Ceased WO2017020743A1 (zh) | 2015-08-06 | 2016-07-25 | 缓存数据共享的方法及设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN106453444B (zh) |
| WO (1) | WO2017020743A1 (zh) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110636121A (zh) * | 2019-09-09 | 2019-12-31 | 苏宁云计算有限公司 | 一种数据获取方法及系统 |
| CN110928911A (zh) * | 2019-12-10 | 2020-03-27 | 北大方正集团有限公司 | 审校请求处理系统、方法、装置、计算机可读存储介质 |
| CN110944037A (zh) * | 2019-10-25 | 2020-03-31 | 浙江大华技术股份有限公司 | 客户端缓存更改配置的方法、计算机设备和存储介质 |
| CN111984197A (zh) * | 2020-08-24 | 2020-11-24 | 许昌学院 | 计算机缓存分配方法 |
| CN112783674A (zh) * | 2021-01-29 | 2021-05-11 | 北京金山云网络技术有限公司 | 一种配置管理方法、装置、设备及介质 |
| CN113242285A (zh) * | 2021-04-30 | 2021-08-10 | 北京京东拓先科技有限公司 | 一种热点数据处理方法、装置和系统 |
| CN113973135A (zh) * | 2021-10-19 | 2022-01-25 | 北京沃东天骏信息技术有限公司 | 数据缓存处理方法、装置、缓存网格平台和存储介质 |
| CN114297243A (zh) * | 2021-12-31 | 2022-04-08 | 天津南大通用数据技术股份有限公司 | 一种用于云数据库的远程存储服务本地缓存管理方法 |
| CN116107771A (zh) * | 2022-12-13 | 2023-05-12 | 成都海光集成电路设计有限公司 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110502487B (zh) * | 2019-08-09 | 2022-11-22 | 苏州浪潮智能科技有限公司 | 一种缓存管理方法与装置 |
| CN112417047B (zh) * | 2020-11-23 | 2023-08-08 | 湖南智慧政务区块链科技有限公司 | 基于区块链的数据共享平台 |
| CN115328399A (zh) * | 2022-06-17 | 2022-11-11 | 上海数慧系统技术有限公司 | 一种数据处理方法和装置 |
| CN115964001B (zh) * | 2023-02-01 | 2026-04-21 | 支付宝(杭州)数字服务技术有限公司 | 一种数据缓存方法、系统及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101388863A (zh) * | 2008-09-16 | 2009-03-18 | 中兴通讯股份有限公司 | 一种wap网关提取业务的实现方法和系统 |
| CN101662503A (zh) * | 2009-09-14 | 2010-03-03 | 金蝶软件(中国)有限公司 | 网络中的信息传输方法、代理服务器和服务系统 |
| CN102821148A (zh) * | 2012-08-02 | 2012-12-12 | 深信服网络科技(深圳)有限公司 | Cifs应用优化方法及装置 |
| CN103248684A (zh) * | 2013-04-28 | 2013-08-14 | 北京奇虎科技有限公司 | 一种互联网中资源获取方法和装置 |
| US20130238759A1 (en) * | 2012-03-06 | 2013-09-12 | Cisco Technology, Inc. | Spoofing technique for transparent proxy caching |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8996610B1 (en) * | 2010-03-15 | 2015-03-31 | Salesforce.Com, Inc. | Proxy system, method and computer program product for utilizing an identifier of a request to route the request to a networked device |
| CN104111868B (zh) * | 2013-04-22 | 2017-08-11 | 华为技术有限公司 | 一种推测多线程调度方法及装置 |
-
2015
- 2015-08-06 CN CN201510476786.9A patent/CN106453444B/zh active Active
-
2016
- 2016-07-25 WO PCT/CN2016/091522 patent/WO2017020743A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101388863A (zh) * | 2008-09-16 | 2009-03-18 | 中兴通讯股份有限公司 | 一种wap网关提取业务的实现方法和系统 |
| CN101662503A (zh) * | 2009-09-14 | 2010-03-03 | 金蝶软件(中国)有限公司 | 网络中的信息传输方法、代理服务器和服务系统 |
| US20130238759A1 (en) * | 2012-03-06 | 2013-09-12 | Cisco Technology, Inc. | Spoofing technique for transparent proxy caching |
| CN102821148A (zh) * | 2012-08-02 | 2012-12-12 | 深信服网络科技(深圳)有限公司 | Cifs应用优化方法及装置 |
| CN103248684A (zh) * | 2013-04-28 | 2013-08-14 | 北京奇虎科技有限公司 | 一种互联网中资源获取方法和装置 |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110636121A (zh) * | 2019-09-09 | 2019-12-31 | 苏宁云计算有限公司 | 一种数据获取方法及系统 |
| CN110944037A (zh) * | 2019-10-25 | 2020-03-31 | 浙江大华技术股份有限公司 | 客户端缓存更改配置的方法、计算机设备和存储介质 |
| CN110928911A (zh) * | 2019-12-10 | 2020-03-27 | 北大方正集团有限公司 | 审校请求处理系统、方法、装置、计算机可读存储介质 |
| CN111984197A (zh) * | 2020-08-24 | 2020-11-24 | 许昌学院 | 计算机缓存分配方法 |
| CN111984197B (zh) * | 2020-08-24 | 2023-12-15 | 许昌学院 | 计算机缓存分配方法 |
| CN112783674A (zh) * | 2021-01-29 | 2021-05-11 | 北京金山云网络技术有限公司 | 一种配置管理方法、装置、设备及介质 |
| CN113242285A (zh) * | 2021-04-30 | 2021-08-10 | 北京京东拓先科技有限公司 | 一种热点数据处理方法、装置和系统 |
| CN113973135A (zh) * | 2021-10-19 | 2022-01-25 | 北京沃东天骏信息技术有限公司 | 数据缓存处理方法、装置、缓存网格平台和存储介质 |
| CN114297243A (zh) * | 2021-12-31 | 2022-04-08 | 天津南大通用数据技术股份有限公司 | 一种用于云数据库的远程存储服务本地缓存管理方法 |
| CN116107771A (zh) * | 2022-12-13 | 2023-05-12 | 成都海光集成电路设计有限公司 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
| CN116107771B (zh) * | 2022-12-13 | 2024-09-20 | 成都海光集成电路设计有限公司 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106453444B (zh) | 2020-02-18 |
| CN106453444A (zh) | 2017-02-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106453444B (zh) | 缓存数据共享的方法及设备 | |
| CN106371932B (zh) | 一种基于zookeeper的信息配置方法及装置 | |
| CN102955717B (zh) | 在分布式消息处理系统中的消息管理设备和方法 | |
| US20170272346A1 (en) | Client-side fault tolerance in a publish-subscribe system | |
| CN102981911B (zh) | 一种分布式消息处理系统及其中的设备和方法 | |
| CN105684377A (zh) | 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 | |
| CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
| CN104335524B (zh) | 用于客户端侧页面处理的公共web可访问数据存储 | |
| US11757959B2 (en) | Dynamic data stream processing for Apache Kafka using GraphQL | |
| CN115686875B (zh) | 用于在多个进程之间传输数据的方法、设备和程序产品 | |
| CN112769671B (zh) | 消息处理方法、装置与系统 | |
| CN109933585A (zh) | 数据查询方法和数据查询系统 | |
| CN113596085B (zh) | 数据处理方法系统及装置 | |
| CN104580428B (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
| WO2019109923A1 (zh) | 消息处理方法及系统、存储介质、电子设备 | |
| US8725856B2 (en) | Discovery of network services | |
| CN111681011B (zh) | 数据处理方法、区块链系统、计算机系统和介质 | |
| CN112527519A (zh) | 一种高性能本地缓存方法、系统、设备及介质 | |
| US12117976B2 (en) | Schema based data buffering and processing on a client device | |
| CN114138895B (zh) | 多数据源的数据同步方法、装置、计算机设备和存储介质 | |
| CN115470224A (zh) | 缓存更新方法、装置、设备、系统、存储介质及产品 | |
| CN113422790B (zh) | 数据管理方法和装置、电子设备以及计算机可读存储介质 | |
| US11323537B1 (en) | Generating early hints informational responses at an intermediary server | |
| CN119415219A (zh) | 容器镜像获取方法、装置、设备、介质和程序产品 | |
| CN119094533A (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: 16832231 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: 16832231 Country of ref document: EP Kind code of ref document: A1 |