2 dépôts
Implements memory management for buffers using reference counting to coordinate shared access and ensure safe deallocation.
Distinct from Memory Buffer Access: Distinct from Memory Buffer Access: focuses specifically on the lifetime tracking mechanism (reference counting) rather than just the act of accessing the buffer.
Explore 2 awesome GitHub repositories matching operating systems & systems programming · Reference-Counted Buffers. Refine with filters or upvote what's useful.
nghttp2 est une suite de bibliothèques C de bas niveau et d'outils conçus pour implémenter le protocole HTTP/2. Elle fournit une implémentation efficace en mémoire de la logique fondamentale du protocole, y compris le cadrage (framing), le multiplexage de flux et le contrôle de flux. Le projet inclut une bibliothèque dédiée à la compression et à la décompression d'en-têtes HPACK pour réduire la bande passante réseau. Il fournit également un ensemble d'outils pour analyser le trafic réseau et évaluer les performances du serveur, y compris des mesures de débit et de latence. Ses capacités plus larges couvrent l'implémentation de protocoles et la gestion du trafic, y compris la négociation de connexion ALPN, la priorisation des requêtes et la validation des composants d'en-tête. La bibliothèque prend en charge des extensions de protocole personnalisées via un système d'événements basé sur des rappels (callbacks) et inclut des utilitaires pour la gestion de la mémoire et la traduction des codes d'erreur. Le projet inclut un support de build et des scripts de configuration pour la compilation croisée de binaires pour la plateforme Android.
nghttp2 increments the reference count of a buffer to prevent it from being freed while other components require access.
Velox est un moteur d'exécution de requêtes C++ haute performance et une bibliothèque de traitement de données colonnaires. Il sert de framework composable pour implémenter des moteurs de requêtes analytiques, fournissant un évaluateur d'expressions vectorisées et une boîte à outils pour les systèmes de gestion de données. Le projet se distingue par son utilisation de l'exécution colonnaire vectorisée et de l'allocation mémoire basée sur des arènes pour traiter des jeux de données à grande échelle. Il propose des optimisations spécialisées telles que la mise en cache des tables de jointure broadcast, le push-down de filtres dynamiques et l'encodage par dictionnaire pour réduire la surcharge mémoire et accélérer les lectures analytiques. Le moteur couvre un large éventail de capacités analytiques, incluant l'implémentation de jointures hash, merge et semi, ainsi que l'agrégation parallèle multi-étapes et le calcul de fonctions de fenêtre. Il fournit des primitives pour le stockage colonnaire en mémoire, le décodage de données Parquet et l'intégration avec le stockage cloud. L'extensibilité est assurée par un système d'enregistrement de fonctions pour des fonctions scalaires et d'agrégation personnalisées, avec des bindings de haut niveau disponibles pour connecter la logique C++ à Python.
Uses reference-counted buffers and memory pools to support zero-copy data views across the execution engine.