NoSQL Email Indexing with Virtual Fields

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing email storage systems face inefficiencies in scalability and search performance due to redundant data storage and the computational cost of joining multiple indexes, especially when dealing with large data items like email bodies and attachments, which are copied multiple times and require extensive server resources for searching.

Innovation Solution

A scalable IMAP4 compliant email system using a NoSQL database and a distributed full-text search engine, where data is normalized by storing each email message in multiple tables, and a single index is created based on a metadata table with virtual fields derived from message content, allowing for efficient querying and caching to avoid redundant data conversion and storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If email data is stored in individual files with separate metadata database, then email storage and retrieval can be performed, but server resources are consumed excessively during searching operations

Engineering Contradiction:
Improveemail storage and retrieval functionalityVSAvoidserver resources during searching
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent pre-converts and indexes email data during the storage phase, transforming email content into searchable formats and creating indexes before search operations are needed. This preliminary processing eliminates the need for resource-intensive real-time conversion during search operations, significantly reducing server resource consumption when searching emails.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If large data items like email bodies and attachments are copied multiple times for different recipients, then each recipient receives their copy, but additional storage space is consumed for each copy

Engineering Contradiction:
Improveemail distribution to multiple recipientsVSAvoidstorage space for email data
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent segments email data into distinct components: a master copy stored once, and separate index records for each recipient that reference the master copy. This segmentation allows the email content to be stored a single time while maintaining the ability to distribute to multiple recipients through references in the index, dramatically reducing storage space requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of creating physical copies of large email data items for each recipient, the patent creates lightweight index records that reference the master copy. These index records contain only the necessary metadata and references, allowing multiple recipients to access the same email content without duplicating the actual large data items.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If indexes are created on multiple tables to enable searching by different fields, then search coverage is improved, but join operations are required which are computationally costly

Engineering Contradiction:
Improvesearch capability by multiple fieldsVSAvoidcomputational cost of join operations
Core Design Contradiction:
Adaptability or versatilityVSPower

Solution Approach 1:

The patent merges the indexing functionality into a single index structure that can handle searches across multiple fields without requiring join operations. The index is designed to store and retrieve email records based on any searchable field directly, eliminating the need for separate table indexes and the computationally expensive join operations that would be required to combine results from multiple indexes.

Inventive Principle:
Principle #5Merging (Combining)

4Speed

If email data is converted and cached for each recipient, then search performance is improved, but redundant data conversion and storage occurs

Engineering Contradiction:
Improvesearch performanceVSAvoidredundant data conversion and storage
Core Design Contradiction:
SpeedVSLoss of substance

Solution Approach 1:

The patent performs data conversion and indexing as a preliminary action when the email is initially stored, rather than converting data for each recipient individually. The converted and indexed data is cached in a reusable format that can be quickly accessed for any recipient, eliminating redundant conversion operations and reducing overall processing time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a universal index structure that serves all recipients simultaneously. The index is designed to be recipient-agnostic, allowing the same indexed data to be used for searching emails for any recipient without requiring separate conversions or caches for each user. This multi-functional index improves search performance while avoiding redundant storage.

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

Data Source

PatentUS10104021B2Electronic mail data modeling for efficient indexing
Publication Date: 2018.10.16 ORACLE INT CORP
  • US10104021B2 patent drawing
  • US10104021B2 patent drawing
  • US10104021B2 patent drawing

AI summary

Techniques are herein described for creating a scalable IMAP4 compliant email system using a NoSQL database and a distributed full text search engine. Data for each email message is stored in multiple tables to avoid storing redundant data unnecessarily. However, a full text search index is created based on a single table as if the index refers to a single table. In embodiments herein described, the single index is created on the fields of a message metadata table with virtual fields added to the table that are derived from the message content. During this process, data is pulled from a message table in “blob” format and broken down into corresponding fields and data items, so the data items may be converted and placed in the proper virtual fields for index creation. Each blob section that is converted is cached, so the same blob section does not need to be converted multiple times. After index creation, the index may be used to search for emails based on metadata and data within the body of the email.