Multi-tenant Redis Cluster via Envoy Proxy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Redis instance provisioning and de-provisioning processes are time-consuming and costly, and PaaS vendors' predefined tiers may not align with the Service Consumer's workload needs, leading to inefficient resource usage and increased costs.

Innovation Solution

Implementing a shared cluster platform with a protocol-aware proxy that allows multiple tenants to share a single large data store instance, using unique key elements and authorization passwords to maintain tenant isolation, and leveraging container orchestration for rapid provisioning and de-provisioning.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a dedicated Redisinstance is provisioned for each tenant, then data isolation and security are ensured, but provisioning time increases and resource usage becomes inefficient

Engineering Contradiction:
Improvedata isolationVSAvoidprovisioning time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Multiple tenants share a single physical Redis instance through a multi-tenant architecture, consolidating what were previously separate dedicated instances into one shared resource. This merging reduces provisioning time while maintaining data isolation through logical separation mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared Redis instance is logically segmented into separate tenant spaces using key prefixing and authorization mechanisms. Each tenant receives a unique key prefix that prefixes all their keys, effectively dividing the shared memory space into isolated tenant domains while using a single physical instance.

Inventive Principle:
Principle #1Segmentation

2Reliability

If a dedicated Redisinstance is provisioned for each tenant, then data isolation is ensured, but resource usage efficiency decreases and costs increase

Engineering Contradiction:
Improvedata isolationVSAvoidresource usage efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

Multiple tenants share a single physical Redis instance, consolidating resource usage across multiple dedicated instances. This merging improves resource utilization efficiency by eliminating idle resources in underutilized dedicated instances while maintaining data isolation through logical separation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared Redis instance serves multiple tenants simultaneously, making it a universal platform that can accommodate various workloads. The instance performs multiple functions for different tenants while maintaining isolation, improving overall resource efficiency compared to dedicated single-tenant instances.

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

3Ease of manufacture

If PaaS vendor predefined tiers are used, then setup is simplified, but workload-specific optimization is lost leading to inefficient resource usage

Engineering Contradiction:
Improvesetup simplicityVSAvoidworkload optimization
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system provides dynamic resource allocation where tenants can request and receive customized resource configurations based on their actual workload needs. The shared instance can be dynamically configured with different memory allocations, retention policies, and access controls tailored to each tenant's requirements, moving away from static predefined tiers.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system allows changing resource parameters such as memory allocation, instance size, and configuration settings based on actual workload demands. Tenants can adjust these parameters dynamically to optimize performance for their specific workloads while sharing the physical infrastructure, rather than being locked into fixed PaaS tiers.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If a shared cluster platform is implemented, then provisioning time is reduced and resource efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveprovisioning speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

An intermediary layer is introduced between the tenant applications and the shared Redis instance. This intermediary manages the complexity of multi-tenancy by handling key prefixing, authorization, and resource allocation automatically, shielding tenants from the underlying shared infrastructure complexity while enabling rapid provisioning.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service mechanisms where tenants can autonomously provision, configure, and manage their own spaces within the shared Redis instance. Automatic key prefix assignment, authorization token generation, and resource allocation occur without manual intervention, reducing provisioning time while the system manages the complexity internally.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP4080377B1Method to implement multi-tenant/shared redis cluster using envoy
Publication Date: 2025.07.23 SAP SE
  • EP4080377B1 patent drawingFigure 1
  • EP4080377B1 patent drawingFigure 2
  • EP4080377B1 patent drawingFigure 3

AI summary

A GUI controller design support device is provided that can support the programming of a controller device that is capable of changing control and/or graphic representation flexibly and in real time. The GUI controller design support device supports the designing of a GUI controller that is displayed on a touch-sensitive panel display of an input device and that receives an operation input for operating a target device. The GUI controller design support device is provided with: a GUI controller editing unit for editing a controller set, the controller set being configured by a plurality of controller parts and defining the GUI controller; and a user program editing unit for editing a user program, the user program defining control of the target device in response to the operation input to the GUI controller.