XSM : eXtended Sort/Merge utility
by Henri Henault
 
XSM   Intro   Description   Performances   Télécharger   Documentation   Extranet   Références   


Logiciel de tri/fusion rapide multi-plateformes pour gros fichiers
Dernière version: Basic 4.70 - Pro 6.71 Beta release: Basic n/a - Pro n/a

  Lassé d'attendre un week-end entier pour vos travaux batch ?
  Fatigué de passer des nuits à charger vos bases de données ?
  Non satisfait des possibilités de votre tri actuel ?
  A la recherche d'un tri/fusion rapide aux possibilités puissantes ?
  A la recherche d'un tri compatible IBM MVS DF/SORT sous Unix/Windows ?
  Besoin de trier des fichiers gigantesques sur un PC ?
  Essayez XSM !

  mais pourquoi utiliser un tri ..??

1 - Tri externe pour charger une database
2 - Traitement de données volumineuses

  Les utilisateurs XSM ont dit ...


XSM trie 1 Gigaoctets en 40 secondes,
  10 giga en 8 minutes 30,
  30 giga en 28 minutes 50,
sur une machine à moins de 500 Euros !

Qui dit mieux ?   Voir benchmark


mar. 2009
XSM v6.68 : Amélioration signficative des performances : 1 Gigaoctet trié en 40 secondes sur une machine à 500 Euros ! (PC Intel Core2 2.2Ghz, 2GB RAM, 1 x IDE 7500rpm, Linux FC9 x86_64)
fev. 2009 XSM v6.62 porté sur plateformes Solaris 10 SPARC / x86 OpenSolaris
nov. 2006 XSM v6.56 support du format MicroFocus COBOL variable "MFVariable"
jan. 2006 XSM version 6 Multi-threading (*) : les architectures machines actuelles permettent de tirer partie de la programmation massivement parallèle ou multi-threading.
XSM v5, mono-threading, est plus rapide que ses concurrents. XSM v6 est 3 fois plus rapide que XSM v5.
Sort time in seconds for a 100MB file on p/Series quadri processor using 3 SCSI sortworks

(*) Pour en savoir plus sur le multi-threading
oct. 2005 XSM version 5.26 64-bits (AIX P5, Linux PPC, z/Linux, SUN Solaris)
XSM suit l'évolution des systèmes d'exploitation modernes sur architectures 64-bits.
mar. 2004 XSM pour OS400
Enfin un utilitaire de tri/fusion puissant sur AS/400 !
mai 2004 XSM pour OS390 OpenMVS (Unix Services)
XSM est 2,5 fois plus rapide que le tri standard des Unix Services de z/OS MVS !


Des Fonctionnalités Puissantes
XSM est un tri rapide pouvant traiter des fichiers texte/binaire de très grande taille.

Il possède des fonctionnalités puissantes, telles que :
  • dédoublonage sur clé ou sur enregistrement,
  • (V5.15) copie selective sur différents fichiers,
  • traitement du binaire, Décimal Packé, enregistrements fixes/variables
  • jusqu'à 20 clés de tri mixées : ascendantes/descendantes

Voir les fonctionnalités

 

Performances (relevé complet)
Windows's 4 Gigabytes max filesize limit is over !

XSM vs challengers :
Product Hardware Input file sort time
XSM 5.15 Intel PIII/733Mhz Cache:512K Ram:256MB Disk:2 x UDMA 7200 rpm OS: Win 2000 10 millions x 100 bytes = 1GB 3 min 6 secs
Microsoft sort 6 min 52 secs
C@@@@@ n/a Dell PowerEdge 6300 n/a OS: Win NT SP3 3 millions x 400 bytes = 1.2GB < 4 min
C@@@@@ n/a 6 min
S@@@@@@@ n/a 9 min
O@@@@@@@ n/a 12 min

Nota : les concurrents ne sont pas nommés car nous n'avons pas demandé leur consentement ; les durées de tri des concurrents ne peuvent pas être comparées aux notres car le hardware et les fichiers sont différents ; Ceci vous donne juste une idée du temps que XSM met à trier 10 millions d'enregistrements quand les concurrents trient 3 millions.

 

