Hybrid Replicated Shared Memory Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In replicated shared memory systems, fragmentation occurs due to uncoordinated allocation and storage of replicated application memory locations, leading to inefficiencies such as delayed memory initialization, reduced memory capacity, and decreased efficiency in serializing and deserializing memory updates, as replicated memory locations are stored in a non-contiguous and fragmented manner.
Innovation Solution
The system partitions each computer's local memory into two regions: one region with replicated memory content across other computers and another region without replication, optimizing memory allocation to minimize fragmentation by ensuring that only necessary memory locations are replicated, allowing for efficient operation without identical memory across all machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If replicated memory locations are stored in a non-contiguous manner, then memory allocation flexibility is improved, but memory fragmentation increases leading to delayed initialization and reduced efficiency
Solution Approach 1:
The patent segments memory locations into two distinct types: replicated memory locations that are stored contiguously across all computers, and non-replicated memory locations that can be allocated independently. This segmentation allows the system to maintain both contiguity for replicated data (avoiding fragmentation) and flexibility for non-replicated data (allowing selective allocation), thereby resolving the contradiction between initialization speed and allocation flexibility.
Solution Approach 2:
The patent applies different storage qualities to different memory locations: replicated memory locations use contiguous storage across all computers to ensure fast initialization and avoid fragmentation, while non-replicated memory locations use independent allocation to provide flexibility. This local differentiation of storage qualities allows each memory region to be optimized for its specific access patterns, resolving the contradiction between speed and flexibility.
2Reliability
If all memory locations are replicated across all computers, then data consistency is improved, but memory capacity and system efficiency decrease
Solution Approach 1:
The patent extracts non-replicated memory locations from the full memory space, allowing certain memory regions to remain local to individual computers rather than being replicated across all computers. This extraction enables the system to maintain data consistency for replicated memory locations while preserving memory capacity and efficiency for non-replicated locations, thus resolving the contradiction between consistency and capacity.
Solution Approach 2:
Instead of replicating all memory locations (excessive action), the patent implements partial replication where only specific memory locations are replicated across computers. This partial action maintains data consistency for critical shared data while avoiding the memory capacity overhead and efficiency penalties of universal replication, resolving the contradiction between reliability and quantity.
3Speed
If memory locations are allocated independently without coordination, then allocation speed is improved, but fragmentation and inefficiency increase
Solution Approach 1:
The patent segments memory allocation into two coordinated processes: one for replicated memory locations and one for non-replicated memory locations. Replicated memory locations are allocated contiguously across all computers to ensure efficient utilization and avoid fragmentation, while non-replicated locations can be allocated independently for speed. This segmentation resolves the contradiction by applying coordination where it benefits efficiency and independence where it benefits speed.
Data Source
AI summary
A multiple computer system with hybrid replicated shared memory is disclosed. The local memory (10, 20, . . . 80) of each of the multiple computers M1, M2, . . . Mn is partitioned into a first part (11, 21, . . . 81) and a second part (12, 22, . . . 82). Each of the first parts are identical and each of the second parts are independent. The total memory available to the system is the first memory part plus n times the second memory part, n being the total number of application running multiple computers.


