Distributed Search System RAM Caching for Disk Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current information retrieval and knowledge-management systems face performance issues due to large data sets, leading to inefficient search engine performance, memory faults, and inconsistent data processing, which result in costly disk searches and resource wastage.
Innovation Solution
A distributed search system is implemented, where multiple search engines process search requests based on the data sets involved, utilizing network attached storage and message queuing to ensure data caching in RAM, thereby reducing disk searches and enhancing system resilience through dynamic resource allocation and failover mechanisms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data sets are stored in disk rather than RAM, then system memory capacity is improved, but search performance deteriorates due to costly disk searches
Solution Approach 1:
The system segments the search service into multiple independent search engine instances that can be distributed across different servers. Each search engine instance maintains its own data set in RAM, allowing parallel processing of search requests without requiring all data to be accessible from a single memory space. This segmentation enables the system to handle larger data volumes while maintaining fast RAM-based access for each individual search engine.
2Device complexity
If search service is bound to a single CPU, then system complexity is reduced, but reliability deteriorates when memory faults occur
Solution Approach 1:
The search service is divided into multiple independent search engine instances that can run on different CPUs or servers. When a memory fault occurs on one CPU, only the affected search engine instance is impacted, while other instances continue to operate. This segmentation provides natural fault isolation and enables selective failover without bringing down the entire search service.
Solution Approach 2:
The system changes the operational parameters of search engines by allowing them to be dynamically allocated to different CPUs and servers based on availability. When a memory fault is detected, the system can migrate search engine instances to different physical hosts, changing the hardware parameters on which the search service operates. This enables continuous operation despite individual hardware failures.
3Quantity of substance
If data sets are large enough to require disk storage, then storage capacity is improved, but search speed deteriorates due to disk-level processing
Solution Approach 1:
Large data sets are divided into smaller segments that can be loaded into RAM by individual search engine instances. Each search engine processes a portion of the total data set, maintaining fast RAM-based access for its assigned segment. This segmentation allows the system to handle large overall data volumes while each individual search engine operates at high speed using only in-memory data.
4Quantity of substance
If search engines share server space, then resource utilization is improved, but data consistency deteriorates due to lack of dedicated caching
Solution Approach 1:
When multiple search engines share server space, each search engine instance maintains its own dedicated cache and data segment in RAM. This segmentation ensures that each search engine has consistent, isolated access to its assigned data portion without interference from other search engines sharing the same physical server. The dedicated caching per instance maintains data processing consistency even in a shared environment.
Data Source
AI summary
Systems, methods, and software for providing a distributed search function for online delivery platforms used in law firms and other enterprises are described. For example, one aspect of the systems, methods and software provides a plurality of data sets. The data sets may comprise indices into other sets of data. At least one search engine is associated with each data set. A system receiving a search request determines which search engines are used to process the search request based on the data sets involved in the search request. The search request is then forwarded to the identified search engines.


