Mutex for serialized access to a DB in a distributed system

Scenario 1: This code is to demonstrate a mutex for serialized access to a single DB in a distributed system

Environment: Single database named 'A' with tables named x,y and z
Transaction 1
    Begin;
       Read(x,y,z); //mutex readlock on x,y,z
       Write (x,y,z); //mutex writelock on x,y,z
    End;
   // mutex read-write unlock
Transaction 2
    Begin;
      Read(x); //mutex readlock on x
       Write (y,z); //mutex writelock on y,z
    End;
// mutex read-write unlock

In Scenario 1, Transaction2 has to wait till the Transaction 1 to unlock\release the lock to read x and write to y and z

Scenario 2: This code is to demonstrate a mutex for serialized access to a distributed DB in a distributed system

Environment: Distributed databases named 'A','B','C' with tables named A(x1, y1, z1), B(x2, y2, z2) and C(x3, y3, z3)
Transaction 1
      Begin;
        Read(x); //mutex readlock on A(x1), B(x2), C(x3)
        Write (y); //mutex writelock on A(y1), B(y2), C(y3)
     End;
      // mutex read-write unlock
Transaction 2
      Begin;
        Read(x,y,z); //mutex readlock on A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3)
       Write (z); //mutex writelock on A(z1), B(z2),C(z3)
     End;
      // mutex read-write unlock
Transaction 3
      Begin;
        Read(z); //mutex readlock on A(z1),B(z2),C(z3)
        Write (x); //mutex writelock on A(x1),B(x2),C(x3)
      End;
     // mutex read-write unlock

In Scenario 2,
Transaction 2 has to wait till the Transaction 1 to unlock\release the lock to read x,y,z and write to z
Transaction 3 has to wait till the Transaction 2 to unlock\release the lock to read z and write to x

About the author

My name is Xavier Dilip Kumar Jayaraj having 13+ years of IT experience which includes solid experience and depth Knowledge in Application Life Cycle Management, Configuration Management, Implementation and Support using TFS on-premises and Azure DevOps. I have invested in gaining DevOps knowledege to expertise with Cloud Computing providers namely Microsoft Azure and Amazon Web Services in recent years. I am very positive to learn and adapt emerging technologies to client’s environment.

DevOps Engineer Certificate Program | Transcript | ePortfolio

Microsoft Certified: Azure Administrator Associate

[PCEP-30-01] PCEP – Certified Entry-Level Python Programmer

Quotes I Like

"Failure will never overtake me if my determination to succeed is strong enough."  - Dr. APJ. Abdul Kalam

"Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it." - Bruce Lee

"Technology is just a tool. In terms of getting the kids working together and motivating them, the teacher is the most important." - Bill Gates

"Innovation distinguishes between a leader and a follower." - Steve Jobs

CategoryList

Disclaimer

The information provided here is based on my expreriences, troubleshooting and online/offline findings. It can be used as is on your own risk without any warranties and I impose no rights.