11 research outputs found
An optimality theory of concurrency control for databases
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
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
Στην παρούσα διπλωματική εργασία παρουσιάζουμε ένα 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
Recommended from our members
Multi-level concurrency control of a database system
A typical database system maintains target data, which contain information useful for users, and access path data, which facilitate faster accesses to target data. Further, most large database systems support concurrent processing of multiple transactions. For a static database system model, where units of concurrency control are not dynamically created or deleted, various concurrency control methods are known. Also, many methods that allow concurrent accesses to indexing structures without invalidating their integrity are known. However, a straightforward integration of these two kinds of concurrency control methods fails because of the phantom problem. In this paper, we introduce group locks in order to solve this problem and discuss their implementation. As one side benefit of introducing group locks, we show that if the lowest-level access path data as well as the target data are two-phase locked by transactions, consistency of the logical data will be preserved
Recommended from our members
True-copy token scheme for a distributed database system
A concurrency and resiliency control scheme for a distributed database system with replicated data is discussed. The scheme, true-copy token scheme, uses true-copy tokens in order to designate the physical data copies (true copies) that can be identified with the current logical data that are globally unique, and then it realizes consistent execution of transactions by the locking over these true copies. If subsystem failures occur and if some true copies are lost, the scheme regenerates lost true copies so that their continuity is preserved.
In analyzing the true-copy token scheme, we establish a precise relationship between physical transactions and their corresponding logical transactions by data and time abstraction. Then we show that continuity of logical data is preserved if continuity of true copies is preserved.Key Words and Phrases: distributed database system, concurrency control, resiliency control, replicated data, true-copy tokens, data abstraction, time abstractio
Serializable Isolation for Snapshot Databases
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
Abstract unavailable. Please refer to PDF
Consistent data aggregate retrieval for sensor network systems.
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
Recommended from our members