Distributed In-Memory Database Partitioning for Storage Capacity and Access Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face challenges in efficiently storing and retrieving large amounts of data at high speeds due to limitations in memory size, leading to slow access times when using conventional disk storage.

Innovation Solution

An in-memory database system with a distributed computing architecture that compresses data and uses a combination of software modules such as a partitioner, search manager, analytics agent, and search conductor to manage and query data efficiently, allowing for fault-tolerant and scalable data storage and retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is stored in disk storage to handle large database scales, then storage capacity is sufficient, but data access speed becomes slow

Engineering Contradiction:
Improvestorage capacityVSAvoiddata access speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent segments the database into multiple partitions that are distributed across different nodes in a cluster. Each partition can be stored in memory or on disk independently, allowing parallel access to different data segments. This segmentation enables the system to provide fast in-memory access for frequently queried partitions while maintaining adequate storage capacity across the distributed cluster.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional storage hierarchy (disk vs. memory) to a multi-dimensional distributed architecture. Data is organized across multiple dimensions: spatial distribution across cluster nodes, hierarchical organization into partitions and collections, and selective placement in memory or disk based on access patterns. This multi-dimensional approach allows simultaneous optimization of speed and storage capacity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If all data is stored in memory to achieve fast access, then data access speed is improved, but memory size limitations prevent handling large databases

Engineering Contradiction:
Improvedata access speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies local quality by allowing different partitions or collections within the database to have different storage characteristics. Frequently accessed data can be placed in memory on specific nodes for fast access, while less frequently accessed data can be stored on disk. Each node can independently manage its memory and disk resources based on local access patterns, optimizing the balance between speed and capacity at each location.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes storage parameters based on data characteristics and access patterns. Data can be migrated between memory and disk storage based on usage frequency, and the degree of compression can be adjusted based on data types and access requirements. These parameter changes allow the system to adapt to varying workload demands while maintaining fast access for critical data.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If a distributed cluster architecture is used to handle large data scales, then storage capacity and processing power are improved, but system complexity increases

Engineering Contradiction:
Improvestorage capacityVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements universal node designs where each cluster node can perform multiple functions: storing data partitions, processing queries, performing aggregations, and managing local memory-disk operations. This multi-functionality reduces the need for specialized components and simplifies the overall system architecture compared to having separate storage nodes and compute nodes, while still providing the benefits of distributed scaling.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The distributed cluster implements self-service mechanisms where nodes automatically perform load balancing, data distribution, and failure recovery without centralized coordination for every operation. The system self-manages partition placement, replica distribution, and query routing across the cluster, reducing the operational complexity burden on administrators while maintaining robust distributed capabilities.

Inventive Principle:
Principle #25Self-service

4Quantity of substance

If data compression is applied to increase storage efficiency, then storage capacity is improved, but data retrieval and processing speed may be reduced

Engineering Contradiction:
Improvestorage capacityVSAvoiddata retrieval speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent applies partial compression selectively to specific partitions, collections, or even individual fields based on their characteristics and access patterns. Frequently accessed data may be stored with minimal or no compression to maximize retrieval speed, while less frequently accessed data can be heavily compressed to optimize storage utilization. This partial application of compression allows the system to gain storage efficiency without significantly impacting the performance of critical data access operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9430547B2Implementation of clustered in-memory database
Publication Date: 2016.08.30 FINCH COMPUTING LLC
  • US9430547B2 patent drawing
  • US9430547B2 patent drawing
  • US9430547B2 patent drawing

AI summary

An in-memory database system and method for administrating a distributed in-memory database, comprising one or more nodes having modules configured to store and distribute database partitions of collections partitioned by a partitioner associated with a search conductor. Database collections are partitioned according to a schema. Partitions, collections, and records, are updated and removed when requested by a system interface, according to the schema. Supervisors determine a node status based on a heartbeat signal received from each node. Users can send queries through a system interface to search managers. Search managers apply a field processing technique, forward the search query to search conductors, and return a set of result records to the analytics agents. Analytics agents perform analytics processing on a candidate results records from a search manager. The search conductors comprising partitioners associated with a collection, search and score the records in a partition, then return a set of candidate result records after receiving a search query from a search manager.