Self-sufficient memory distributed cache

By using a self-sufficient distributed memory caching system and a message sending queue module to update the host server's memory cache, the problems of network bandwidth exhaustion and non-scalability caused by centralized caching are solved, achieving low-latency, scalable and consistent memory caching.

CN121548811APending Publication Date: 2026-02-17VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380100481.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-19
Publication Date
2026-02-17

AI Technical Summary

Technical Problem

In existing distributed server clusters, centralized caching architectures lead to network bandwidth exhaustion, lack of scalability, and data consistency issues, while external caching tools increase the risk of system failure.

Method used

A self-sufficient distributed memory caching system is adopted, which receives refresh event messages through the message delivery queue module in the message delivery computer and notifies multiple host servers to update the memory cache, thus avoiding dependence on external tools or services.

Benefits of technology

It implements a consistent memory cache across server clusters, providing low-latency response and scalability, preventing replay attacks, and ensuring data consistency and system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121548811A_ABST
    Figure CN121548811A_ABST
Patent Text Reader

Abstract

A method for maintaining a consistent memory distributed cache is disclosed herein. A messaging queue module in a messaging computer receives a refresh event message corresponding to a data event. The refresh event message indicates that a persistent database has been updated with second data corresponding to the data event. The messaging queue module in the messaging computer sends notification messages to a plurality of host servers, each of which includes a memory cache that stores first data. And in response to receiving the notification message, the plurality of host servers check second data from the persistent database, and update the memory cache by using the second data.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] With the recent surge in data, organizations are expending considerable effort to store and manage it. End-user applications, increased network bandwidth, and technological advancements in communication devices are some of the factors contributing to this data explosion. To support time-critical applications, software systems need to be designed and implemented with high performance, low latency processing capabilities, and robust fault tolerance mechanisms to handle errors and failures. Furthermore, such systems require thorough testing and validation to ensure their reliability and security in high-stress, time-sensitive environments.

[0002] To achieve low-latency processing requirements, many applications resort to memory caching. Memory caching is a high-speed data storage layer residing in the random access memory (RAM) of a computer or server. It is used to temporarily store frequently accessed data and reduce the response time of applications that require fast data access. By storing data in memory, data can be accessed and retrieved much faster than storing data on disk or in a database.

[0003] Maintaining cache consistency across a distributed server cluster is a critical task. A distributed server cluster comprises one or more servers that can be deployed in different geographical regions. To ensure that each server's in-memory cache is up-to-date, a centralized cache database is used. Each server in the distributed server cluster periodically communicates with the centralized cache (e.g., via a communication network) to update its in-memory cache. This architecture has several drawbacks. For example, a centralized cache architecture is not scalable. Deploying additional servers in a distributed server cluster requires establishing additional communication channels between the newly deployed servers and the centralized cache so that the servers can update their respective in-memory caches.

[0004] In this scenario, network bandwidth may be exhausted, and / or the probability of bottlenecks in the communication network increases. This leads to an unscalable system architecture. Furthermore, because a single caching mechanism (i.e., centralized caching) is used, there is a risk of providing a stable and highly available caching mechanism. For example, failure of the cache database and / or communication links in the communication network may cause one or more servers in a distributed server cluster to store stale data. Additionally, the use of external caching components (e.g., third-party tools / services for caching) can make the entire system more susceptible to errors, i.e., increase the risk of system failure. Therefore, there is a need to achieve the goal of creating a consistent cache across multiple servers without utilizing any additional infrastructure.

[0005] The embodiments of the present invention address these and other problems individually and collectively. Summary of the Invention

[0006] The embodiments implement a framework for implementing a self-sufficient memory-distributed caching system without utilizing any external tools or services.

[0007] One embodiment includes a method comprising: receiving, by a message delivery queue module in a messaging computer, a refresh event message corresponding to a data event, the refresh event message indicating that a persistent database has been updated with second data corresponding to the data event; and sending, by the message delivery queue module in the messaging computer, a notification message to a plurality of host servers, each of the plurality of host servers including a memory cache storing first data, wherein, in response to receiving the notification message, the plurality of host servers retrieve second data from the persistent database and update the memory cache with the second data.

[0008] Another embodiment includes a messaging computer comprising: a processor; and a computer-readable medium including code executable by the processor to implement a method comprising: receiving, by a messaging queue module in the messaging computer, a refresh event message corresponding to a data event, the refresh event message indicating that a persistent database has been updated with second data corresponding to the data event; and sending, by the messaging queue module in the messaging computer, a notification message to a plurality of host servers, each of the plurality of host servers including a memory cache storing first data, wherein, in response to receiving the notification message, the plurality of host servers retrieve second data from the persistent database and update the memory cache with the second data.

