Raincode Sort is the sorting component of the Raincode stack and a DFSORT compatible sort utility.
By nature, this isn't a very visual part. Yet, we achieved to make a video to present this very useful tool.
Raincode Sort is available as both a standalone utility, emulating the behavior of the mainframe program DFSORT and as the implementation behind sorting in Raincode supported legacy languages. That is the SORT verb in Cobol and the PLISRT* builtins in PL/I. This allows us to guarantee that performances, behaviour and supported features will be consistent in all use cases. In a similar fashion, Raincode Sort uses the same I/O routines as the legacy language runtimes, so any dataset written by a program can be read by Raincode Sort without risk of mangling, record truncation, etc.
Conversely, datasets produced by Raincode Sort can too be processed by legacy programs without risks.
Raincode Sort can scale to big datasets, without being limited by available RAM. It is also optimized to minimize and even avoid disk usage when possible, to improve performance. Multi-threading is used to take full advantage of multi-core architectures.
For small datasets (or small parts of big datasets), the underlying .Net array sort, non-concurrent but optimized to the machine architecture, is used. For bigger datasets, a highly efficient concurrent implementation, written in native .Net code is used that takes advantage of available memory and CPU resources, reaching impressive speeds. For even bigger datasets, temporary files are used in a fast n-ary merging strategy. This layered structure allows us to give you the best performances, whatever your scenario.
The ambition of Raincode Sort is to be fully compatible with existing mainframe sorting utilities. This includes not only sorting itself but also input and output transformations, filtering of dataset, joining and merging of datasets, etc.
For more information about the Raincode Stack, please follow this link: https://www.raincode.com/mainframe-rehosting/