Multi-tenant Cloud Indexing via Distributed Sharding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increased volume and complexity of data in cloud environments pose challenges for efficient indexing and searching of structured data, particularly in multi-tenant systems, where traditional methods struggle to maintain high availability and scalability while minimizing storage space and maximizing search speed.

Innovation Solution

An elastic scalable architecture is implemented, using a distributed database with sharding and Lucene indexing, allowing for dynamic reassignment of tenants to shards, separate management of search and indexing components, and a publish protocol for efficient data updating and indexing, ensuring high availability and scalability without downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional database indexing methods are used in cloud environments, then data storage is simple, but search speed decreases and scalability is limited

Engineering Contradiction:
Improvesearch speedVSAvoidindexing system complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the indexing system into separate components: Lucene indexing service for search optimization, distributed database for data storage, and sharding for data partitioning. This segmentation allows each component to specialize in its function, improving search speed while managing complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary indexing layer between the distributed database and search queries. Lucene serves as an intermediary that pre-processes and structures data for rapid retrieval, separating the storage complexity from the search performance requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If data volume increases in cloud environments, then more data can be stored, but indexing and searching becomes less efficient

Engineering Contradiction:
Improvedata volumeVSAvoidindexing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements sharding to segment data across multiple databases and nodes. By dividing large data volumes into manageable shards, the system maintains indexing efficiency even as total data quantity increases, allowing parallel processing and distributed indexing operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs dynamic sharding and elastic scalability where the indexing system can adapt its structure and resources based on data volume. New shards can be added dynamically, and the Lucene index can be rebuilt incrementally without complete system downtime, maintaining productivity during growth.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If multi-tenant systems are implemented, then resource utilization improves, but data isolation and security complexity increases

Engineering Contradiction:
Improvemulti-tenant capabilityVSAvoiddata management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses sharding to segment data by tenant, creating isolated data partitions while sharing underlying infrastructure. This allows multiple tenants to coexist on the same system with improved resource utilization, while data management complexity is reduced through automated shard routing and isolation policies.

Inventive Principle:
Principle #1Segmentation

4Reliability

If high availability is maintained during updates, then system reliability improves, but storage and processing overhead increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidstorage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent performs preliminary actions by building Lucene indexes incrementally from source data before they are needed for search. Indexing operations are prepared in advance and can be staged, allowing high availability during updates by pre-computing index structures without requiring complete data duplication.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copied index structures from source data in the distributed database. Lucene indexes are copies optimized for search, separate from the original storage data. This copying approach maintains high availability during updates by allowing index rebuilding without affecting source data storage requirements.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10331696B2Indexing heterogeneous searchable data in a multi-tenant cloud
Publication Date: 2019.06.25 ARIBA INC
  • US10331696B2 patent drawing
  • US10331696B2 patent drawing
  • US10331696B2 patent drawing

AI summary

In an example embodiment, a method for indexing data is provided. Primary data and auxiliary data is received from a first tenant in a computer network. A first index is then created for the primary data and the auxiliary data from the first tenant. The first index is stored in a first shard. Then primary data and auxiliary data are received from a second tenant in the computer network. A second index is created for the primary data and the auxiliary data from the second tenant. The second index is then stored in the first shard. The first shard is then stored in a first instance of a distributed database, the distributed database comprising a plurality of instances, each instance operating on a different logical or physical device.