Document Crawler Job Segmentation and Priority Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional document crawling systems are inefficient and resource-intensive, causing delays and connection errors in data storage systems due to the need for periodic and computationally intensive indexing of large volumes of data, which limits network bandwidth and processing capacity, and results in job starvation and restricted document crawling rates.
Innovation Solution
A data management application with a scheduling module, priority queue, and execution module that segments larger jobs into smaller steps, schedules them based on priority data, and assigns them to processing modules, allowing for efficient crawling and indexing of documents with minimal impact on data storage systems, preventing job starvation and optimizing resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional crawlers periodically revisit the data storage system to gain updates, then the crawling process can maintain data freshness, but the data storage system is required to use its network bandwidth to respond to the crawler, causing delays and connection errors for other computer systems
Solution Approach 1:
The crawling process is divided into multiple independent worker crawlers that operate in parallel, each handling a subset of documents. This segmentation allows the crawling workload to be distributed across multiple network connections and processing threads, reducing the impact on any single data storage system response while maintaining comprehensive data freshness.
Solution Approach 2:
The system pre-loads documents into memory structures during off-peak times or in advance of requested operations. By caching and indexing documents before they are needed, the system can respond to data requests faster without requiring frequent real-time crawls of the data storage system, thus reducing network bandwidth consumption during critical periods.
2Reliability
If crawlers periodically revisit the data storage system, then updates can be retrieved, but significant processing time is expended and resources are limited for other computer systems
Solution Approach 1:
The crawling workload is divided among multiple worker crawlers that operate simultaneously on different document subsets. This parallel segmentation increases the total number of documents that can be crawled within a given time period while distributing the processing load, thereby improving overall productivity and resource utilization efficiency.
Solution Approach 2:
The system dynamically adjusts crawling frequencies and processing intensities based on real-time conditions. Worker crawlers can adapt their behavior based on data storage system response times, network conditions, and current processing capacity, optimizing resource utilization while ensuring reliable data update retrieval without overwhelming the system.
3Reliability
If the number of documents that can be crawled is limited due to network throughput and processing capacity, then the data storage system can maintain performance, but the document crawling rate is restricted
Solution Approach 1:
By dividing the document corpus into multiple manageable chunks and assigning them to different worker crawlers, the system can parallelize the crawling process. This allows the total document crawling rate to increase proportionally with the number of workers, effectively bypassing single-threaded network throughput limitations while maintaining system performance through controlled parallel access.
Solution Approach 2:
The system transitions from sequential, single-threaded document crawling to multi-threaded, parallel processing. By adding the dimension of concurrency and parallelism, the system can dramatically increase document crawling rates without proportionally increasing the impact on data storage system performance, as multiple requests can be handled simultaneously rather than sequentially.
Data Source
AI summary
Systems and methods are provided for crawling and indexing documents stored in a data storage system. A crawler system processes multiple jobs that each correspond to crawling documents in the data storage system. Each job includes priority data and crawling instructions. The crawler system stores each job in a priority queue in a sequence based on the priority data. The crawler system assigns each job in the priority queue to a next available processing module for processing based on the stored sequence. Before processing each job, the crawler system determines whether to segment the job into smaller steps based on the corresponding crawling instructions. If the job is segmented, one of smaller steps is processed to crawl a group of the documents in the data storage system. The remaining steps are stored in the priority queue to wait for processing.


