13 dépôts
Systems that provide a unified memory space across multiple nodes for efficient data sharing and object storage.
Distinguishing note: Focuses on memory-level object sharing across distributed workers rather than persistent database storage.
Explore 13 awesome GitHub repositories matching data & databases · Distributed Shared Memory. Refine with filters or upvote what's useful.
Ray is a distributed computing framework designed to scale Python and Java applications across clusters by abstracting task scheduling and resource management. It functions as a resource-aware execution engine that manages task dependencies, placement, and fault tolerance across networked compute nodes. At its core, the system provides a stateful actor model, allowing developers to define classes that run in dedicated processes to maintain and mutate internal state across remote method calls. The framework distinguishes itself through a robust cross-language interoperability layer, enabling f
Ray provides a shared memory space to store and retrieve objects, enabling efficient data sharing and asynchronous processing across workers.
Skynet is a distributed game server framework designed for building scalable online game backends. It utilizes distributed actor-based clusters and real-time network communication to manage high-concurrency session coordination across multiple nodes. The framework includes a cluster management orchestrator for coordinating services via cluster-wide messaging and dynamic configuration updates. It features a multi-protocol network gateway supporting TCP, UDP, and WebSockets, alongside a data encoding layer using BSON and Sproto serialization for efficient information transfer between distribute
Maintains consistent datasets across distributed services using a common data layer for real-time state sharing.
Dask est un framework de calcul parallèle et un planificateur de tâches distribué conçu pour mettre à l'échelle les flux de travail de science des données Python, des machines uniques aux grands clusters. Il fonctionne comme un gestionnaire de ressources de cluster qui orchestre la logique computationnelle en représentant les tâches et leurs dépendances sous forme de graphes acycliques dirigés. Cette architecture permet au système d'automatiser la distribution des charges de travail sur le matériel disponible tout en gérant des exigences d'exécution complexes. Le projet se distingue par un moteur d'évaluation paresseuse qui diffère les opérations sur les données jusqu'à ce qu'elles soient explicitement demandées, permettant une optimisation globale du graphe et une allocation efficace des ressources. Il intègre le déversement de données conscient de la mémoire pour éviter les plantages du système lors du traitement de jeux de données dépassant la mémoire disponible, et il utilise la fusion de graphes de tâches pour combiner des séquences d'opérations en étapes d'exécution uniques, minimisant la surcharge de planification et la communication entre nœuds. La plateforme fournit une surface de capacités complète pour l'analyse de données à grande échelle, incluant le support pour l'apprentissage automatique distribué, l'intégration du calcul haute performance et le traitement de données parallèle. Elle offre des outils étendus pour la gestion du cycle de vie des clusters, le profilage des performances et la surveillance en temps réel de l'exécution des tâches. Les utilisateurs peuvent déployer ces environnements sur diverses infrastructures, incluant le matériel local, les fournisseurs cloud, les systèmes conteneurisés et les clusters de calcul haute performance.
Coordinates access to data objects across distributed workers to ensure efficient resource utilization and prevent unnecessary data duplication.
This project is a Go language library that provides a programmatic interface for interacting with the Kubernetes API server. It serves as a client for managing cluster resources, offering both typed interfaces for compile-time safety and dynamic interfaces for unstructured data and custom resource management. The library includes a controller framework designed for building event-driven automation. This framework utilizes informers to maintain local resource caches and rate-limited work queues to decouple event detection from state reconciliation. High availability is supported through a lead
Distributes resource change events to multiple handlers via a centralized cache to reduce API server load.
Berty is a peer-to-peer messaging application and framework designed for decentralized private messaging. It utilizes a distributed identity protocol and a decentralized database to enable end-to-end encrypted communication without relying on central servers, phone numbers, or email addresses. The project distinguishes itself through an offline messaging framework that uses Bluetooth Low Energy and multicast DNS for local device discovery. This allows peers to establish direct connections and exchange messages without internet or cellular data, using QR codes for secure contact exchange. The
Implements a distributed synchronization mechanism for creating shared virtual environments for messages and metadata.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Executes data operations against a shared memory space to maintain consistent state across a distributed system.
Mooncake est une plateforme de service de modèles de langage (LLM) désagrégée et un magasin clé-valeur distribué conçu pour une infrastructure d'inférence haute performance. Il fonctionne comme un orchestrateur de mémoire GPU et un système de gestion de cache KV qui mutualise et transfère les caches clé-valeur à travers les clusters pour accélérer l'inférence. Le système se distingue en séparant les phases de pré-remplissage (prefill) et de décodage de l'inférence dans des clusters matériels distincts pour optimiser l'utilisation des ressources. Il utilise un cache distribué RDMA haute performance avec des transferts zéro-copie pour déplacer les données entre les nœuds de calcul, contournant le CPU pour réduire la latence et la surcharge. La plateforme couvre de vastes domaines de capacités, notamment la mutualisation de mémoire distribuée, le routage de mémoire d'accélérateur via CXL et le déchargement de stockage multi-niveaux vers des SSD. Il gère l'état du cluster via des services de coordination de métadonnées et implémente la gouvernance des ressources via une protection d'objets basée sur des baux et une éviction de cache basée sur des seuils. Le logiciel est packagé pour un déploiement conteneurisé avec prise en charge du réseau hôte et du mappage de périphériques matériels.
Aggregates memory across multiple servers into a unified shared pool for scalable remote memory access.
SparkInternals est une référence technique et un guide d'architecture détaillant la conception interne et l'implémentation du moteur de calcul distribué Apache Spark. Il sert d'étude sur l'analyse des moteurs de big data, en se concentrant sur la gestion de l'exécution en cluster et l'interaction entre les nœuds drivers, les exécuteurs et les workers. Le projet fournit une décomposition détaillée de la manière dont les plans logiques sont convertis en étapes d'exécution physiques. Il analyse spécifiquement la mécanique des opérations de shuffle, la gestion de la mémoire et la coordination de la planification des jobs distribués. La documentation couvre un large éventail de capacités de calcul distribué, incluant la planification de l'exécution des requêtes, la gestion des dépendances de données et les stratégies de mise en cache en mémoire. Elle examine également la distribution des tâches, l'exécution parallèle et les processus utilisés pour la reprise sur erreur et la persistance des données.
Details the use of caching and checkpointing to manage memory and ensure fault tolerance across distributed nodes.
Ce projet est un serveur d'applications PHP piloté par les événements et un pont de serveur HTTP qui permet aux applications Laravel de s'exécuter sur un moteur persistant. En gardant l'application en mémoire, il élimine la surcharge de démarrage généralement requise pour chaque requête individuelle afin d'augmenter la vitesse des requêtes. Le serveur inclut un bac à sable (sandbox) d'état d'application qui isole le conteneur d'application entre les requêtes pour éviter les fuites de données et la pollution d'état. Il dispose également d'un magasin de données en mémoire partagée pour récupérer des informations à travers plusieurs processus de travail et fournit une implémentation de serveur WebSocket pour une communication persistante et bidirectionnelle. Le système prend en charge les opérations de base de données non bloquantes et les pilotes d'E/S asynchrones pour gérer plusieurs requêtes simultanées. Pour le développement, il inclut un flux de travail de rechargement à chaud (hot-reload) qui redémarre automatiquement le serveur lors de la détection de changements dans le code source.
Provides high-speed information sharing between separate worker processes using memory-mapped tables.
Octane est un accélérateur de serveur d'applications PHP et un gestionnaire de processus qui charge une application en mémoire pour éliminer la surcharge de démarrage associée à chaque requête individuelle. Il fonctionne comme un pont d'exécution pour les moteurs à haute concurrence tels que Swoole et RoadRunner, utilisant des processus de travail persistants pour gérer les requêtes HTTP entrantes. Le projet inclut un gestionnaire d'état d'application en mémoire qui utilise des tables atomiques pour partager des données entre les travailleurs et un exécuteur de tâches concurrent qui exécute plusieurs opérations en parallèle pour réduire la latence totale des requêtes. Il gère également les cycles de vie des travailleurs en recyclant les processus après un nombre défini de requêtes pour prévenir les fuites de mémoire. Les capacités supplémentaires couvrent la planification périodique de tâches de fond et le rechargement automatique en développement, qui surveille le code source pour détecter les modifications et déclencher des redémarrages de serveur.
Uses atomic in-memory tables to share and synchronize data rapidly across multiple worker processes.
This project is a high-performance PHP application server designed to keep applications resident in memory, eliminating the bootstrap overhead typically associated with each request. It functions as a multi-protocol network server capable of handling HTTP, WebSocket, TCP, and UDP traffic simultaneously within a single instance. The system is distinguished by an event-driven worker pool and a high-precision task scheduler that executes recurring background jobs at millisecond intervals. It utilizes a shared memory state store for high-speed data access across worker processes and incorporates
Provides high-speed shared memory tables for exchanging data and maintaining state across worker processes.
Ce projet est un framework pour développer et orchestrer des agents logiciels autonomes au sein d'applications basées sur la JVM. Il fournit une boîte à outils pour intégrer l'intelligence artificielle directement dans la logique métier, permettant aux agents d'effectuer des tâches complexes via une planification dynamique orientée vers des objectifs plutôt que des machines à états rigides. En tirant parti des annotations déclaratives, le framework permet aux développeurs de définir les capacités des agents et de les intégrer dans des modèles de domaine orientés objet existants. Le framework se distingue par une couche d'abstraction neutre vis-à-vis des fournisseurs qui permet l'échange transparent de modèles de langage locaux et basés sur le cloud au runtime. Il prend en charge la collaboration distribuée, permettant à des agents indépendants de partager des informations et de déléguer des tâches à travers différents services. Pour garantir la visibilité sur la prise de décision autonome, le système inclut une instrumentation complète qui capture les traces d'exécution, les métriques de performance et les journaux d'opérations, qui peuvent être exportés vers des plateformes de surveillance externes. Au-delà de l'orchestration de base, la plateforme inclut une suite d'outils pour gérer les cycles de vie des agents, y compris la découverte automatisée de compétences, la validation et le bootstrapping d'environnement. Elle dispose d'une interface basée sur le terminal pour le chat interactif et l'exécution de tâches, aux côtés de primitives de sécurité qui appliquent des limites d'accès pour les opérations sur le système de fichiers. Le framework maintient également un dépôt de mémoire centralisé pour fournir un contexte partagé à travers les processus d'agents distribués.
Maintains a centralized store for system data and object states to provide shared context across distributed agent processes.
Varnish Cache est un proxy inverse HTTP et un accélérateur de contenu conçu pour se placer devant les serveurs web. Il fonctionne comme un moteur de mise en cache qui stocke le contenu web fréquemment consulté en mémoire pour réduire la charge de traitement sur les serveurs d'origine backend et accélérer les temps de livraison pour les utilisateurs finaux. Le logiciel se distingue par un langage de configuration spécifique au domaine qui compile la logique de traitement des requêtes en bytecode au niveau machine pour une exécution à la vitesse du fil. Il utilise une boucle d'événements multi-threadée pour gérer les connexions simultanées et emploie un stockage d'objets en mémoire partagée parallèlement à la pagination de la mémoire virtuelle pour faciliter la récupération rapide des données et l'accès au disque. Au-delà de ses capacités de mise en cache de base, le système fournit une gestion complète du trafic, y compris le traitement du pipeline requête-réponse et le sondage de santé du backend. Ces fonctionnalités permettent la distribution des requêtes réseau entrantes sur plusieurs serveurs pour assurer une haute disponibilité et le routage dynamique du trafic loin de l'infrastructure surchargée.
Stores cached web content in a shared memory segment accessible by multiple worker processes for rapid retrieval.