Regatta Storage (YC F24) : transformer S3 en système de fichiers cloud POSIX aussi simple qu’un stockage local
(news.ycombinator.com)- Regatta Storage est un service qui permet d’utiliser un stockage compatible S3 comme un système de fichiers cloud à synchronisation automatique, afin de traiter de gros volumes de données sans devoir augmenter la capacité des disques locaux
- L’objectif est de permettre aux workloads Spark, PyTorch et pandas d’accéder directement aux jeux de données sur S3, afin de réduire l’attente de téléchargement et la nécessité de préparer de grands disques locaux
- Le point de départ vient de l’expérience acquise sur Amazon EFS et dans l’exploitation du stockage chez Netflix, où malgré la simplicité et la scalabilité d’EFS, des problèmes de performances subsistaient lors du passage du disque local à NFS
- Les clients montent le système de fichiers Regatta en NFSv3, tandis que les instances de cache Regatta se connectent aux buckets S3 des clients pour fournir des performances inférieures à la milliseconde sur les lectures et écritures mises en cache
- Le service est utilisé pour des notebooks Jupyter serverless, une couche de cache distribuée au-dessus de S3 et le remplacement de volumes de démarrage Ceph thin-provisioned ; l’entreprise développe aussi un protocole de fichiers personnalisé
Offrir sur S3 une expérience de système de fichiers proche du local
- Regatta Storage est un système de fichiers cloud facturé à l’usage, synchronisé automatiquement avec un stockage compatible S3
- L’objectif est de permettre à Spark, PyTorch et pandas d’accéder directement à de grands jeux de données sans les télécharger au préalable sur un disque local
- Une vidéo de présentation du service est disponible sur YouTube, et il est possible de l’essayer gratuitement après création d’un compte
- S’il n’existe pas d’essai sans compte, c’est parce que l’équipe a estimé, à la lumière des retours des utilisateurs de Hacker News, qu’il n’était pas approprié de faire partager un même système de fichiers et un même bucket S3 à plusieurs utilisateurs
Un design issu de l’expérience EFS
- Le fondateur a créé Regatta en s’appuyant sur 8 années passées chez Amazon Elastic File System (EFS), ainsi que sur son expérience de conception et d’exploitation de stockage cloud à grande échelle chez Netflix et ailleurs
- EFS avait pour atout, comme S3, la simplicité et la scalabilité sans avoir à estimer à l’avance la capacité nécessaire, mais chez Netflix son adoption n’a pas été aussi large qu’attendu
- Beaucoup d’applications avaient besoin d’un système de fichiers POSIX, et la demande en stockage pouvait être imprécise ou croître brutalement
- Il y avait aussi de nombreux cas où un stockage devant durer plus longtemps que le cycle de vie des instances ou des conteneurs était nécessaire
- Les disques locaux étaient souvent surprovisionnés pour couvrir un usage potentiel, ce qui engendrait des coûts même pour de l’espace de stockage inutilisé
- EFS ne convenait pas à tous les workloads
- Le passage du disque local à NFS entraînait parfois des problèmes de performances
- Les applications qui utilisaient le disque local comme stockage temporaire devaient nettoyer manuellement les données restantes sur le stockage persistant
Fonctionnement de Regatta et modèle de cache
- Regatta a été conçu comme un système de fichiers facturé à l’usage qui s’adapte automatiquement avec l’application
- Il se synchronise automatiquement avec S3 dans un format de fichier natif, ce qui permet de se connecter à des jeux de données existants
- Les données de fichiers récemment écrites peuvent aussi être utilisées directement depuis S3
- Les données peu actives sont évacuées du cache Regatta, de sorte que seul le coût du stockage S3 backend reste à payer
- Aujourd’hui, les clients montent le système de fichiers Regatta via NFSv3 sur la flotte d’instances de cache de Regatta
- Les instances Regatta se connectent en backend aux buckets S3 des clients
- Elles offrent des performances inférieures à la milliseconde sur les lectures et écritures mises en cache
- Grâce à un cache durable, elles fournissent à tous les clients de fichiers connectés une vue du système de fichiers avec cohérence forte
- Des opérations délicates comme le renommage de répertoires sont traitées rapidement et de manière durable, puis propagées de façon asynchrone vers le bucket S3
Premiers cas d’usage et prochaine étape
- Les premiers utilisateurs emploient Regatta pour des serveurs de notebooks Jupyter serverless destinés aux chercheurs en IA, comme couche de cache distribuée à faible latence au-dessus de S3, et comme remplacement de volumes de démarrage Ceph thin-provisioned
- Le protocole de fichiers personnalisé en cours de développement vise des performances proches du local sur les workloads à petits fichiers, ainsi que des performances scale-out de type Lustre pour les traitements de données distribués
1 commentaires
Commentaires Hacker News
La différence entre Rclone et Regatta Storage, c’est que Regatta fournit une forte cohérence lors des opérations de modification du système de fichiers grâce à une couche de cache haute performance. Rclone ne dispose d’aucune couche garantissant la cohérence entre clients parallèles
L’un des produits les plus impressionnants issus de YC, et plusieurs questions se posent sur son fonctionnement
Utilisation de GCP Filestore pour héberger DuckDB, avec une demande d’informations sur le prix et les performances de Regatta
Intérêt comme disque de sauvegarde pour SQLite/DuckDB/parquet, avec souhait de lectures mises en cache sur le stockage NVMe local de l’instance
L’utilisation de NFS comme protocole semble être une bonne idée
Inquiétude quant à la possibilité qu’AWS copie ce produit et le propose à un prix inférieur
Expérience d’une démonstration réussie en 2008 devant le CEO d’Adobe, où une photo prise avec un iPhone apparaissait automatiquement comme fichier sur un Mac
Je me demande s’il est possible de construire un stockage SQL ACID en temps réel avec Lambda + SQLite + Regatta
On ne voit pas clairement comment les conflits de mise à jour de fichiers sont gérés
Il existe des alternatives notables comme s3fs, rclone, goofys, etc.