Spelling suggestions: "subject:"brocksom""
1 |
Improving Availability of Stateful Serverless Functions in Apache Flink / Förbättring av Tillgänglighet För Tillståndsbaserade Serverlösa Funktioner i Apache FlinkGustafson, Christopher January 2022 (has links)
Serverless computing and Function-as-a-Service are rising in popularity due to their ease of use, provided scalability and cost-efficient billing model. One such platform is Apache Flink Stateful Functions. It allows application developers to run serverless functions with state that is persisted using the underlying stream processing engine Apache Flink. Stateful Functions use an embedded RocksDB state backend, where state is stored locally at each worker. One downside of this architecture is that state is lost if a worker fails. To recover, a recent snapshot of the state is fetched from a persistent file system. This can be a costly operation if the size of the state is large. In this thesis, we designed and developed a new decoupled state backend for Apache Flink Stateful Functions, with the goal of increasing availability while measuring potential performance trade-offs. It extends an existing decoupled state backend for Flink, FlinkNDB, to support the operations of Stateful Functions. FlinkNDB stores state in a separate highly available database, RonDB, instead of locally at the worker nodes. This allows for fast recovery as large state does not have to be transferred between nodes. Two new recovery methods were developed, eager and lazy recovery. The results show that lazy recovery can decrease recovery time by up to 60% compared to RocksDB when the state is large. Eager recovery did not provide any recovery time improvements. The measured performance was similar between RocksDB and FlinkNDB. Checkpointing times in FlinkNDB were however longer, which cause short periodic performance degradation. The evaluation of FlinkNDB suggests that decoupled state can be used to improve availability, but that there might be performance deficits included. The proposed solution could thus be a viable option for applications with high requirements of availability and lower performance requirements. / Serverlös datorberäkning och Function-as-a-Service (FaaS) ökar i popularitet på grund av dess enkelhet att använda, skalbarhet och kostnadseffektiva fakturerings-model. En sådan platform är Apache Flink Stateful Functions. Den tillåter applikationsutvecklare att köra serverlösa funktioner med varaktigt tillstånd genom den underliggande strömprocesseringsmotorn Apache Flink. Stateful Functions använder en inbyggd RocksDB tillståndslagring, där tillstånd lagras lokalt på arbetarnoderna. Ett problem med denna arkitektur är att tillstånd förloras om en arbetarnod krashar. För att återhämta sig behöver systemet hämta en tidigare sparad tillståndskopia från ett varaktivt filsystem, vilket kan bli kostsamt om tillståndet är stort. I denna uppsatts har vi designat och utvecklat en ny prototyp för att separat hantera tillstånd i Apache Flink Stateful Functions, med målet att öka tillgängligheten utan att förlora prestanda. Prototypen är en vidareutveckling av en existerande separat tillståndshantering för Flink, FlinkNDB, som utökades för att kunna hantera Stateful Functions. FlinkNDB sparar tillstånd i en separat högtillgänglig database, RonDB, istället för att spara tillstånd lokalt på arbetarnoderna. Detta möjliggör snabb återhämtning då inte stora mängder tillstånd behöver skickas mellan noder. Två återhämtningsmetoder utvecklades, ivrig och lat återhämtning. Resultaten visar att lat återhämtning kan sänka återhämtningstiden med upp till 60% jämfört med RocksDB då tillståndet är stort. Ivrig återhämtning visade inte några förbättringar i återhämtningstid. Prestandan var liknande mellan RocksDB och FlinkNDB. Tiden för checkpoints var däremot längre för FlinkNDB vilket orsakade korta periodiska prestandadegraderingar jämfört med RocksDB. Evalueringen av FlinkNDB föreslår att separat tillståndshantering kan öka tillgängligheten av Stateful Functions, men att detta kan innebära vissa prestanda degraderingar. Den föreslagna lösningen kan således vara ett bra alternativ när det finns höga krav på tillgänglighet, men lågra krav på prestanda.
|
2 |
FlinkNDB : Guaranteed Data Streaming Using External StateAsif, Muhammad Haseeb January 2021 (has links)
Apache Flink is a stream processing framework that provides a unified state management mechanism which, at its core, treats stream processing as a sequence of distributed transactions. Flink handles failures, re-scaling and reconfiguration seamlessly via a form of a two-phase commit protocol that periodically commits all past side effects consistently into the state backends. This involves invoking and combining checkpoints and, in time of need, redistributing the state to resume data pipelines. All the existing Flink state backend implementations, such as RocksDB, are embedded and coupled with the compute nodes. Therefore, recovery time is proportional to the state needed to be reconfigured and that can take from a few seconds to hours. If application logic is compute-heavy and Flink’s tasks are overloaded, scaling out compute pipeline means scaling out storage together with compute tasks and vice-versa because of the embedded state backends. It also introduces delays due to expensive state re-shuffle and moving large state on the wire. This thesis work proposes the decoupling of the state storage from compute to improve Flink’s scalability. It introduces the design and implementation of a new State backend, FlinkNDB, that decouples state storage from compute. Furthermore, we designed and implemented new techniques to perform snapshotting, and failure recovery to reduce the recovery time close to zero. / Apache Flink är ett strömbehandlingsramverk som tillhandahåller en enhetlig tillståndshanteringsmekanism som i sin kärna behandlar strömbehandling som en sekvens av distribuerade transaktioner. Flink hanterar fel, omskalning och omkonfigurering sömlöst via en form av ett tvåfas-engagemangsprotokoll som regelbundet begår alla tidigare biverkningar konsekvent i tillståndets backends. Detta innebär att man åberopar och kombinerar kontrollpunkter och vid behov omdistribuerar dess tillstånd för att återuppta dataledningar. Alla befintliga backendimplementeringar för Flink-tillstånd, som Rocks- DB, är inbäddade och kopplade till beräkningsnoderna. Därför är återhämtningstiden proportionell mot det tillstånd som behöver konfigureras om och det kan ta från några sekunder till timmar. Om applikationslogiken är beräkningstung och Flinks uppgifter är överbelastade, innebär utskalning av beräkningsrörledning att utskalning av lagring, tillsammans med beräkningsuppgifter och vice versa på grund av det inbäddade tillståndet i backend. Det introducerar också förseningar i förhållande till dyra tillståndsförflyttningar och flyttning av stora datamängder som upptar stora delar av bandbredden. Detta avhandlingsarbete föreslår frikoppling av tillståndslagring från beräkning för att förbättra Flinks skalbarhet. Den introducerar designen och implementeringen av ett nytt tillstånd i backend, FlinkNDB, som frikopplar tillståndslagring från beräkning. Avslutningsvis designade och implementerade vi nya tekniker för att utföra snapshotting och felåterställning för att minska återhämtningstiden till nära noll.
|
3 |
Measuring RocksDB performance and adaptive sampling for model estimationLaprés-Chartrand, Jean 01 1900 (has links)
This thesis focuses on two topics, namely statistical learning and the prediction of key performance indicators in the performance evaluation of a storage engine.
The part on statistical learning presents a novel algorithm adjusting the sampling size for the Monte Carlo approximation of the function to be minimized, allowing a reduction of the true function at a given probability and this, at a lower numerical cost.
The sampling strategy is embedded in a trust-region algorithm, using the Fisher Information matrix, also called BHHH approximation, to approximate the Hessian matrix. The sampling strategy is tested on a logit model generated from synthetic data.
Numerical results exhibit a significant reduction in the time required to optimize the model when an adequate smoothing is applied to the function.
The key performance indicator prediction part describes a novel strategy to select better settings for RocksDB that optimize its throughput, using the log files to analyze and identify suboptimal parameters, opening the possibility to greatly accelerate modern storage engine tuning. / Ce mémoire s’intéresse à deux sujets, un relié à l’apprentisage statistique et le second à la
prédiction d’indicateurs de performance dans un système de stockage de type clé-valeur.
La partie sur l’apprentissage statistique développe un algorithme ajustant la taille
d’échantillonnage pour l’approximation Monte Carlo de la fonction à minimiser, permettant
une réduction de la véritable fonction avec une probabilité donnée, et ce à un coût
numérique moindre. La stratégie d’échantillonnage est développée dans un contexte de région
de confiance en utilisant la matrice d’information de Fisher, aussi appelée approximation
BHHH de la matrice hessienne. La stratégie d’échantillonnage est testée sur un modèle logit
généré à partir de données synthétiques suivant le même modèle. Les résultats numériques
montrent une réduction siginificative du temps requis pour optimiser le modèle lorsqu’un
lissage adéquat est appliqué.
La partie de prédiction d’indicateurs de performance décrit une nouvelle approche pour
optimiser la vitesse maximale d’insertion de paire clé-valeur dans le système de stockage
RocksDB. Les fichiers journaux sont utilisés pour identifier les paramètres sous-optimaux du
système et accélérer la recherche de paramètres optimaux.
|
Page generated in 0.0314 seconds