Split Message Store Consistency via Queue Delay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current messaging systems face inefficiencies in message storage and retrieval operations, particularly in maintaining consistency and performance across split message stores, and in handling updates across multiple devices, leading to increased operational costs and reduced responsiveness.
Innovation Solution
The implementation of a client front-end component that receives incoming messages, identifies the sending client service, and stores them in a message queue using a service identifier index value, while delaying the storage of message bodies until metadata storage is successful, and using a message cache to ensure up-to-date message retrieval by applying updates from a message queue when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If message stores are split into metadata store and message body store, then storage efficiency and retrieval performance are improved, but maintaining consistency between the two stores becomes more complex
Solution Approach 1:
The message store is divided into two separate stores: a metadata store for storing message metadata (headers, timestamps, sequence identifiers) and a message body store for storing actual message contents. This segmentation allows each store to be optimized for its specific data type and access patterns, improving overall storage efficiency and retrieval performance while enabling independent management of each store's consistency
Solution Approach 2:
A message queue is introduced as an intermediary component that coordinates between the metadata store and message body store. The message queue receives incoming messages, stores them temporarily, and manages the coordination of writing to both metadata and body stores. This intermediary simplifies consistency maintenance by providing a centralized control point that ensures both stores are updated atomically or rolled back together if needed
2Reliability
If message bodies are stored immediately upon receipt, then data availability is improved, but the risk of inconsistency increases if metadata storage fails
Solution Approach 1:
The system performs preliminary validation and preparation of message data before committing it to both metadata and body stores. The message queue holds incoming messages in a prepared state, validating metadata and organizing body content before initiating the write operation to both stores. This preliminary action ensures that if the operation fails, the system can roll back cleanly without leaving inconsistent data
Solution Approach 2:
The message queue acts as a buffer that cushions the system against write failures. By holding messages temporarily and managing the write coordination, the queue provides a safety mechanism that prevents partial writes. If metadata storage fails, the queue ensures the message body is not written, and vice versa, thereby preventing inconsistent states while maintaining data availability through the buffer
3Manufacturing precision
If messages are retrieved from primary store only, then data consistency is ensured, but system responsiveness and load handling are reduced
Solution Approach 1:
The system merges primary store and secondary store into a unified read path. The message cache component can retrieve messages from either the primary metadata store or the secondary metadata store depending on availability and freshness. This merging allows the system to maintain strong consistency guarantees while improving responsiveness by distributing read loads across multiple storage sources and enabling failover to secondary stores when primary stores are unavailable
Data Source
AI summary
Techniques for consistent writes in a split message store are described. In one embodiment, an apparatus may comprise a client front-end component of a messaging system operative to receive a message, the message comprising message metadata and a message body; and store the message in a message queue; and the message queue operative to initiate a storing of the message metadata in a metadata store; delay a storing of the message body in a message store until a metadata storage success indication is received from the metadata store; receive the metadata storage success indication from the metadata store; and store the message body in the message store in response to receiving the metadata storage success indication from the metadata store. Other embodiments are described and claimed.


