Multi-tenant In-memory Cache Segmentation for Web 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 hierarchy and metadata management to ensure data security and visibility scope, allowing for efficient data retrieval and storage across multiple application servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is cached in memory to improve retrieval speed, then access time is reduced, but data security and visibility scope become more difficult to manage across multiple tenants

Engineering Contradiction:
Improvedata retrieval speedVSAvoidcache management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The cache is divided into separate tenant-specific cache regions, with each tenant having isolated cache space. This segmentation allows fast data retrieval within each tenant's cache while maintaining security boundaries that prevent cross-tenant data access, thus resolving the contradiction between speed and management complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A cache manager component is introduced as an intermediary between application servers and the in-memory cache. This manager handles visibility scope enforcement, data placement, and retrieval coordination, simplifying the complexity of managing multi-tenant cache operations while maintaining fast access speeds.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a shared cache is used across multiple application servers to improve data sharing, then collaboration efficiency increases, but data security and tenant isolation are compromised

Engineering Contradiction:
Improvedata sharing efficiencyVSAvoiddata security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The shared cache is segmented into tenant-isolated regions where each tenant's data is stored in dedicated cache spaces. Application servers can efficiently share data within their tenant's region while the segmentation ensures that security boundaries are maintained, preventing unauthorized access to other tenants' data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different cache regions are assigned different security qualities and visibility scopes appropriate to each tenant. This allows optimized data sharing within each tenant's local cache region while maintaining appropriate security isolation, resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #3Local quality

3Productivity

If computationally expensive data is cached to reduce processing load, then system performance improves, but cache memory consumption increases

Engineering Contradiction:
Improvesystem performanceVSAvoidcache memory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Only the essential and frequently accessed portions of computationally expensive data are extracted and cached in the in-memory cache. Less frequently accessed data remains in external storage, allowing the system to improve performance for critical operations while limiting cache memory consumption to only what is necessary.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The cache stores a partial set of computationally expensive data - specifically, only those portions that are frequently accessed across multiple tenants. This partial caching approach provides sufficient performance improvement for common operations while avoiding the excessive memory consumption that would result from caching all possible data.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10013501B2In-memory cache for web application data
Publication Date: 2018.07.03 SALESFORCE INC
  • US10013501B2 patent drawing
  • US10013501B2 patent drawing
  • US10013501B2 patent drawing

AI summary

Techniques are disclosed relating to caching web application data. In some embodiments, a computing system maintains a multi-tenant database and an in-memory cache for the database. In some embodiments, the computing system is configured to store data in an entry in response to a store request and retrieve data in response to a read request. In various embodiments, data cached by one tenant is not visible to other tenants. The cache may be partitioned and each partition may have an assigned capacity. The computing system may be configured to evict cached data based on capacity thresholds, least-recently-used information, time-to-live information, amount of data in an entry, etc. The cache may indicate misses when requested data is not present. Various disclosed techniques may improve web application performance while maintaining privacy between tenants.