CAS et son cache disque

Si vous utilisez SAS Viya , vous pouvez avoir besoin de connaître les bases du fonctionnement de  CAS pour utiliser pleinement le potentiel de SAS Viya. Vous trouverez de nombreux articles sur CAS sur mon blog (fonctionnement des sessions, chargement de table…). Cet article détail montre le fonctionnement , behind-the-scene, du CAS DISK CACHE

Le CAS DISK CACHE, c'est quoi ?

L'un des principes de conception de Cloud Analytic ServicesMoteur d'exécution in-memory de SAS Viya. Il assure le traitement massivement parallèle (MPP) et distribué des données pour optimiser les performances analytiques et le passage à l'échelle. (CAS) est de pouvoir gérer des problèmes complexes, de travailler avec des tables dépassant la capacité de mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
de l'environnement, tout en restant réactif, rapide et de gérer les défaillances de nœud.  Le cache CAS offre des fonctionnalités très utiles pour vous aider dans les situations où les ressources de performances principales (notamment la RAM) ont été épuisées. Laisser un processus aboutir, bien que lentement, est souvent préférable à un échec total.  CAS par rapport à LASR est la possibilité d'utiliser un cache comme magasin de sauvegarde pour les données en mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
. Le cache CAS offre une flexibilité pour les opérations en mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
, garantissant que CAS: Aussi, même si les données sont sur disque, il est possible  que CAS n’ait jamais besoin de les relire. Ainsi, si votre système dispose de beaucoup de RAM, les blocs SASHDATSASHDAT est le format de fichier propriétaire de SAS Viya optimisé pour Cloud Analytic Services (CAS). Il permet un chargement ultra-rapide des données en mémoire via un accès direct (memory-mapping). peuvent toujours être disponibles pour CAS en mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
jusqu'à ce que les tables elles-mêmes soient explicitement supprimées. Le paramètre de la variable d’environnement CAS_DISK_CACHEEspace de stockage local temporaire utilisé par le serveur CAS pour gérer les données dépassant la RAM disponible ou pour mapper des fichiers, garantissant ainsi la performance des traitements. détermine les répertoires dans lesquels les fichiers temporaires sont créés. Bien-sûr, vous devez vous assurer que ces répertoires se trouvent sur des périphériques de taille suffisante. En effet, si la tentative de mappage vers un fichier temporaire échoue, CAS le considère comme une condition de manque de ressources.

Quel espace est nécessaire pour le CAS DISK CACHE ?

Toute opération qui charge ou crée des données dans CAS utilise l'emplacement CAS_DISK_CACHEEspace de stockage local temporaire utilisé par le serveur CAS pour gérer les données dépassant la RAM disponible ou pour mapper des fichiers, garantissant ainsi la performance des traitements., donc :

 Des blocs ?

Un dernier point que je voulais aborder avant de passer aux exemples. Les données d'une table CAS sont constituées de blocs.Afin d'éviter la perte de données, les blocs sont répliqués entre les worker dans le cas où un worker ne serait pas disponible. cas-disk-cache-et-blocks Si vous ajoutez une table à CAS vous créez des blocs. Les blocs actif sont les blocs utilisés  par CAS (en RAM) : cas-disk-cache-blocs-actifs Les blocs inactifs sont ceux sur le disque et ceux  qu'il nous faudra peut-être activer en cas de défaillance d'un worker :   cas-disk-cache-blocs-inactifs  

Exemples

Pour mes exemples, je vais utiliser une table (sas7bdat) de 17 go que je vais charger dans une CASLIBEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. : cas-sas7bdat-de-17go-charger-dans-cas-caslib Chargement de la table dans une caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. :
1
2
3
4
proc casutil;
load casdata="mygaanalytics.sas7bdat" incaslib="datanh"
outcaslib="datanh" casout="mygaanalyticst" replace ;
run;
Journal SAS StudioInterface de développement Web intégrée à SAS Viya, SAS Studio permet d'écrire du code, de construire des flux visuels et d'analyser des données via un simple navigateur, sans installation locale. : log-load-table-cas   Lorsque vous le chargez cette table, elle occupera environ 35 Go d’espace dans CAS_DISK_CACHEEspace de stockage local temporaire utilisé par le serveur CAS pour gérer les données dépassant la RAM disponible ou pour mapper des fichiers, garantissant ainsi la performance des traitements. (La réplication par défaut est des 1) : evolution-giga-cache-disk cas-disk-cache-blocs-consommation-giga Si l'on affiche  les informations sur la table, via une proc cas table.tabledetails, il est possible d'avoir le détail des blocs mappés et non mappés ( utilisé pour le failover) : cas-tableinfo-tabledetails info-table-cas Et avec un paramètre de réplication à 0 ?
1
2
3
4
proc casutil;
load casdata="mygaanalytics.sas7bdat" incaslib="datanh"
outcaslib="datanh" casout="mygaanalytics" replication=0;
run;
Journal SAS StudioInterface de développement Web intégrée à SAS Viya, SAS Studio permet d'écrire du code, de construire des flux visuels et d'analyser des données via un simple navigateur, sans installation locale. : log-load-table-cas-replication-0 On constate l'absence de la ligne "octets déplacés" (qui était à 17,24 go avec une réplication à 1) et que le temps d’exécution est divisé par deux ( 246 secondes contre 503 secondes) Sans réplication, les blocs ne sont pas doublés dans le cache ( pas de failover) : cas-cache-disk-replication-0 cas-disk-cache-blocs-consommation-giga-replication-0   Les détails de la table montre qu'il n'y a aucun blocs non mappés : info-table-cas-replication-0          

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.