22 research outputs found

    Clarifying and compiling C/C++ concurrency: from C++11 to POWER

    Get PDF
    The upcoming C and C++ revised standards add concurrency to the languages, for the first time, in the form of a subtle *relaxed memory model* (the *C++11 model*). This aims to permit compiler optimisation and to accommodate the differing relaxed-memory behaviours of mainstream multiprocessors, combining simple semantics for most code with high-performance *low-level atomics* for concurrency libraries. In this paper, we first establish two simpler but provably equivalent models for C++11, one for the full language and another for the subset without consume operations. Subsetting further to the fragment without low-level atomics, we identify a subtlety arising from atomic initialisation and prove that, under an additional condition, the model is equivalent to sequential consistency for race-free programs

    Nemos: a framework for axiomatic and executable specifications of memory consistency models

    Get PDF
    technical reportConforming to the underlying memory consistency rules is a fundamental require- ment for implementing shared memory systems and writing multiprocessor programs. In order to promote understanding and enable automated verification, it is highly desir- able that a memory model specification be both declarative and executable. We have developed a specification framework called Nemos (Non-operational yet Executable Memory Ordering Specifications), which employs a uniform notation based on predi- cate logic to define shared memory semantics in an axiomatic as well as compositional style. In this paper, we present this framework and discuss how constraint logic pro- gramming and SAT solving can be used to make these axiomatic specifications exe- cutable for memory model analysis, thus supporting precise specification and automatic execution in the same framework. To illustrate our approach, this paper formalizes a collection of well known memory models, including sequential consistency, coherence, PRAM, causal consistency, and processor consistency

    A Scalable Middleware Solution for Advanced Wide Area Web Services

    Get PDF
    To alleviate scalability problems in the Web, many researchers concentrate on how to incorporate advanced caching and replication techniques. Many solutions incorporate object-based techniques. In particular, Web resources are considered as distributed objects offering a well-defined interface. We argue that most proposals ignore two important aspects. First, there is little discussion on what kind of coherence should be provided. Proposing specific caching or replication solutions makes sense only if we know what coherence model they should implement. Second, most proposals treat all Web resources alike. Such a one-size-fits-all approach will never work in a wide-area system. We propose a solution in which Web resources are encapsulated in physically distributed shared objects. Each object should encapsulate not only state and operations, but also the policy by which its state is distributed, cached, replicated, migrated, etc

    LIPIcs

    Get PDF
    The semantics of concurrent data structures is usually given by a sequential specification and a consistency condition. Linearizability is the most popular consistency condition due to its simplicity and general applicability. Nevertheless, for applications that do not require all guarantees offered by linearizability, recent research has focused on improving performance and scalability of concurrent data structures by relaxing their semantics. In this paper, we present local linearizability, a relaxed consistency condition that is applicable to container-type concurrent data structures like pools, queues, and stacks. While linearizability requires that the effect of each operation is observed by all threads at the same time, local linearizability only requires that for each thread T, the effects of its local insertion operations and the effects of those removal operations that remove values inserted by T are observed by all threads at the same time. We investigate theoretical and practical properties of local linearizability and its relationship to many existing consistency conditions. We present a generic implementation method for locally linearizable data structures that uses existing linearizable data structures as building blocks. Our implementations show performance and scalability improvements over the original building blocks and outperform the fastest existing container-type implementations

    A generic operational memory model specification framework for multithreaded program verification

    Get PDF
    technical reportGiven the complicated nature of modern architectural and language level memory model designs, it is vital to have a systematic ap- proach for specifying memory consistency requirements that can support verification and promote understanding. In this paper, we develop a spec- ification methodology that defines a memory model operationally using a generic transition system with integrated model checking capability to enable formal reasoning about program correctness in a multithreaded environment. Based on a simple abstract machine, our system can be configured to define a variety of consistency models in a uniform nota- tion. We then apply this framework as a taxonomy to formalize several well known memory models. We also provide an alternative specification for the Java memory model based on a proposal from Manson and Pugh and demonstrate how to conduct computer aided analysis for Java thread semantics. Finally, we compare this operational approach with axiomatic approaches and discuss a method to convert a memory model definition from one style to the other

    Consistency in scalable systems

    Full text link
    [EN] While eventual consistency is the general consistency guarantee ensured in cloud environments, stronger guarantees are in fact achievable. We show how scalable and highly available systems can provide processor, causal, sequential and session consistency during normal functioning. Failures and network partitions negatively affect consistency and generate divergence. After the failure or the partition, reconciliation techniques allow the system to restore consistency.This work has been supported by EU FEDER and Spanish MICINN under research grants TIN2009-14460-C03-01 and TIN2010-17193.Ruiz Fuertes, MI.; Pallardó Lozoya, MR.; Muñoz-Escoí, FD. (2012). Consistency in scalable systems. En On the Move to Meaningful Internet Systems: OTM 2012. Springer Verlag (Germany). 7566:549-565. https://doi.org/10.1007/978-3-642-33615-7_7S5495657566Ahamad, M., Bazzi, R.A., John, R., Kohli, P., Neiger, G.: The power of processor consistency. In: Proceedings of the Fifth Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA 1993, pp. 251–260. ACM, New York (1993), http://doi.acm.org/10.1145/165231.165264Alvarez, A., Arévalo, S., Cholvi, V., Fernández, A., Jiménez, E.: On the Interconnection of Message Passing Systems. Inf. Process. Lett. 105(6), 249–254 (2008)Amazon Web Services LLC: Amazon Simple Storage Service (S3). Website (March 2011), http://aws.amazon.com/s3/Baker, J., Bond, C., Corbett, J.C., Furman, J.J., Khorlin, A., Larson, J., Léon, J., Li, Y., Lloyd, A., Yushprakh, V.: Megastore: Providing Scalable, Highly Available Storage for interactive services. In: 5th Biennial Conf. on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, pp. 223–234 (January 2011)Baldoni, R., Beraldi, R., Friedman, R., van Renesse, R.: The Hierarchical Daisy Architecture for Causal Delivery. Distributed Systems Engineering 6(2), 71–81 (1999)Bernstein, P.A., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley (1987)Bernstein, P.A., Reid, C.W., Das, S.: Hyder - A Transactional Record Manager for Shared Flash. In: 5th Biennial Conf. on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, pp. 9–20 (January 2011)Bershad, B.N., Zekauskas, M.J., Sawdon, W.A.: The Midway Distributed Shared Memory System. In: Proc. IEEE CompCon Conf. (1993)Brewer, E.A.: Towards Robust Distributed Systems (Abstract). In: Proc. ACM Symp. Princ. Distrib. Comput., p. 7 (2000)Budhiraja, N., Marzullo, K., Schneider, F.B., Toueg, S.: The Primary-Backup Approach. In: Mullender, S.J. (ed.) Distributed Systems, 2nd edn., ch. 8, pp. 199–216. Addison-Wesley, ACM Press (1993)Campbell, D.G., Kakivaya, G., Ellis, N.: Extreme Scale with Full SQL Language Support in Microsoft SQL Azure. In: Intnl. Conf. on Mngmnt. of Data (SIGMOD), pp. 1021–1024. ACM, New York (2010), http://doi.acm.org/10.1145/1807167.1807280Cholvi, V., Jiménez, E., Anta, A.F.: Interconnection of distributed memory models. J. Parallel Distrib. Comput. 69(3), 295–306 (2009)Cooper, B.F., Ramakrishnan, R., Srivastava, U., Silberstein, A., Bohannon, P., Jacobsen, H., Puz, N., Weaver, D., Yerneni, R.: PNUTS: Yahoo!’s hosted data serving platform. PVLDB 1(2), 1277–1288 (2008)Daudjee, K., Salem, K.: Lazy Database Replication with Ordering Guarantees. In: Proc. Int. Conf. Data Eng., pp. 424–435. IEEE-CS (2004)Daudjee, K., Salem, K.: Lazy Database Replication with Snapshot Isolation. In: Proc. Int. Conf. Very Large Data Bases, pp. 715–726. ACM (2006)DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W.: Dynamo: Amazon’s Highly Available Key-value Store. In: ACM Symp. Oper. Syst. Princ., pp. 205–220 (2007)Fernández, A., Jiménez, E., Cholvi, V.: On the interconnection of causal memory systems. J. Parallel Distrib. Comput. 64(4), 498–506 (2004)Gilbert, S., Lynch, N.A.: Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. ACM SIGACT News 33(2), 51–59 (2002)Goodman, J.R.: Cache Consistency and Sequential Consistency. Tech. Rep. 61, SCI Committee (March 1989)Gray, J., Helland, P., O’Neil, P.E., Shasha, D.: The Dangers of Replication and a Solution. In: Proc. ACM SIGMOD Int. Conf. Manage. Data, pp. 173–182. ACM (1996)Helland, P., Campbell, D.: Building on Quicksand. In: Proc. Bienn. Conf. Innov. Data Syst. Research (2009), www.crdrdb.orgHutto, P., Ahamad, M.: Slow Memory: Weakening Consistency to Enhance Concurrency in Distributed Shared Memories. In: Proceedings of the 10th International Conference on Distributed Computing Systems, pp. 302–311 (May 1990)Johnson, S., Jahanian, F., Shah, J.: The Inter-group Router Approach to Scalable Group Composition. In: ICDCS, pp. 4–14 (1999)Kraska, T., Hentschel, M., Alonso, G., Kossmann, D.: Consistency Rationing in the Cloud: Pay only when it matters. PVLDB 2(1), 253–264 (2009)Lamport, L.: How to Make a Multiprocessor Computer that Correctly Executes multiprocess programs. IEEE Trans. Computers 28(9), 690–691 (1979)Lipton, R.J., Sandberg, J.S.: Pram: A Scalable Shared Memory. Tech. Rep. CS-TR-180-88, Princeton University, Department of Computer Science (September 1988)Mosberger, D.: Memory Consistency Models. Operating Systems Review 27(1), 18–26 (1993)Ruiz-Fuertes, M.I., Muñoz-Escoí, F.D.: Refinement of the One-Copy Serializable Correctness Criterion. Tech. Rep. ITI-SIDI-2011/004, Instituto Tecnológico de Informática, Valencia, Spain (November 2011)Stonebraker, M., Madden, S., Abadi, D.J., Harizopoulos, S., Hachem, N., Helland, P.: The End of an Architectural Era (It’s Time for a Complete Rewrite). In: 33rd Intnl. Conf. on Very Large Data Bases (VLDB), pp. 1150–1160. ACM Press, Vienna (2007)Terry, D.B., Demers, A.J., Petersen, K., Spreitzer, M., Theimer, M., Welch, B.B.: Session Guarantees for Weakly Consistent Replicated Data. In: Proc. Int. Conf. Parallel Distrib. Inform. Syst., pp. 140–149. IEEE-CS (1994)Vogels, W.: Eventually Consistent. Communications of the ACM (CACM) 52(1), 40–44 (2009)VoltDB, Inc.: VoltDB technical overview: A high performance, scalable RDBMS for Big Data, high velocity OLTP and realtime analytics. Website (April 2012), http://voltdb.com/sites/default/files/PDFs/VoltDBTechnicalOverview_April_2012.pdfWiesmann, M., Schiper, A.: Comparison of Database Replication Techniques Based on Total Order Broadcast. IEEE T. Knowl. Data En. 17(4), 551–566 (2005

    About the efficiency of partial replication to implement Distributed Shared Memory

    Get PDF
    Distributed Shared Memory abstraction (DSM) is traditionally realized through a distributed memory consistency system(MCS) on top of a message passing system. In this paper we analyze the impossibility of efficient partial replication implementation of causally consistent DSM. Efficiency is discussed in terms of control information that processes have to propagate to maintain consistency. We introduce the notions of share graph and hoop to model variable distribution and the concept of dependency chain to characterize processes that have to manage information about a variable even though they do not read or write that variable. Then, we weaken causal consistency to try to define new consistency criteria weaker enough to allow efficient partial replication implementations and strong enough to solve interesting problems. Finally, we prove that PRAM is such a criterion, and illustrate its power with the Bellman-Ford shortest path algorithm. / Les mémoires partagées réparties constituent une abstraction qui est traditionellement concrétisée par un système réparti de mémoire cohérente, au-dessus d'un système de communication par messages. Dans ce rapport, on analyse l'impossibilité d'avoir une implémentation efficace de mémoire partagée répartie à cohérence causale, basée sur la duplication partielle des variables. L'efficacité est envisagée en terme d'information contrôle qui doit être propagée pour assurer la cohérence. On introduit les notions de graphe de partage et d'arceau, qui modélisent la répartition des variables et la notion de chaîne de dépendance pour caractériser les processus qui doivent gérer des informations relatives à une variable dont ils ne possèdent pas de copie locale. Ensuite, on affaiblit le critère de cohérence causale, dans le but de déterminer un nouveau critère de cohérence qui soit suffisament faible pour permettre un implémentation efficace basée sur la duplication partielle, mais suffisament forte pour pouvoir résoudre des problèmes intéressants. Finalement, on prouve que le critère appelé PRAM satisfait ces exigences, et illustrons sa pertinence en montrant une implémentation de l'algorithme de plus court chemin de Bellman-Ford
    corecore