11 research outputs found

    An optimality theory of concurrency control for databases

    Get PDF
    In many database applications it is desirable that the database system be time-shared among multiple users who access the database in an interactive way. In such a systewi the arriving requests for the execution of steps i

    NASA SBIR abstracts of 1990 phase 1 projects

    Get PDF
    The research objectives of the 280 projects placed under contract in the National Aeronautics and Space Administration (NASA) 1990 Small Business Innovation Research (SBIR) Phase 1 program are described. The basic document consists of edited, non-proprietary abstracts of the winning proposals submitted by small businesses in response to NASA's 1990 SBIR Phase 1 Program Solicitation. The abstracts are presented under the 15 technical topics within which Phase 1 proposals were solicited. Each project was assigned a sequential identifying number from 001 to 280, in order of its appearance in the body of the report. The document also includes Appendixes to provide additional information about the SBIR program and permit cross-reference in the 1990 Phase 1 projects by company name, location by state, principal investigator, NASA field center responsible for management of each project, and NASA contract number

    A Framework for Parallel Programming of Graph Applications Using Optimistic Concurrency Control

    Get PDF
    Στην παρούσα διπλωματική εργασία παρουσιάζουμε ένα framework που επιτρέπει στους χρήστες να αναπτύσσουν παράλληλα προγράμματα σε γράφους, υλοποιώντας διαδικασίες ως κλάσεις στην Java. Υποστηρίζονται γράφοι κάθε τύπου ενώ παρέχεται εύκολη πρόσβαση σε αυτούς μέσω ενός API που υλοποιήθηκε με χρήση του Redis [1]. Κάθε διαδικασία μπορεί να δημιουργήσει δευτερεύουσες διαδικασίες αφού ολοκληρωθεί και να επιστρέψει ένα αποτέλεσμα. Ταυτόχρονα, ο χρήστης μπορεί να ορίσει πώς μπορεί να συνδυαστεί αυτό το αποτέλεσμα με τις εξόδους των δευτερευουσών διαδικασιών για να παραχθεί η τελική έξοδος. Το framework χρησιμοποιεί αισιόδοξο έλεγχο ταυτοχρονισμού [2], ώστε να διασφαλίσει ότι δεν παραβιάζεται η ακεραιότητα των δεδομένων, γεγονός που αποκρύπτεται από το API πρόσβασης στους γράφους. Ένας διακομιστής, που καλείται manager server, χρησιμοποιείται για να εκτελεστούν οι διαδικασίες παράλληλα, αναθέτοντας την εκτέλεση τους σε άλλους διακομιστές, που ονομάζονται node servers. Ο manager server μπορεί να δεχτεί αιτήματα για εγγραφή ή διαγραφή ενός node server κατά τη διάρκεια της εκτέλεσης. Όλοι οι διακομιστές αναπτύχθηκαν σε Java 11 ως ανεξάρτητες εφαρμογές Spring Boot [3] και χτίστηκαν χρησιμοποιώντας Docker [4]. Ενδεχόμενες εξωτερικές εφαρμογές μπορούν να υποβάλουν αιτήματα στον manager server για την εκτέλεση διαδικασιών ή να αιτηθούν την δημιουργία διαδικασιών σε όλους τους κόμβους πολλαπλών γράφων. Κάθε node server αναλαμβάνει την εκτέλεση εργασιών και την παραγωγή της τελικής εξόδου των διεργασιών χρησιμοποιώντας πολλαπλά νήματα. Οι node servers εκτελούν τις διεργασίες ως ανεξάρτητες συναλλαγές και εφαρμόζουν τις αλλαγές μόνο αν εξασφαλιστεί ότι δεν υπάρχουν συγκρούσεις μεταξύ συναλλαγών. Σε αντίθετη περίπτωση η εκάστοτε συναλλαγή ματαιώνεται και η διεργασία εκτελείται ξανά. Τέλος, παρουσιάζουμε παραδείγματα χρήσης του framework και αξιολογούμε την απόδοσή του μέσα από ένα σύνολο πειραμάτων. Συμπεραίνουμε ότι το framework παρέχει σημαντικές βελτιώσεις στην απόδοση ακόμα και όταν οι συγκρούσεις είναι συχνές. Καθώς προσθέτουμε node servers, παρατηρούμε ότι ο έλεγχος για συγκρούσεις καθώς και οι εφαρμογή των αλλαγών αποτελούν το μεγαλύτερο μέρος του συνολικού χρόνου εκτέλεσης καθώς εκτελούνται από έναν node server την φορά.In this thesis, we present GOPPE, which is a framework that allows users to develop parallel graph applications by implementing executable tasks as Java classes. These tasks can manipulate graphs of any type through a provided storage API implemented using Redis [1]. Tasks can generate additional subtasks upon completion that are submitted automatically by the framework for parallel execution. It is also possible for tasks to produce a result object whereas the user can define a task output generation procedure that utilizes this result and the subtasks’ outputs to produce a final output. The framework internally makes use of optimistic concurrency control [2] to execute these tasks, ensuring that data integrity is never violated. Moreover, the storage API is designed to make concurrency control transparent to the user who is under the impression that he has full access to the underlying storage system. A dedicated server, namely the manager server, is used to orchestrate the parallel execution of tasks in a distributed manner by delegating requests to other registered servers, called the node servers. The manager server can accept requests to register or unregister node servers during runtime. All servers were developed in Java 11 as independent Spring Boot [3] applications and were built using Docker [4] for ease of deployment. External application programs can submit requests to the manager server to execute tasks and receive their output or request to generate tasks for all nodes in multiple graphs. Each node server implements a service used to execute tasks and generate task outputs using multiple threads. Node servers execute tasks as independent transactions and use a dedicated service to validate each transaction and commit in case of successful validation. When transaction conflicts are detected, the transaction is aborted and the task is executed again in a new transaction. Finally, we present example use cases and evaluate their performance through a set of experiments. We conclude that the framework provides considerable performance improvements as we add node servers, even when data contention is high. The total execution time is eventually dominated by time spent on the transaction validation and transaction commit phases since they are executed by one node server at a time

    Serializable Isolation for Snapshot Databases

    Get PDF
    Many popular database management systems implement a multiversion concurrency control algorithm called snapshot isolation rather than providing full serializability based on locking. There are well-known anomalies permitted by snapshot isolation that can lead to violations of data consistency by interleaving transactions that would maintain consistency if run serially. Until now, the only way to prevent these anomalies was to modify the applications by introducing explicit locking or artificial update conflicts, following careful analysis of conflicts between all pairs of transactions. This thesis describes a modification to the concurrency control algorithm of a database management system that automatically detects and prevents snapshot isolation anomalies at runtime for arbitrary applications, thus providing serializable isolation. The new algorithm preserves the properties that make snapshot isolation attractive, including that readers do not block writers and vice versa. An implementation of the algorithm in a relational database management system is described, along with a benchmark and performance study, showing that the throughput approaches that of snapshot isolation in most cases

    A comparative study of the performance of concurrency control algorithms in a centralised database

    Get PDF
    Abstract unavailable. Please refer to PDF

    Consistent data aggregate retrieval for sensor network systems.

    Get PDF
    Lee Lok Hang.Thesis (M.Phil.)--Chinese University of Hong Kong, 2005.Includes bibliographical references (leaves 87-93).Abstracts in English and Chinese.Abstract --- p.iAcknowledgement --- p.ivChapter 1 --- Introduction --- p.1Chapter 1.1 --- Sensors and Sensor Networks --- p.3Chapter 1.2 --- Sensor Network Deployment --- p.7Chapter 1.3 --- Motivations --- p.7Chapter 1.4 --- Contributions --- p.9Chapter 1.5 --- Thesis Organization --- p.10Chapter 2 --- Literature Review --- p.11Chapter 2.1 --- Data Cube --- p.11Chapter 2.2 --- Data Aggregation in Sensor Networks --- p.12Chapter 2.2.1 --- Hierarchical Data Aggregation --- p.13Chapter 2.2.2 --- Gossip-based Aggregation --- p.13Chapter 2.2.3 --- Hierarchical Gossip Aggregation --- p.13Chapter 2.3 --- GAF Algorithm --- p.14Chapter 2.4 --- Concurrency Control --- p.17Chapter 2.4.1 --- Two-phase Locking --- p.17Chapter 2.4.2 --- Timestamp Ordering --- p.18Chapter 3 --- Building Distributed Data Cubes in Sensor Network --- p.20Chapter 3.1 --- Aggregation Operators --- p.21Chapter 3.2 --- Distributed Prefix (PS) Sum Data Cube --- p.22Chapter 3.2.1 --- Prefix Sum (PS) Data Cube --- p.22Chapter 3.2.2 --- Notations --- p.24Chapter 3.2.3 --- Querying a PS Data Cube --- p.25Chapter 3.2.4 --- Building Distributed PS Data Cube --- p.27Chapter 3.2.5 --- Time Bounds --- p.32Chapter 3.2.6 --- Fast Aggregate Queries on Multiple Regions --- p.37Chapter 3.2.7 --- Simulation Results --- p.43Chapter 3.3 --- Distributed Local Prefix Sum (LPS) Data Cube --- p.50Chapter 3.3.1 --- Local Prefix Sum Data Cube --- p.52Chapter 3.3.2 --- Notations --- p.55Chapter 3.3.3 --- Querying an LPS Data Cube --- p.56Chapter 3.3.4 --- Building Distributed LPS Data Cube --- p.61Chapter 3.3.5 --- Time Bounds --- p.63Chapter 3.3.6 --- Fast Aggregate Queries on Multiple Regions --- p.67Chapter 3.3.7 --- Simulation Results --- p.68Chapter 3.3.8 --- Distributed PS Data Cube Vs Distributed LPS Data Cube --- p.74Chapter 4 --- Concurrency Control and Consistency in Sensor Networks --- p.76Chapter 4.1 --- Data Inconsistency in Sensor Networks --- p.76Chapter 4.2 --- Traditional Concurrency Control Protocols and Sensor Networks --- p.80Chapter 4.3 --- The Consistent Retrieval of Data from Distributed Data Cubes --- p.81Chapter 5 --- Conclusions --- p.85References --- p.87Appendix --- p.94A Publications --- p.9
    corecore