Consistency in Non-Transactional Distributed Storage SystemsViotti, Paolo; Vukolić, Marko
doi: 10.1145/2926965pmid: N/A
Over the years, different meanings have been associated with the word consistency in the distributed systems community. While in the 80s consistency typically meant strong consistency, later defined also as linearizability, in recent years, with the advent of highly available and scalable systems, the notion of consistency has been at the same time both weakened and blurred. In this article, we aim to fill the void in the literature by providing a structured and comprehensive overview of different consistency notions that appeared in distributed systems, and in particular storage systems research, in the last four decades. We overview more than 50 different consistency notions, ranging from linearizability to eventual and weak consistency, defining precisely many of these, in particular where the previous definitions were ambiguous. We further provide a partial order among different consistency predicates, ordering them by their semantic strength, which we believe will be useful in future research. Finally, we map the consistency semantics to different practical systems and research prototypes. The scope of this article is restricted to non-transactional semantics, that is, those that apply to single storage object operations. As such, our article complements the existing surveys done in the context of transactional, database consistency semantics.
Survey On Software Design-Pattern Specification LanguagesKhwaja, Salman; Alshayeb, Mohammad
doi: 10.1145/2926966pmid: N/A
A design pattern is a well-defined solution to a recurrent problem. Over the years, the number of patterns and domains of design patterns have expanded, as the patterns are the experiences of the experts of the domain captured in a higher-level abstraction. This led others to work on languages for design patterns to systematically document abstraction detailed in the design pattern rather than capture algorithms and data. These design-pattern specification languages come in different flavors, targeting different aspects of design patterns. Some design-pattern specification languages tried to capture the description of the design pattern in graphical or textual format, others tried to discover design patterns in code or design diagrams, and still other design-pattern specification languages have other objectives. However, so far, no effort has been made to compare these design-pattern specification languages and identify their strengths and weaknesses. This article provides a survey and a comparison between existing design-pattern specification languages using a design-pattern specification language evaluation framework. Analysis is done by grouping the design-pattern specification languages into different categories. In addition, a brief description is provided regarding the tools available for the design-pattern specification languages. Finally, we identify some open research issues that still need to be resolved.
Computational Methods for Residential Energy Cost Optimization in Smart GridsAlam, Muhammad Raisul; St-Hilaire, Marc; Kunz, Thomas
doi: 10.1145/2897165pmid: N/A
A smart power grid transforms the traditional electric grid into a user-centric, intelligent power network. The cost-saving potential of smart homes is an excellent motivating factor to involve users in smart grid operations. To that end, this survey explores the contemporary cost-saving strategies for smart grids from the users perspective. The study shows that optimization methods are the most popular cost-saving techniques reported in the literature. These methods are used to plan scheduling and power utilization schemes of household appliances, energy storages, renewables, and other energy generation devices. The survey shows that trading energy among neighborhoods is one of the effective methods for cost optimization. It also identifies the prediction methods that are used to forecast energy price, generation, and consumption profiles, which are required to optimize energy cost in advance. The contributions of this article are threefold. First, it discusses the computational methods reported in the literature with their significance and limitations. Second, it identifies the components and their characteristics that may reduce energy cost. Finally, it proposes a unified cost optimization framework and addresses the challenges that may influence the overall residential energy cost optimization problem in smart grids.
Distributed Intelligent MEMSLiang, Junbin; Cao, Jiannong; Liu, Rui; Li, Tao
doi: 10.1145/2926964pmid: N/A
In recent years, distributed intelligent microelectromechanical systems (DiMEMSs) have appeared as a new form of distributed embedded systems. DiMEMSs contain thousands or millions of removable autonomous devices, which will collaborate with each other to achieve the final target of the whole system. Programming such systems is becoming an extremely difficult problem. The difficulty is due not only to their inherent nature of distributed collaboration, mobility, large scale, and limited resources of their devices (e.g., in terms of energy, memory, communication, and computation) but also to the requirements of real-time control and tolerance for uncertainties such as inaccurate actuation and unreliable communications. As a result, existing programming languages for traditional distributed and embedded systems are not suitable for DiMEMSs. In this article, we first introduce the origin and characteristics of DiMEMSs and then survey typical implementations of DiMEMSs and related research hotspots. Finally, we propose a real-time programming framework that can be used to design new real-time programming languages for DiMEMSs. The framework is composed of three layers: a real-time programming model layer, a compilation layer, and a runtime system layer. The design challenges and requirements of these layers are investigated. The framework is then discussed in further detail and suggestions for future research are given.
Socializing the Semantic GapLi, Xirong; Uricchio, Tiberio; Ballan, Lamberto; Bertini, Marco; Snoek, Cees G. M.; Bimbo, Alberto Del
doi: 10.1145/2906152pmid: N/A
Where previous reviews on content-based image retrieval emphasize what can be seen in an image to bridge the semantic gap, this survey considers what people tag about an image. A comprehensive treatise of three closely linked problems (i.e., image tag assignment, refinement, and tag-based image retrieval) is presented. While existing works vary in terms of their targeted tasks and methodology, they rely on the key functionality of tag relevance, that is, estimating the relevance of a specific tag with respect to the visual content of a given image and its social context. By analyzing what information a specific method exploits to construct its tag relevance function and how such information is exploited, this article introduces a two-dimensional taxonomy to structure the growing literature, understand the ingredients of the main works, clarify their connections and difference, and recognize their merits and limitations. For a head-to-head comparison with the state of the art, a new experimental protocol is presented, with training sets containing 10,000, 100,000, and 1 million images, and an evaluation on three test sets, contributed by various research groups. Eleven representative works are implemented and evaluated. Putting all this together, the survey aims to provide an overview of the past and foster progress for the near future.
Computational Health Informatics in the Big Data AgeFang, Ruogu; Pouyanfar, Samira; Yang, Yimin; Chen, Shu-Ching; Iyengar, S. S.
doi: 10.1145/2932707pmid: N/A
The explosive growth and widespread accessibility of digital health data have led to a surge of research activity in the healthcare and data sciences fields. The conventional approaches for health data management have achieved limited success as they are incapable of handling the huge amount of complex data with high volume, high velocity, and high variety. This article presents a comprehensive overview of the existing challenges, techniques, and future directions for computational health informatics in the big data age, with a structured analysis of the historical and state-of-the-art methods. We have summarized the challenges into four Vs (i.e., volume, velocity, variety, and veracity) and proposed a systematic data-processing pipeline for generic big data in health informatics, covering data capturing, storing, sharing, analyzing, searching, and decision support. Specifically, numerous techniques and algorithms in machine learning are categorized and compared. On the basis of this material, we identify and discuss the essential prospects lying ahead for computational health informatics in this big data age.