Distributed computing problems | Concurrency control | Transaction processing

Distributed concurrency control

Distributed concurrency control is the concurrency control of a system distributed over a computer network . In database systems and transaction processing (transaction management) distributed concurrency control refers primarily to the concurrency control of a distributed database. It also refers to the concurrency control in a multidatabase (and other multi-transactional object) environment (e.g., federated database, grid computing, and cloud computing environments. A major goal for distributed concurrency control is distributed serializability (or global serializability for multidatabase systems). Distributed concurrency control poses special challenges beyond centralized one, primarily due to communication and computer latency. It often requires special techniques, like distributed lock manager over fast computer networks with low latency, like switched fabric (e.g., InfiniBand). Commitment ordering (or commit ordering) is a general serializability technique that achieves distributed serializability (and global serializability in particular) effectively on a large scale, without concurrency control information distribution (e.g., local precedence relations, locks, timestamps, or tickets), and thus without performance penalties that are typical to other serializability techniques. The most common distributed concurrency control technique is strong strict two-phase locking (SS2PL, also named rigorousness), which is also a common centralized concurrency control technique. SS2PL provides both the serializability, strictness, and commitment ordering properties. Strictness, a special case of recoverability, is utilized for effective recovery from failure, and commitment ordering allows participating in a general solution for global serializability. For large-scale distribution and complex transactions, distributed locking's typical heavy performance penalty (due to delays, latency) can be saved by using the protocol, which is needed in a distributed database for (distributed) transactions' atomicity (e.g., two-phase commit, or a simpler one in a reliable system), together with some local commitment ordering variant (e.g., local SS2PL) instead of distributed locking, to achieve global serializability in the entire system. All the commitment ordering theoretical results are applicable whenever atomic commitment is utilized over partitioned, distributed recoverable (transactional) data, including automatic distributed deadlock resolution. Such technique can be utilized also for a large-scale parallel database, where a single large database, residing on many nodes and using a distributed lock manager, is replaced with a (homogeneous) multidatabase, comprising many relatively small databases (loosely defined; any process that supports transactions over partitioned data and participates in atomic commitment complies), fitting each into a single node, and using commitment ordering (e.g., SS2PL, strict CO) together with some appropriate atomic commitment protocol (without using a distributed lock manager). (Wikipedia).

Video thumbnail

Lecture 12: Distributed Transactions

Lecture 12: Distributed Transactions MIT 6.824: Distributed Systems (Spring 2020) https://pdos.csail.mit.edu/6.824/

From playlist MIT 6.824 Distributed Systems (Spring 2020)

Video thumbnail

The (Full)stack Trace: Understand Your App with Distributed Tracing - Will Klein - JSConf US 2019

Original Title: Follow the (full)stack trace: understand your app with distributed tracing What if we could follow a user request, from a page load in the browser, to our backend, through our services, to the database, and back? What does it look like to see how our UI receives data and r

From playlist JSConf US 2019

Video thumbnail

Everything You Need to Know About Control Theory

Control theory is a mathematical framework that gives us the tools to develop autonomous systems. Walk through all the different aspects of control theory that you need to know. Some of the concepts that are covered include: - The difference between open-loop and closed-loop control - How

From playlist Control Systems in Practice

Video thumbnail

Fuzzy control of inverted pendulum

Fuzzy control of inverted pendulum, State-feedback controller is designed based on T-S fuzzy model with the consideration of system stability and performance.

From playlist Demonstrations

Video thumbnail

Lecture 1: Introduction

Lecture 1: Introduction MIT 6.824: Distributed Systems (Spring 2020) https://pdos.csail.mit.edu/6.824/

From playlist MIT 6.824 Distributed Systems (Spring 2020)

Video thumbnail

What Is Gain Scheduling? | Control Systems in Practice

Often, the best control system is the simplest. When the system you’re trying to control is highly nonlinear, this can lead to very complex controllers. This video continues our discussion on control systems in practice by talking about a simple form of nonlinear control: gain scheduling.

From playlist Control Systems in Practice

Video thumbnail

Lecture 18: Fork Consistency, Certificate Transparency

Lecture 18: Fork Consistency, Certificate Transparency MIT 6.824: Distributed Systems (Spring 2020) https://pdos.csail.mit.edu/6.824/

From playlist MIT 6.824 Distributed Systems (Spring 2020)

Video thumbnail

Ruby Conf 12 - The Celluloid Ecosystem by Tony Arcieri

Celluloid is a concurrent object framework for Ruby that takes the headache out of building multithreaded programs. However, it's also an ecosystem of subprojects including the Reel web server for WebSockets, Celluloid::IO for evented sockets, Celluloid::ZMQ for ZeroMQ sockets, and DCell f

From playlist Ruby Conference 2012

Video thumbnail

Elixir Conf 2014 - Erlang Rationale by Robert Virding

Help us caption & translate this video! http://amara.org/v/FGYf/

From playlist ElixirConf 2014

Video thumbnail

Martin Odersky, "Working Hard to Keep It Simple" - OSCON Java 2011

Today's world of parallel and distributed computing poses hard new challenges for software development. A rapidly increasing number of developers now have to deal with races, deadlocks, non-determinism, and we are ill-equipped to do so. How can we keep things simple, in spite of the comple

From playlist OSCON 2011

Video thumbnail

The Art of Embracing Failure at Scale - Adrian Hornsby - REdeploy 2019

Mistakes. Bad judgment. Errors. Failures. They are all part of our engineering lives. While many think of them as being undesirable aspects of engineering, failures are very important, and even- beneficial. One thing that is sure is that failures will happen and will come in many forms, so

From playlist REdeploy 2019

Video thumbnail

RailsConf 2017: Distributed Tracing: From Theory to Practice by Stella Cotton

RailsConf 2017: Distributed Tracing: From Theory to Practice by Stella Cotton Application performance monitoring is great for debugging inside a single app. However, as a system expands into multiple services, how can you understand the health of the system as a whole? Distributed tracing

From playlist RailsConf 2017

Video thumbnail

Rocky Mountain Ruby 2012 - Let's talk concurrency by Jose Valim

For a long time, the de facto way of doing multi-core concurrency was using threads. However, the complexity of manipulating threads and state affected negatively how developers perceive concurrency. Fortunately, languages like Clojure and Erlang implement new paradigms that aim to make co

From playlist Rocky Mountain Ruby 2012

Video thumbnail

Thinking While Moving: Deep Reinforcement Learning with Concurrent Control

Classic RL "stops" the world whenever the Agent computes a new action. This paper considers a more realistic scenario where the agent is thinking about the next action to take while still performing the last action. This results in a fascinating way of reformulating Q-learning in continuou

From playlist Reinforcement Learning

Video thumbnail

New Concurrency Models on the JVM: Fibres, Verticles, Agents and Actors. by Lutz Huehnken

Until recently, concurrency in Java meant: java.util.concurrent and threads. Threads were originally envisioned as "lightweight processes" - starting a new process for concurrent operations meant to much overhead, and posed the problem of inter-process communication. Threads were supposed

From playlist Software Development Lectures

Video thumbnail

RedDotRuby 2014 - Ruby + Elixir: Polyglotting FTW! by Benjamin Tan

As developers, we know that we should use the right tool for the right job. While we may love Ruby, there are also many interesting technologies that may complement our favourite programming language. This talk introduces Elixir, a programming language that is built on the legendary Erlan

From playlist RedDotRuby 2014

Video thumbnail

Learning Clojure: Next Steps - Stuart Sierra

You can conj and assoc like a pro. You eat macros for breakfast. What's next? This talk will introduce some more advanced areas of Clojure to explore. Possible topics include: - Using the reader and printer - Creating new types that implement Clojure's interfaces - Building abstractions wi

From playlist Clojure, Lisp

Related pages

Concurrency control | Transaction processing | Serializability | Schedule (computer science) | Global serializability | Commitment ordering | Two-phase commit protocol | Switched fabric | Atomicity (database systems)