[0009] Another embodiment includes a method comprising: receiving a notification message from a message delivery queue module in a messaging computer by a host server, the notification message indicating that a persistent database is being updated with second data corresponding to a data event; retrieving the second data from the persistent database by the host server in response to receiving the notification message; and updating a memory cache of the host server storing the first data using the second data retrieved from the persistent database.

[0010] More detailed information about embodiments of the present invention can be found in the detailed description and accompanying drawings. Attached Figure Description

[0011] Figure 1 A block diagram of a distributed caching system according to one embodiment is shown.

[0012] Figure 2 A flowchart illustrating the interaction between different components of a distributed caching system is depicted according to some embodiments.

[0013] Figure 3A block diagram of a host server according to one embodiment is shown.

[0014] Figure 4 A block diagram of a message transmission computer according to one embodiment is shown. Detailed Implementation

[0015] Before discussing the embodiments of the present invention, some terms may be described in further detail.

[0016] "Client device" can be a "mobile device," which may include any electronic device that a user can transport and operate, and which may also provide the ability to communicate remotely with a network. Examples of remote communication capabilities include the use of mobile phone (wireless) networks, wireless data networks (e.g., 3G, 4G, or similar networks), Wi-Fi, Wi-Max, or any other communication medium that provides access to networks such as the Internet or a private network. Examples of mobile devices include mobile phones (e.g., cellular phones), PDAs, tablet computers, netbooks, laptop computers, personal music players, handheld dedicated readers, wearable devices (e.g., watches), vehicles (e.g., automobiles), and so on. Mobile devices may include any suitable hardware and software for performing such functions, and may also include multiple devices or components ( For example When one device is connected to another device via a chain and Remote access network - i.e. When another device is used as a repeater, the two devices combined can be regarded as a single mobile device.

[0017] A "server computer" is typically a powerful computer or cluster of computers. For example, a server computer can be a mainframe, a small cluster of computers, or a group of servers that work like cells. In one example, a server computer could be a database server coupled to a web server.

[0018] "Persistent data storage" refers to the ability to store data in a non-volatile manner, meaning that data remains intact even during power outages or system restarts; in other words, persistent data storage is non-volatile data storage. Persistent data storage can be implemented through various hardware and software solutions, such as hard disk drives (HDDs), solid-state drives (SSDs), optical discs, magnetic tapes, and even cloud storage services. These storage media allow for long-term data retention, retrieval, and modification. Data is stored on persistent storage devices using file systems, which organize and manage data in a hierarchical structure, enabling efficient access and management. File systems provide methods for creating, reading, updating, and deleting files or directories. One of the key characteristics of persistent data storage is durability. It ensures that data remains intact even in the event of hardware failure, power outages, or system crashes.

[0019] A memory cache is a component or system that stores frequently accessed or computationally expensive data in the main memory (RAM) of a computer or server. It is designed to provide fast access to data and improve overall application performance by reducing the need to fetch data from slower storage systems, such as disk drives or databases. The basic idea behind a memory cache is to keep copies of data that are likely to be accessed again in the near future in a faster and more accessible location. By storing data in RAM, which has significantly lower latency and higher throughput compared to disk-based storage, caching can provide faster response times and improve the overall efficiency of applications. When a requested segment of data is not found in the cache, the caching system retrieves the data from the underlying data source (e.g., a database or remote server) and stores it in the cache for future requests. Subsequent requests for the same data can be served directly from the cache, eliminating the need to access the slower storage system again.

[0020] Event data is information related to an event or action. For example, if the event is a login action to an application, event data may include information such as (but not limited to) the login time, the IP address used for login, etc. This type of information can be used for various purposes, such as tracking user activity and analytics. As another example, in the context of transaction processing (e.g., financial transactions), event data may correspond to information including the user's primary account, information identifying the user (e.g., the user's address, the user's geographic location), etc.

[0021] A data generator is a device that can detect events and generate data corresponding to those events. Data generators can generate data in various formats, such as structured data (e.g., CSV files, SQL databases), unstructured data (e.g., text documents, images), and even real-time streaming data.

[0022] A message queue module is a communication mechanism used to facilitate message exchange between different components / entities within a distributed system. It provides a reliable and scalable way to decouple senders and receivers, allowing them to operate independently and at different speeds (as needed). In a message queue, messages are sent by a producer (sender) and received by a consumer (receiver). In some implementations, messages are stored in a queue or buffer until they are processed by the consumer. This enables asynchronous communication, where the producer can continue to generate messages without waiting for immediate processing by the consumer. According to various aspects of this disclosure, a message queue can be implemented as a message queue module included in a message delivery computer and configured to process, for example, incoming messages from a data generator and send notification messages (e.g., providing an indication that one or more datasets in a persistent database have been modified) to one or more host servers.

[0023] A load balancer is a networking device or software component that distributes incoming network traffic across multiple servers or resources in a balanced manner. It acts as an intermediary between clients or users and a set of backend servers, ensuring efficient resource utilization, high availability, and optimal performance. The primary purpose of a load balancer is to distribute incoming workloads evenly across multiple servers to prevent any single server from becoming overloaded or overwhelmed. By distributing traffic, load balancers can enhance system performance, responsiveness, and scalability. It allows organizations to handle increased traffic and requests without relying on a single server, thereby improving overall reliability and availability.

[0024] "Acquiring party" can include an entity that processes payments on behalf of a resource provider (such as a merchant). Acquiring party can include financial institutions, such as banks, that maintain accounts for merchants. Acquiring party can operate an "acquiring party computer," which is a computer system that can be used to send payment information (including, for example, authorization request messages and authorization response messages) over a network such as the Internet.

[0025] A "payment credential" may include any suitable information associated with an account (e.g., the payment account and / or payment device associated with the account). This information may be directly related to the account or derived from account-related information. Examples of account information may include PAN (primary account number or "account number"), username, expiry date, CVV (card verification value), dCVV (dynamic card verification value), CVV2 (card verification value 2), CVC3 card verification value, etc. CVV2 is generally understood to be a static verification value associated with a payment device. CVV2 values ​​are typically visible to the user (e.g., a consumer), while CVV and dCVV values ​​are typically embedded in memory or authorization request messages and are not easily known to the user (although they are known to the issuer and payment processor). A payment credential may be any information that identifies a payment account or is associated with a payment account. A payment credential can be provided to make payments from a payment account. A payment credential may also include a username, expiry date, gift card number or code, and any other suitable information.

[0026] "Memory" can be any suitable one or more devices capable of storing electronic data. Suitable memory can include non-transient computer-readable media whose storage can be executed by a processor to implement desired methods. Examples of memory can include one or more memory chips, disk drives, etc. Such memory can be operated using any suitable electrical, optical, and / or magnetic modes of operation.

[0027] "Processor" can refer to any suitable one or more data computing devices. A processor can include one or more microprocessors working together to perform the desired function. A processor can include a CPU, which includes at least one high-speed data processor sufficient to execute program components for performing user and / or system-generated requests. A CPU can be a microprocessor, such as AMD's Athlon, Duron, and / or Opteron; IBM and / or Motorola's PowerPC; IBM and Sony's Cell processors; Intel's Celeron, Itanium, Pentium, Xeon, and / or XScale; and / or similar processors.

[0028] "User" may include an individual. In some embodiments, a user may be associated with one or more individual accounts and / or user devices.

[0029] Figure 1 A block diagram of a distributed caching system according to one embodiment is depicted. The distributed caching system 100 includes a client device 102, an API gateway or load balancer 104, multiple host servers 106A-106K, a persistent database 108, a messaging computer 110, and one or more data generators (also referred to herein as data sources) 112A-112M. Each of the host servers 106A-106K includes a memory cache. The host servers 106A-106K can be deployed in different geographical locations.

[0030] The messaging computer 110 includes a message queue module 110A configured to receive messages from data generators 112A-112M. For example, message queue module 110A receives refresh event messages corresponding to data events detected / generated by the data generators (e.g., data generator 112A). The refresh event message indicates to the messaging computer 110 that the persistent database 108 (described below) has been updated with information corresponding to the data event. Furthermore, message queue module 110A is programmed to send notification messages to multiple host servers 106A-106K in response to the messaging computer 110 receiving the refresh event message. According to some embodiments, the purpose of the notification messages sent by message queue module 110A to host servers 106A-106K is to notify each of the host servers 106A-106K that its corresponding memory cache may be storing "stale" data about the data event, and that each of the host servers 106A-106K should obtain "fresh" data (about the data event) from the persistent database 108. It should be understood that the operations of the message computer receiving refresh event messages and sending notification messages occur in near real-time.

[0031] A data generator (e.g., data generator 112A) is configured to generate / detect data events and send metadata (related to the data event) to be stored in persistent database 108. In the case that the data event is a transaction event (e.g., a financial transaction), the metadata associated with the data event may correspond to a dataset such as a user's primary account (PAN), user identification information, etc. According to some embodiments, the data event indicates a modification performed by the data generator relative to the dataset. Examples of modifications to the dataset may include, for example, creating a new dataset, updating an existing dataset, etc. The modified dataset is stored in persistent database 108. Once the dataset is successfully stored in persistent database 108, the data generator generates a refresh event message, which is sent to messaging computer 110. It should be understood that the refresh event message corresponds to the data event and indicates that persistent database 108 is updated, for example, by storing the modified dataset.

[0032] In one implementation, each of the host servers 106A-106K registers with the message queue module 110A of the messaging computer 110 to receive updates for a specific type of event. Upon receiving a refresh event message, the message queue module 110A triggers a callback operation to all participating host servers. In some implementations, the callback operation corresponds to a notification message informing the host servers 106A-106K that the dataset currently stored in their memory cache (corresponding to a certain event) (e.g., first data associated with the event) has been updated and their corresponding cache is stale. Each of the one or more host servers 106A-106K, in response to receiving the notification message from the message queue model, updates its corresponding memory cache by obtaining the updated dataset (e.g., second data corresponding to a data event) from the persistent database 108, thus placing its memory cache in a "healthy" or "fresh" state.

[0033] In the distributed caching system 100, client device 102 can obtain information from the memory cache of any of the host servers 106A-106K. In some embodiments, requests initiated by client device 102 are sent to an API gateway or load balancer 104. The load balancer then forwards the request to one of the host servers 106A-106K. Since all host servers are healthy (i.e., the memory cache is healthy), any of the host servers 106A-106K can process the request and provide the relevant information to client device 102. According to some embodiments, the distributed caching system 100 prevents replay attacks on the persistent database 108. A replay attack is defined herein as multiple requests issued by a specific host server and directed to the persistent database 108 for obtaining updated information about a specific data event. In one embodiment, the persistent database 108 maintains a mapping, such as a tuple mapping, which includes a list of data events and host servers that have retrieved fresh copies of data associated with the data events. In this scenario, the message delivery computer 110 can be programmed to resend notification messages corresponding to data events only to those host servers that have not yet received a fresh copy of the data associated with the data event. It should be understood that due to various factors, such as a failure of the communication channel between the host server and the persistent database, a particular host server may not have received a fresh copy of the data (as associated with the data event) on the first attempt.

[0034] Figure 2 A flowchart 200 is depicted according to some embodiments, illustrating the interaction between different components of a distributed caching system 100. Figure 2 The processing described herein can be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of a corresponding system, hardware, or combination thereof. The software can be stored on a non-transient storage medium (e.g., on a memory device). Figure 2 The methods presented and described below are intended to be illustrative rather than restrictive. Although Figure 2 Various processing steps that occur in a specific sequence or order are described, but this is not intended to be limiting. In some alternative embodiments, the steps may be performed in some different order, or some steps may be performed in parallel.

[0035] Figure 2The process described begins at step S250, where a data generator (e.g., data generator 112A) generates / detects a specific data event and stores information associated with the data event in a persistent database 108. An example of a data event generated by the data generator could correspond to adding a new customer to the trading system, and the data corresponding to the data event could correspond to the PAN or BIN of the newly added customer to the trading system.

[0036] In step S252, when the data generator stores information related to the data event in the persistent database 108, the data generator 112A generates a refresh event message corresponding to the data event. The refresh event message is sent from the data generator to the messaging computer 110. The refresh event message may be stored in a message queue module included in the messaging computer 110 and indicates that the persistent database 108 is being updated with data corresponding to the data event (e.g., fresh data).

[0037] In step S254, the messaging computer 110 triggers a callback operation to all participating host servers 106A-106K (e.g., host servers that have registered with the messaging computer to receive updates for a specific event type) upon receiving a refresh event message corresponding to a data event. In some embodiments, the callback operation corresponds to a notification message informing the host servers 106A-106K that the dataset currently stored in their memory cache (corresponding to the data event) (e.g., the first data associated with the event) has been updated and their corresponding cache is stale.

[0038] In response to receiving the notification message, host servers 106A-106K obtain an updated version of the dataset from persistent database 108 in step S256, for example, second data corresponding to a data event. In step S258, client device 102 may issue a request to obtain a specific dataset. In some embodiments, the request issued by the client device is directed to a load balancer or API gateway 104. In step S260, load balancer 104 may direct the request to any of host servers 106A-106K. The request may be directed by load balancer 104 to a specific host server based on various criteria, such as the current load being processed by the host server (i.e., the number of requests), the geographical location of the host server, etc. In step S262, the selected host server (e.g., host server 106A) retrieves the requested information from its memory cache and sends the retrieved information to the client device.

[0039] Figure 3 Host server 300 is described. According to some embodiments, Figure 3 The host server 300 corresponds to Figure 1 The distributed caching system 100 described herein includes any one of the host servers 106A-106K. Host server 300 includes a processor 302, a computer-readable medium 304, a memory cache 306, and a network interface 308. Host server 300 is also communicatively coupled to persistent database 108.

[0040] Computer-readable medium 304 may include a communication module 304A and an information processing module 304B. Communication module 304A may include code that causes processor 302 to generate messages, forward messages, reformat messages, and / or otherwise communicate with other entities. Specifically, communication module 304A may include various communication components, such as short-range antennas, long-range antennas, etc., to communicate with other devices (e.g., Figure 1 (Communication with persistent database 108 and / or client device 102).

[0041] According to some embodiments, the communication module 304A may include one or more RF transceivers and / or connectors, which can be used by the host server 300 to communicate with other devices and / or connect to external networks. The short-range antenna of the communication module 304A may be configured to communicate with external entities via short-range communication media (e.g., using Bluetooth, Wi-Fi, infrared, NFC, etc.). The long-range antenna of the communication module 304A may be configured to communicate over the air with remote base stations and remote cellular or data networks.

[0042] An example of a communication channel formed by host server 300 could be with message transmission computer 400 (see later). Figure 4 A communication channel is formed (described). In this communication channel, the message-transmitting computer can be programmed to send refresh event messages corresponding to data events to the host server 300. As another example, a communication channel can be set up between the host server and the persistent database 108. For example, the host server 300 can set up this channel to retrieve a fresh copy of the dataset stored in the persistent database. It should be understood that the fresh copy of the dataset may correspond to information newly added to the transaction system, such as a customer's PAN or BIN. As another example, the host server can also communicate with... Figure 1 The client device 102 communicates (e.g., via an API gateway or load balancer). In this communication channel, the client device can be configured to send a user identifier associated with the user of the client device. As described herein, the user identifier may be included in a request (issued by the client device 102) corresponding to the client device requesting some information (e.g., information stored in a memory cache of the host server 300).

[0043] The host server's memory cache 306 is configured to store frequently accessed information in the host server 300's main memory (RAM). The memory cache 306 provides fast access to data and improves the overall performance of the application by reducing the need to retrieve data from slower storage systems, such as persistent database 108.

[0044] The host server's network interface 308 can be a network interface card (NIC) or a network adapter; that is, a hardware component that enables the host server 300 to connect and communicate with other devices via a network. The network interface 308 acts as the interface between the host server and the network, allowing data to be sent and received. The network interface 308 provides the necessary ports or connectors to establish a network connection. Depending on the host server's requirements and the network infrastructure, the network interface 308 supports different types of network protocols, such as Ethernet, Wi-Fi, or Fibre Channel. The network interface can operate at speeds ranging from 10 Mbps (megabits per second) to several gigabits per second (Gbps) to accommodate different network bandwidths. In some implementations, when the host server is connected to the network, the network interface 308 facilitates the sending and receiving of data packets. It converts data from the host server into a format suitable for network transmission and vice versa. The network interface can also be configured to handle tasks such as encapsulating data into frames, error checking, and controlling data flow.

[0045] Information processing module 304B can be programmed to receive different types of information, for example, from Figure 1 The client device 102 receives a request. The information processing module 304B can be configured to process this request and retrieve the specific information requested by the client device from the memory cache 306. Additionally, the information processing module can be configured to process information received from the persistent database 108 and store the processed information in the host server's memory cache 306. In some embodiments, the information processing module 304B can be configured to generate a data packet including information such as the identifier of the host server 300. The information processing module 304B can trigger the communication module 304A to send the generated data packet to the messaging computer 400 when generating the data packet. This generated data packet can be used by the host server 300 for the purpose of registering the host server 300 to receive notifications associated with a certain type of data event.

[0046] Figure 4 A block diagram of a message sending computer 400 according to one embodiment is shown. The message sending computer 400 may correspond to... Figure 1The distributed caching system 100 depicted includes a message passing computer 110. The message passing computer 400 may include a processor 402 and a network interface 408, the processor being coupled to a computer-readable medium 404. The message passing computer 400 is also communicatively coupled to a persistent database 108. The persistent database 108 may contain mapping information between datasets and host servers. Specifically, for a particular dataset, the persistent database 108 may store a list of host server identifiers corresponding to host servers that have retrieved (and stored) copies of the dataset in its corresponding memory cache. The computer-readable medium 404 may include several software modules, including an information processing module 404A, a message queue module 404B, and a communication module 404C.

[0047] The communication module 404C may include code that causes the processor 402 to generate messages, forward messages, reformat messages, and / or otherwise communicate with other entities. Specifically, the communication module 404C may include various communication components, such as short-range antennas, long-range antennas, etc., to communicate with other devices (e.g., Figure 1 The persistent database 108 and / or the multiple host servers 106A-106K communicate.

[0048] According to some embodiments, communication module 404C may include one or more RF transceivers and / or connectors, which can be used by messaging computer 400 to communicate with other devices and / or connect to external networks. The short-range antenna of communication module 404C may be configured to communicate with external entities via short-range communication media (e.g., using Bluetooth, Wi-Fi, infrared, NFC, etc.). The long-range antenna of communication module 304A may be configured to communicate over the air with remote base stations and remote cellular or data networks. An example of a communication channel formed by messaging computer 400 may be... Figure 3 A communication channel is formed between the host server 300 and the message transmission computer. In this communication channel, the message transmission computer can be programmed to send notification messages corresponding to data events to the host server 300. As another example, the message transmission computer can communicate with one or more data generators (e.g., Figure 1A communication channel is established between the data generator 112A and the message-transmitting computer. The message-transmitting computer can utilize this communication channel to receive refresh event messages corresponding to data events from the data generator. It should be noted that the refresh event message indicates that the persistent database 108 has been updated with data corresponding to the data event. In some embodiments, the message-transmitting computer may also establish a communication channel with the persistent database 108 to retrieve a list of identifiers of the plurality of host servers that have updated their respective memory caches relative to a specific dataset. Upon obtaining such a list of host servers, in one embodiment, the message-transmitting computer may be configured to resend notification messages only to those host servers that have not yet updated their memory caches with the updated data. In this way, Figure 1 The distributed caching system is 100% protected against replay attacks, i.e., one or more host servers sending multiple requests to the persistent database to update their respective memory caches.

[0049] The network interface 408 of the messaging computer can be a network interface card (NIC) or a network adapter; that is, a hardware component that enables the messaging computer to connect and communicate with other devices via a network. The network interface 408 acts as the interface between the messaging computer and the network, allowing data to be sent and received. The network interface 408 provides the necessary ports or connectors to establish a network connection. Depending on the requirements of the host server and the network infrastructure, the network interface 408 supports different types of network protocols, such as Ethernet, Wi-Fi, or Fibre Channel. The network interface can operate at speeds ranging from 10 Mbps (megabits per second) to several gigabits per second (Gbps) to accommodate different network bandwidths. In some implementations, when the messaging computer is connected to the network, the network interface 408 facilitates the sending and receiving of data packets. It converts data from the messaging computer into a format suitable for network transmission and vice versa. The network interface can also be configured to handle tasks such as encapsulating data into frames, error checking, and controlling data flow.

[0050] The information processing module 404A can be programmed to receive different types of information, such as requests from different host servers related to registering a host server to be notified of certain types of data events. The information processing module 404A can be configured to process such requests and maintain a list of registered host servers and associated data event types in its memory.

[0051] Additionally, the information processing module 404A can be configured to process information received from the data generator. For example, the information processing module 404A can receive a refresh event message corresponding to a data event (from the data generator), wherein the refresh event message indicates that the persistent database has been updated regarding the data event. Furthermore, the information processing module 404A can be configured to generate a message (e.g., a notification message) in response to receiving the refresh event message. The notification message can be sent by the communication module 404C of the message-transmitting computer to multiple host servers (e.g., host server 106A), wherein the notification message acts as an indication that the information associated with the data event has been updated and stored in the persistent database 108. As previously described, each host server communicates with the persistent database to retrieve the updated information.

[0052] The message queue module 404B of the message delivery computer 400 is a buffer or on a storage medium that stores messages (e.g., refresh event messages received from a data generator). In some embodiments, in response to a first fetch message being stored in the message queue module 404B, the message delivery computer is configured to send a notification message to the plurality of host servers to indicate that a persistent database has been updated with data corresponding to a data event. In some embodiments, the operations of receiving refresh event messages and sending notification messages occur in near real-time.

[0053] The embodiments of the present invention offer several advantages. They implement a mechanism for ensuring consistent memory caching across a distributed cluster of server computers. This distributed architecture is self-sufficient and does not rely on any dedicated hardware or software to store memory data, thus providing low-latency response. Furthermore, the proposed architecture for managing the memory caching of host servers is inherently scalable; that is, to expand the number of host servers, it is only necessary to register the host servers with the messaging computer (e.g., with a message queuing module) to receive updates on different types of events. Figure 1 A distributed caching system can be used in a transaction processing system to handle different transactions. For example, client device 102 can correspond to an acquiring computer, and host servers 106A-106K can correspond to application servers that are geographically distributed and maintain customer information (e.g., customer PAN information, customer credential information, other customer identification data, etc.). In this setup, the application server can process requests received from the acquiring computer in a latency-sensitive manner and provide the acquiring computer with the latest customer information for processing different transactions.

[0054] Any software component or function described in this application may be implemented as software code executed by a processor using any suitable computer language such as Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python, employing techniques such as conventional or object-oriented methods. The software code may be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission. Suitable media include random access memory (RAM), read-only memory (ROM), magnetic media such as hard disk drives or floppy disks, or optical media such as optical discs (CDs) or digital versatile discs (DVDs), flash memory, and the like. The computer-readable medium may be any combination of such storage or transmission means.

[0055] Such programs can also be encoded and transmitted using carrier signals adapted for transmission over wired, optical, and / or wireless networks conforming to various protocols, including the Internet. Therefore, computer-readable media according to embodiments of the invention can be created using data signals encoded with such programs. Computer-readable media encoded with program code can be packaged with compatible devices or provided separately from other devices (e.g., downloaded via the Internet). Any such computer-readable medium can reside on or within a single computer product (e.g., a hard disk drive, CD, or an entire computer system) and can exist on or within different computer products within a system or network. A computer system may include a monitor, printer, or other suitable display for providing a user with any of the results mentioned herein.

[0056] The above description is illustrative and not restrictive. Many variations of the invention will become apparent to those skilled in the art upon reading this disclosure. Therefore, the scope of the invention should not be determined by reference to the above description, but rather by reference to the pending claims and their full scope or equivalents.

[0057] Without departing from the scope of the invention, one or more features of any embodiment may be combined with one or more features of any other embodiment.

[0058] As used herein, unless explicitly indicated otherwise, the terms “a,” “an,” or “the” are intended to mean “at least one.” Claims (as amended under Article 19 of the Treaty) 1. A method comprising: The message delivery queue module in the message delivery computer receives a refresh event message corresponding to a data event, the refresh event message indicating that the persistent database has been updated with second data corresponding to the data event; and In response to the successful storage of the second data in the persistent database, the message delivery queue module in the message delivery computer sends a notification message to multiple host servers, each of which includes a memory cache storing the first data. In response to receiving the notification message, the multiple host servers retrieve the second data from the persistent database and update the memory cache with the second data. 2. The method of claim 1, wherein a first host server, included in the plurality of host servers, sends information included in the memory cache of the first host server to the client device in response to receiving a request from the client device. 3. The method of claim 2, wherein the client device communicates with the plurality of host servers via an API gateway or a load balancer. 4. The method of claim 1, wherein each of the plurality of host servers registers with the message delivery queue module to receive notifications associated with a certain type of data event. 5. The method of claim 1, wherein the receiving and the sending occur in near real-time. 6. The method according to claim 1, wherein the persistent database is a non-volatile data storage device. 7. The method of claim 1, wherein the data event corresponds to a transaction event, and the second data includes a dataset of one or more master accounts. 8. A message transmission computer, comprising: Processor; and A computer-readable medium comprising code executable by the processor to perform a method comprising: The message delivery queue module in the message delivery computer receives a refresh event message corresponding to a data event, the refresh event message indicating that the persistent database has been updated with second data corresponding to the data event; and In response to the successful storage of the second data in the persistent database, the message delivery queue module in the message delivery computer sends a notification message to multiple host servers, each of which includes a memory cache storing the first data. In response to receiving the notification message, the multiple host servers retrieve the second data from the persistent database and update the memory cache with the second data. 9. The messaging computer of claim 8, wherein a first host server, included in the plurality of host servers, sends information included in the memory cache of the first host server to the client device in response to receiving a request from the client device. 10. The messaging computer of claim 9, wherein the client device communicates with the plurality of host servers via an API gateway or a load balancer. 11. The messaging computer of claim 8, wherein each of the plurality of host servers registers with the messaging queue module to receive notifications associated with a certain type of data event. 12. The message transmission computer of claim 8, wherein the receiving and sending occur in near real-time. 13. The message transmission computer of claim 8, wherein the persistent database is a non-volatile data storage device. 14. A method comprising: The host server receives a notification message from the message delivery queue module in the message delivery computer, the notification message indicating that the persistent database has been updated with second data corresponding to the data event; In response to receiving the notification message, the host server retrieves the second data from the persistent database; and The host server updates its memory cache storing the first data with the second data retrieved from the persistent database. 15. The method of claim 14, further comprising: In response to receiving a request from the client device, the host server sends the information included in the host server's memory cache to the client device. 16. The method of claim 15, wherein the client device communicates with the host server via an API gateway or load balancer. 17. The method of claim 14, further comprising: The host server registers with the message delivery queue module included in the message delivery computer, wherein the registration enables the host server to receive notifications associated with a certain type of data event. 18. The method of claim 14, wherein in response to the messaging computer receiving a refresh event message corresponding to the data event from the data generator, the host server receives the notification message from the messaging queue module in the messaging computer. 19. The method of claim 14, further comprising: The host server sends a request to the persistent database, the request including the host server's identifier and requesting the second data corresponding to the data event, wherein the persistent database is configured to store the host server's identifier relative to the data event in response to the host server completing the update. 20. The method of claim 14, wherein the persistent database is a non-volatile data storage device.

Claims

1. A method comprising: The message delivery queue module in the message delivery computer receives a refresh event message corresponding to a data event, the refresh event message indicating that the persistent database has been updated with second data corresponding to the data event; and The message delivery queue module in the message delivery computer sends a notification message to multiple host servers, each of which includes a memory cache storing first data. In response to receiving the notification message, the multiple host servers retrieve second data from the persistent database and update the memory cache with the second data.

2. The method of claim 1, wherein a first host server, included in the plurality of host servers, sends information included in the memory cache of the first host server to the client device in response to receiving a request from the client device.

3. The method of claim 2, wherein the client device communicates with the plurality of host servers via an API gateway or a load balancer.

4. The method of claim 1, wherein each of the plurality of host servers registers with the message delivery queue module to receive notifications associated with a certain type of data event.

5. The method of claim 1, wherein the receiving and the sending occur in near real-time.

6. The method according to claim 1, wherein the persistent database is a non-volatile data storage device.

7. The method of claim 1, wherein the data event corresponds to a transaction event, and the second data includes a dataset of one or more master accounts.

8. A message transmission computer, comprising: processor; as well as A computer-readable medium comprising code executable by the processor to perform a method comprising: The message delivery queue module in the message delivery computer receives a refresh event message corresponding to a data event, the refresh event message indicating that the persistent database has been updated with second data corresponding to the data event; and The message delivery queue module in the message delivery computer sends a notification message to multiple host servers, each of which includes a memory cache storing first data. In response to receiving the notification message, the multiple host servers retrieve second data from the persistent database and update the memory cache with the second data.

9. The messaging computer of claim 8, wherein a first host server, included in the plurality of host servers, sends information included in the memory cache of the first host server to the client device in response to receiving a request from the client device.

10. The messaging computer of claim 9, wherein the client device communicates with the plurality of host servers via an API gateway or a load balancer.

11. The messaging computer of claim 8, wherein each of the plurality of host servers registers with the messaging queue module to receive notifications associated with a certain type of data event.

12. The message transmission computer of claim 8, wherein the receiving and sending occur in near real-time.

13. The message transmission computer of claim 8, wherein the persistent database is a non-volatile data storage device.

14. A method comprising: The host server receives a notification message from the message delivery queue module in the message delivery computer, the notification message indicating that the persistent database has been updated with second data corresponding to the data event; In response to receiving the notification message, the host server retrieves the second data from the persistent database; as well as The host server updates its memory cache storing the first data with the second data retrieved from the persistent database.

15. The method of claim 14, further comprising: In response to receiving a request from the client device, the host server sends the information included in the host server's memory cache to the client device.

16. The method of claim 15, wherein the client device communicates with the host server via an API gateway or load balancer.

17. The method of claim 14, further comprising: The host server registers with the message delivery queue module included in the message delivery computer, wherein the registration enables the host server to receive notifications associated with a certain type of data event.

18. The method of claim 14, wherein in response to the messaging computer receiving a refresh event message corresponding to the data event from the data generator, the host server receives the notification message from the messaging queue module in the messaging computer.

19. The method of claim 14, further comprising: The host server sends a request to the persistent database, the request including the host server's identifier and requesting the second data corresponding to the data event, wherein the persistent database is configured to store the host server's identifier relative to the data event in response to the host server completing the update.

20. The method of claim 14, wherein the persistent database is a non-volatile data storage device.