Split Message Store Consistency via Queue Delay

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvemessage storage and retrieval efficiencyVSAvoidconsistency maintenance complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If message bodies are stored immediately upon receipt, then data availability is improved, but the risk of inconsistency increases if metadata storage fails

Engineering Contradiction:
Improvedata availabilityVSAvoiddata consistency
Core Design Contradiction:
ReliabilityVSManufacturing precision

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Manufacturing precision

If messages are retrieved from primary store only, then data consistency is ensured, but system responsiveness and load handling are reduced

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem responsiveness
Core Design Contradiction:
Manufacturing precisionVSSpeed

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

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10645040B2Techniques for consistent writes in a split message store
Publication Date: 2020.05.05 META PLATFORMS INC
  • US10645040B2 patent drawing
  • US10645040B2 patent drawing
  • US10645040B2 patent drawing

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.