In-Memory Cache Builder Program Code for Cloud Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud application development platforms face challenges in efficiently managing and caching data across multiple users and organizations, particularly in maintaining data security and performance while handling computationally expensive and infrequently changing data.

Innovation Solution

Implementing a multi-tenant database system with an in-memory cache that uses separate caches for user sessions and organizations, along with a cache API structure and techniques for storing and retrieving data, ensuring data security and visibility scope, and employing sharding and partitioning to improve response times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is cached in memory for faster access, then response time is improved, but memory usage increases

Engineering Contradiction:
Improveresponse timeVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The cache is segmented into multiple partitions, each serving different data types or access patterns. This allows the system to optimize memory allocation for each partition independently, improving overall memory efficiency while maintaining fast access for frequently used data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts cache retention parameters based on data characteristics and access patterns. By changing parameters such as cache duration and eviction policies, the system optimizes the balance between memory usage and response time without requiring fixed memory allocation.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If separate caches are maintained for different tenants, then data security is improved, but cache complexity increases

Engineering Contradiction:
Improvedata securityVSAvoidcache complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple tenant caches are merged into a single shared cache infrastructure with logical separation. This reduces the operational complexity of managing multiple separate cache systems while maintaining data security through namespace isolation and access control mechanisms that logically separate tenant data.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

An intermediary layer is introduced between the cache storage and access points that handles tenant isolation and security policies. This mediator manages the complexity of multi-tenant cache management centrally, allowing individual caches to remain simple while achieving enterprise-grade security and isolation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If computationally expensive data is cached, then processing time is reduced, but cache memory consumption increases

Engineering Contradiction:
Improveprocessing timeVSAvoidcache memory consumption
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

Instead of caching all computationally expensive data, the system selectively caches only the most frequently accessed or critical data items. This partial caching approach reduces memory consumption while still providing significant processing time benefits for the most important operations.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system pre-computes and caches data in advance based on predicted access patterns, rather than waiting for actual requests. This allows computationally expensive operations to be performed during low-demand periods when cache memory is available, improving response times during peak usage without requiring excessive cache capacity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9990400B2Builder program code for in-memory cache
Publication Date: 2018.06.05 SALESFORCE INC
  • US9990400B2 patent drawing
  • US9990400B2 patent drawing
  • US9990400B2 patent drawing

AI summary

Techniques are disclosed relating to an in-memory cache. In some embodiments, in response to determining that data for a requested entry is not present in the cache (e.g., because it has been evicted), a computing system is configured to invoke cached program code associated with the entry. In some embodiments, the computing system is configured to provide data generated by the program code in response to requests that indicate the entry. In some embodiments, the computing system is configured to store the generated data in the cache. In various embodiments, this may avoid cache misses and provide configurability in responding to requests to access the cache.