Rust external sort
ext-sort
is a rust external sort algorithm implementation.
External sort algorithm implementation. External sorting is a class of sorting algorithms that can handle massive amounts of data. External sorting is required when the data being sorted do not fit into the main memory (RAM) of a computer and instead must be resided in slower external memory, usually a hard disk drive. Sorting is achieved in two passes. During the first pass it sorts chunks of data that each fit in RAM, during the second pass it merges the sorted chunks together. For more information see https://en.wikipedia.org/wiki/External_sorting.
Features
- Data agnostic:
ext-sort
support all data types that that implementserde
serialization/deserialization. - Serialization format agnostic:
ext-sort
useMessagePack
serialization format by default, but it can be easily substituted by your custom one ifMessagePack
serialization/deserialization performance is not sufficient for your task. - Multithreading support:
ext-sort
support multithreading, which means data is sorted in multiple threads utilizing maximum CPU resources and reducing sorting time.
Basic example
use fs;
use ;
use path;
use MB;
use env_logger;
use log;
use MemoryLimitedBufferBuilder;
use ;