XSM et le tri standard :
Durée en secondes pour trier 44175 millions x 269 (11,883 GB) enregistrements binaires sur Win2000

XSM version CPU Cache Memory Disk size Disk speed OS version XSM
sort time
standart
sort time
4.42 Intel 2.53Ghz n/a 512 MB 1 x 80 GB n/a Win 2000 2377 sec
= 39.37 min
trop gros pour le tri Microsoft !
(input file : 11,8 GB)
(report Dec.2002, courtesy of Gilles MEZARI - SBPM)

Essayez XSM et vous verrez qu'il est le plus rapide !

 

Mais a quoi sert un tri ... ??
Cet article traite du tri externe :
1 - tri externe pour charger une base de données
2 - traitement massif de données volumineuses

Cet autre article traite du tri et de la fusion.
Utilisateurs IBM DF/SORT, regardez la syntaxe compatible XSM et le portage des JCL de tri sous UNIX/Windows.

1 - Tri externe pour chargement de base de données

Supposons que vous deviez recharger toutes les nuits des fichiers de volumétrie importante dans votre database préférée (Oracle, DB/2, MySQL, SQL-Server, Informix, Sybase, ...)
Dans cet exemple, nous prenons MySQL, qui est assez rapide dans le chargement de données.
Supposons que vous ayez une table fortement indexée, et que vous deviez chaque nuit détruire le contenu de la table et recharger dans cette table le contenu de fichiers,

  • si vos données externes (fichiers) ne sont pas triées, c'est le server de base de données qui fera le travail
  • si vos données externes sont préalablement triées, le serveur de base de données n'aura qu'à les charger.

Regardons le résultat sur ce benchmark :

  • Chargement d'un fichier texte ASCII de 100MB, soit 1023009 enregistrements
  • Enregistrements de longueur variable, séparés par Tabulation, 5 colonnes : 2 entiers, 2 chaines de caractères
  • Moteur MySQL Server 4.0.10-gamma sous Linux 2.4.18 sur Pentium II/550Mhz 512MB RAM
  • La figure montre la durée totale de chargement en secondes :

Chargement DB de données non triées :
  • data loading : 10200 secs
  • total : 10200 secs = 2 heures 50 minutes 28 secs.
Chargement DB de données pré-triées :
  • pre-tri : 315 secs. (avec XSM V5.08)
  • data loading : 213 secs
  • total : 528 secs. = 8 minutes 48 secs.  pratiquement 20 fois plus rapide ! 

Vous comprenez maintenant l'interêt du tri externe.
Le tri préalable accelère le chargement de fichiers volumineux
Ne confiez pas cette tâche à votre moteur SGBD super-intégré "qui sait tout faire!" : ce n'est pas son travail !

> Quelques articles interessants ici and et là sur le sujet ...
   XSM fait le travail, ... 5 fois plus vite que ses concurrents !
> Essayez votre tri standard... juste pour avoir une idée des performances ...
> et si vous en avez assez d'attendre, essayez XSM fast sort

 

2 - Traitement massif de données

Considérons maintenant que vous êtes en charge du DataWarehouse, une quantité massive d'informations, de différentes natures, accedées par différents services de l'entreprise.
Pour le transactionnel, les moteurs de bases de données associés à la puissance de calcul des processeurs actuels, répondront au besoin. Avoir aujourd'hui 2000 utilisateurs connectés simultanément à une database est classique.

Mais lorsqu'il s'agit de traitements quotidiens sur des volumétries importantes (chargement de données, export de données vers des agences/partenaires, production de données spécifiques pour un service), il vous faut des outils orientés batch et puissance de traitement pour accomplir ces opérations critiques.
Comme expliqué ci-dessus, un utilitaire de tri externe va être remarquablement plus rapide qu'un moteur de base de données.
Par exemple, pour fusionner des fichiers, puis les dédoublonner, choisir un SGBDR uniquement pour ce travail est une solution couteuse et peu performante. Dans un tel cas, XSM est la meilleure solution !