Distributed computing problems | Concurrency control | Transaction processing
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).
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)
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
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
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
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)
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
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)
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
Elixir Conf 2014 - Erlang Rationale by Robert Virding
Help us caption & translate this video! http://amara.org/v/FGYf/
From playlist ElixirConf 2014
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
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
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
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
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
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
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
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