What are the concurrency control mechanism supported by Azure Shared Disks?

Srihari Sridharan 0 Reputation points
2024-04-10T17:09:31.01+00:00

I'm trying to understand the workings of Azure Shared Disks to see if it can be used for an application. However, i'd like to know the concurrency control measures and the isolation levels it provides. Please shed light on this / let me know if any documentation is available for the same. Thanks!

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
7,157 questions
Azure Disk Storage
Azure Disk Storage
A high-performance, durable block storage designed to be used with Azure Virtual Machines and Azure VMware Solution.
572 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Prrudram-MSFT 22,211 Reputation points
    2024-04-10T17:24:54.58+00:00

    Hi @Srihari Sridharan

    Thank you for reaching out to the Microsoft Q&A platform.

    Azure Storage supports both optimistic and pessimistic concurrency control strategies. Azure Storage assigns an identifier to every object stored, which is updated every time a write operation is performed on an object. The identifier is returned to the client as part of an HTTP GET response in the ETag header that is defined by the HTTP protocol.

    A client that is performing an update can send the original ETag together with a conditional header to ensure that an update will only occur if a certain condition has been met. For example, if the If-Match header is specified, Azure Storage verifies that the value of the ETag specified in the update request is the same as the ETag for the object being updated. In addition to selecting an appropriate concurrency strategy, developers should also be aware of how a storage platform isolates changes, particularly changes to the same object across transactions.

    Azure Storage uses snapshot isolation to allow read operations concurrently with write operations within a single partition. Snapshot isolation guarantees that all read operations return a consistent snapshot of the data even while updates are occurring. You can find more information about concurrency control and isolation levels in Azure Storage in the following documentation: https://docs.microsoft.com/en-us/azure/storage/blobs/concurrency-manage

    If I have answered your query, please click "Accept as answer" as a token of appreciation


  2. TP 76,601 Reputation points
    2024-04-10T19:28:12.1433333+00:00

    Hi Srihari,

    Shared disk is typically used for cluster workloads.

    For example, under windows, SQL Server Always On Failover Cluster Instance, Hyper-V failover cluster, scale-out file server, etc. You would install Failover clustering on the servers, create cluster, cluster shared volume, servers would all need to be same version, etc.

    Windows Failover Clustering manages which node writes to the disk so there aren't problems.

    Please click Accept Answer and upvote if the above was helpful.

    Thanks.

    -TP


  3. Alex Bykovskyi 1,831 Reputation points
    2024-04-15T10:15:33.5566667+00:00

    Hey,

    As mentioned, Azure Shared Disks are used to create clusters on multiple instances. Your application should run in Failover Cluster to be able to work with shared disks. https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-azure-shared-disks-manually-configure?view=azuresql

    Might also help with Failover Cluster configuration:

    https://www.starwindsoftware.com/resource-library/starwind-virtual-san-for-hyper-v-2-node-hyperconverged-scenario-with-windows-server-2016/

    Cheers,

    Alex Bykovskyi

    StarWind Software

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    0 comments No comments