Froihofer, L. (2007). Middleware support for adaptive dependability through explicit runtime integrity constraints [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-15606
Integrität und Verfügbarkeit sind zwei konkurrierende Attribute von Systemzuverlässigkeit. Während einige Systeme strikte Integrität verlangen ist für andere - abhängig vom Systemkontext - die Verfügbarkeit bedeutender. In diesen Systemen kann die Verfügbarkeit unter temporärer und teilweiser Rücknahme der Integritätsanforderungen erhöht werden. Potenzielle Inkonsistenzen aufgrund von Netzwerkpartitionen werden basierend auf der Validierung von Integritätsbedingungen auf möglicherweise veralteten Kopien von Daten in Kauf genommen. Diese Konsistenzbedrohungen bzw. deren Effekte müssen entsprechend eingeschränkt und etwaige Inkonsistenzen nach der Reparatur von Netzwerkausfällen wieder behoben werden.<br />Diese Dissertation präsentiert einen Middleware-basierten Ansatz, die Systemzuverlässigkeit von datenorientierten Systemen durch eine Balancierung der Integritäts- und Verfügbarkeitsanforderungen an Fehlersituationen anzupassen. Dieser Ansatz basiert auf zur Laufzeit explizit verwaltbaren Integritätsbedingungen. Während die Unterstützung für die adaptive Zuverlässigkeit in die Middleware integriert wird, werden notwendige Artefakte zur Balancierung von Verfügbarkeit und Konsistenz, z.B. Integritätsbedingungen und entsprechende Metadaten, von der Anwendung bereitgestellt. Zusätzlich werden verschiedenste Plugin-basierte Mechanismen und Callbacks verwendet, um ein flexibles Management von Inkonsistenzen im System zu ermöglichen.<br />Konfigurierbarkeit und Explizitheit zur Laufzeit fördern die saubere Trennung von verschiedenen Aspekten und führen so zu verbessertem Systemdesign und verbesserter Wartbarkeit. Andererseits wirken sie sich im Allgemeinen negativ auf die Leistung eines Systems aus. Die durchgeführten Studien zeigen, dass sich die Kosten in der Größenordnung von 1-15% Einbuße für einige der fortgeschritteneren Ansätze für explizites Integritätsmanagement rentieren, während andere Ansätze Overheads bis hin zu 40.000% aufweisen.<br />Integritäts- bzw. Inkonsistenzmanagement basierend auf expliziten Integritätsbedingungen ist ein Hauptteil des Ansatzes für adaptive Zuverlässigkeit. Dies wird ergänzt durch Datenreplikation zur Fehlertoleranz von Rechner- und Netzwerkausfällen. Die Evaluierungen zeigen, dass sich der entwickelte Ansatz vorrangig in Systemen bezahlt macht, wo (i) das Lese-/Schreibverhältnis hoch, (ii) die Anzahl der replizierten Knoten eher klein und/oder (iii) die Geschwindigkeit der Schreibzugriffe nicht der limitierende Faktor ist. Von weiterem Vorteil ist, wenn die Systeme nicht die getätigten Operationen bzw.<br />Zwischenzustände während eines Rechner- oder Netzwerkausfalles kennen müssen, um etwaige Inkonsistenzen zu beheben.<br />
de
Integrity and availability are two competing dependability attributes. While some applications require strict integrity, other applications exist, e.g., safety or mission critical systems, where-depending on the specific situation-availability is more important for dependability than strict integrity. Within our work, we focus on data-centric systems, where availability can be increased by temporarily relaxing data integrity, thereby allowing for certain inconsistencies.<br />Potential inconsistencies are accepted based on constraint validation on replicated copies that are possibly stale in the face of network partitions. Such consistency threats need to be bound and eventually resolved during reconciliation to re-establish a consistent system state.<br />This dissertation presents a middleware approach to support adaptive dependability by balancing integrity and availability in distributed object systems. The envisaged balancing is based on explicit runtime management of integrity constraints and consistency threats. While the support for adaptive dependability is integrated into the middleware, the application provides the necessary artefacts, e.g., integrity constraints and corresponding metadata, on which trade-off decisions between integrity and availability can be based. Moreover, several plugin-based or even dynamically configurable call-backs allow for runtime interaction between application and middleware in order to perform flexible (in)consistency management within the system.<br />Runtime configurability and explicitness contribute to separation of concerns and hence to a well-structured system design, robustness, and better maintainability, while generally impairing system performance.<br />Our studies show that the increases in maintainability of some of the more advanced approaches for explicit integrity constraints are certainly worth their performance costs of 1-15% while other approaches might be simply too slow with overheads of up to about 40,000%.<br />Consistency management based on explicit constraints is the first key part of our adaptive dependability approach. The second major part is an integrated replication service in order to provide fault tolerance for node and link failures. Evaluations of our middleware enhancement show that it is most worth its costs in systems where (i) the read-to-write ratio is high, (ii) the number of replicated nodes in the system is small, and/or (iii) write-performance is not the limiting factor.<br />Moreover, systems can benefit most if they do not require the history of performed operations/applied states in order to reconcile inconsistencies of the system.