4 research outputs found

    Concepts et mécanismes pour la mise en oeuvre d'un environnement d'édition coopérative sur un réseau à grande échelle

    Get PDF
    The following dissertation addresses one aspect of cooperative editing which has not been well examined until now : the consideration of hardware limitations imposed by a large scale distributed system (namely the Internet). This system model implies heterogeneous hardware, unbounded communication delays, and process failures. In this context, mechanisms usually used for cooperative editing in a local area network are not suitable. The model proposed here is based on a dynamic decomposition of the document into independant parts, maintained by a replicated kernel. The decomposition is controlled by the users themselves, who can then act on the concurrency allowed at the document level. The more a document is fragmented, the more concurrency is allowed. The replication of the independant document parts within the kernel, ensures the document availability and this regardless of the performances of the users' sites. Communication is reduced to minimum, thus allowing use in large scale distributed system. Users interact with the kernel either by copying a kernel object to their own local environment where it can be modified, or by handling over the modified object to the kernel. Consistency is managed according to several policies that can be chosen by the user depending on the document maturity or the required interaction with the other users. A new criterion has been defined to ensure consistency : the NRT-linearizability. This criterion is more adapted to our problem than linearizability, and allows in particular a non-blocking implementation even in the case of failures (user site as well as kernel site failure), which is important when considering large scale distributed system. This criterion maintains the locality property of the linearizability. Contrary to the classical approach, this criterion is not applied to the read-modify-write operations ensuring the atomicity of the following actions : loading a document part into an editor, modifying it with the editor, and storing the modified part. The atomicity of the read-modify-write operations is only considered ot the application level and takes into account the knowledge of the users. Thus, the user is free to choose the way it will be performed His her choice will be made between several concurrency control policies based on rules established between the users, either optimistic based on conflict detection, pessimistic based on capabilities, or hybrid

    Spécification des objets partagés dans les systèmes répartis sans-attente

    Get PDF
    In large scale distributed systems, strong consistency criteria like sequential consistency and linearizability are often very expensive or even unachievable. This thesis investigates the best ways to specify the objects that are still possible to implement in these systems. We assert that it is still possible to separate their specification in two complementary facets: an abstract data type that specifies the functional aspect of the operations and a weak consistency criterion that describes the level of quality of service ensured by the object in its distributed environment. We illustrate these concepts by an implementation in the D programming language: abstract data types are described by classes in the program and consistency criteria are taken from a list in the CODS library.We also draw up a map of the space of weak consistency criteria, organised around three families of primary criteria (state locality, eventual consistency and validity) and three families of secondary criteria (update consistency, pipelined consistency and serializability). Each secondary criterion strenghtens two primary criteria, but the three criteria can not be implemented together in considered systems. We also study the effects of causality on these families.Dans les systèmes répartis à très grande échelle, les critères de cohérence forts comme la cohérence séquentielle et la linéarisabilité sont souvent trop coûteux, voire impossibles à obtenir. Dans cette thèse, nous nous posons la question de la spécification des objets que l'on peut tout de même obtenir. Nous soutenons qu'il est toujours possible de séparer leur spécification en deux facettes : un type de données abstrait qui spécifie l'aspect fonctionnel des opérations et un critère de cohérence faible qui décrit la qualité de service garantie par l'objet dans son environnement réparti. Nous illustrons ces concepts par une mise en oeuvre dans le langage D : les types de données abstraits sont les classes du programme et les critères de cohérence sont choisis dans une liste fournie par la bibliothèque CODS. Nous dressons une carte de l'espace des critères faibles organisée autour de trois familles de critères primaires (localité d'état, convergence et validité) et trois familles de critères secondaires (cohérence d'écritures, cohérence pipeline et sérialisabilité). Chaque critère secondaire renforce deux critères primaires, mais les trois critères primaires ne peuvent pas être implémentés ensembles dans les systèmes considérés. Nous étudions également l'effet de la causalité sur ces familles

    Implementing Sequential Consistency In Cache-Based Systems

    No full text
    A model for shared-memory systems commonly (and often implicitly) assumed by programmers is that of sequential consistency. For implementing sequential consistency in a cache-based system, it is widely believed that (1) implementing strong ordering is sufficient and (2) restricting a processor to one sharedmemory reference at a time is practically necessary. In this paper we show that both beliefs are false. First, we prove that (1) is false with a counter-example. Second, we argue that (2) is false by giving sufficient conditions and an implementation that allow a processor to have simultaneous incomplete shared-memory references. While we do not demonstrate that this implementation is superior, we do believe it is practical and worthy of consideration. Keywords: shared-memory multiprocessors, sequential consistency, strong ordering, cache coherence. 1. Introduction A model of memory for shared-memory MIMD multiprocessor systems commonly (and often implicitly) assumed by programm..
    corecore