Sorting Fingerprint Data with Limited Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional deduplication processes in network storage systems are inefficient and memory-intensive, leading to scalability issues when handling large data sets, as they require significant memory resources for sorting fingerprint files, which is not feasible in enterprise-scale systems.

Innovation Solution

The method involves creating temporary files from an input file, defining groups from these temporary files, and using multiple execution threads to sort the contents concurrently within a limited memory space, allowing for efficient sorting and merging of data without requiring extensive memory resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional sorting techniques are used to sort fingerprint files for deduplication, then the sorting can be performed, but the memory requirements become excessively large and the process becomes extremely time-consuming

Engineering Contradiction:
Improvededuplication speedVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the fingerprint file into multiple smaller chunks that can be processed in parallel. Each chunk is sorted independently using limited memory, and then the sorted chunks are merged. This segmentation allows the system to handle large fingerprint files without requiring excessive memory, as each chunk fits within the available memory constraints while still enabling efficient processing through parallelization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension to the sorting process by performing sorting operations across multiple time steps rather than attempting to sort the entire file in a single memory operation. The process involves multiple passes where fingerprints are sorted and merged iteratively, transforming the problem from a single-memory bottleneck to a multi-step process that utilizes available memory efficiently over time.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Manufacturing precision

If the entire fingerprint file is loaded into memory for sorting, then sorting can be performed efficiently, but the system runs out of available memory and cannot process large data sets

Engineering Contradiction:
Improvesorting efficiencyVSAvoidavailable memory
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent segments the fingerprint file into manageable chunks that individually fit within the available memory. Each chunk is processed independently, allowing efficient sorting within memory constraints. The segmentation strategy ensures that no single operation requires more memory than is available, while still maintaining sorting efficiency through optimized chunk processing and merging.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary sorting of individual chunks before the final merging process. By pre-sorting smaller chunks that fit in memory, the system prepares data in an organized manner that facilitates efficient merging. This preliminary action allows the system to achieve overall sorting efficiency without requiring the entire file to be loaded into memory at once.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If fingerprint files are sorted separately and sequentially, then memory usage is minimized, but the total processing time becomes inordinately long

Engineering Contradiction:
Improvememory usageVSAvoidsorting time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent merges multiple sorting operations into a unified process that handles multiple fingerprint chunks simultaneously. By combining the sorting and merging operations into an integrated workflow that processes multiple chunks in parallel, the system reduces total processing time while maintaining low memory usage. The merging strategy efficiently combines results from multiple chunks without requiring all chunks to be processed sequentially.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent adds a parallel processing dimension to the sorting workflow by executing multiple sorting and merging operations simultaneously across different time steps. This temporal parallelization allows the system to process multiple fingerprint chunks concurrently, dramatically reducing total processing time while each individual operation continues to use minimal memory. The multi-dimensional approach combines spatial segmentation with temporal parallelization for optimal performance.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Productivity

If more memory is allocated for sorting operations, then sorting performance improves, but the space available for servicing user requests decreases

Engineering Contradiction:
Improvesorting performanceVSAvoiduser request handling capacity
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the sorting workload into small, memory-efficient chunks that can be processed with minimal memory allocation. This segmentation allows the system to maintain small memory footprints during sorting operations, preserving memory capacity for user requests. The chunked approach enables sorting performance to improve through parallel processing while each individual chunk remains small enough to not impact user request handling capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic memory management where the sorting process adapts its memory usage based on the available memory constraints. The system dynamically adjusts the size and number of processing chunks to fit within the memory available for both sorting and user requests. This dynamic adaptation ensures that sorting performance is optimized without compromising the system's ability to service user requests, as memory resources are flexibly allocated based on operational needs.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9268832B1Sorting a data set by using a limited amount of memory in a processing system
Publication Date: 2016.02.23 NETAPP INC
  • US9268832B1 patent drawing
  • US9268832B1 patent drawing
  • US9268832B1 patent drawing

AI summary

An efficient and highly scalable method of sorting an input file in a processing system by using only a limited amount (i.e., a portion) of memory in the processing system, where that amount of memory is substantially smaller than the input file, is disclosed. The input file can be, for example, a fingerprint database for use in deduplication, and the processing system can be, for example, a network storage server. The merge phase is broken down into sub-phases, where each sub-phase takes a predetermined number of subsets of a fingerprint file to merge and writes them back as a sorted, merged group. The number of threads used to process these groups can depend on the number of central processing units (CPUs) present in the system and can be dynamically tuned to achieve desired level of performance.