Skip to content

Commit 0bab576

Browse files
committed
Copyedits
1 parent 217fe08 commit 0bab576

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

articles/service-fabric/concepts-managed-identity.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Managed identities for Service Fabric is only supported in Azure-deployed Servic
4040

4141
2. Within the application's definition, map one of the identities assigned to the application to any individual service comprising the application.
4242

43-
The system-assigned identity of an application is unique to that application; a user-assigned identity is a standalone resource, which may be assigned to multiple applications. Within an application, a single identity (whether system-assigned or user-assigned) can be assigned to multiple services of the application, but each individual service can only be assigned one identity. Lastly, a service must be assigned an identity explicitly to have access to this feature. In effect, the mapping of an application's identities to its constituent services allows for *in-application isolation* — a service may only use the identity mapped to it.
43+
The system-assigned identity of an application is unique to that application; a user-assigned identity is a standalone resource, which may be assigned to multiple applications. Within an application, a single identity (whether system-assigned or user-assigned) can be assigned to multiple services of the application, but each individual service can only be assigned one identity. Lastly, a service must be assigned an identity explicitly to have access to this feature. In effect, the mapping of an application's identities to its constituent services allows for in-application isolation — a service may only use the identity mapped to it.
4444

4545
Currently, the following scenarios are supported for this preview feature:
4646

@@ -61,9 +61,8 @@ The following scenarios are not supported or not recommended; note these actions
6161
6262
## Next steps
6363

64-
- [Deploy a new Azure Service Fabric cluster with managed identity support](./configure-new-azure-service-fabric-enable-managed-identity.md)
65-
- [Enable managed identity support in an existing Azure Service Fabric cluster](./
66-
configure-existing-cluster-enable-managed-identity-token-service.md)
64+
- [Deploy a new Azure Service Fabric cluster with managed identity support](./configure-new-azure-service-fabric-enable-managed-identity.md)
65+
- [Enable managed identity support in an existing Azure Service Fabric cluster](./configure-existing-cluster-enable-managed-identity-token-service.md)
6766
- [Deploy an Azure Service Fabric application with a system-assigned managed identity](./how-to-deploy-service-fabric-application-system-assigned-managed-identity.md)
6867
- [Deploy an Azure Service Fabric application with a user-assigned managed identity](./how-to-deploy-service-fabric-application-user-assigned-managed-identity.md)
6968
- [Leverage the managed identity of a Service Fabric application from service code](./how-to-managed-identity-service-fabric-app-code.md)

articles/service-fabric/service-fabric-reliable-services-reliable-collections-transactions-locks.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
title: Transactions And Lock Modes in Reliable Collections
33
description: Azure Service Fabric Reliable State Manager and Reliable Collections Transactions and Locking.
4-
54
ms.topic: conceptual
65
ms.date: 5/1/2017
6+
ms.custom: sfrev
77
---
88
# Transactions and lock modes in Azure Service Fabric Reliable Collections
99

@@ -13,7 +13,7 @@ A transaction is a sequence of operations performed as a single logical unit of
1313

1414
* **Atomicity**: A transaction must be an atomic unit of work. In other words, either all its data modifications are performed, or none of them is performed.
1515
* **Consistency**: When completed, a transaction must leave all data in a consistent state. All internal data structures must be correct at the end of the transaction.
16-
* **Isolation**: Modifications made by concurrent transactions must be isolated from the modifications made by any other concurrent transactions. The isolation level used for an operation within an ITransaction is determined by the IReliableState performing the operation.
16+
* **Isolation**: Modifications made by concurrent transactions must be isolated from the modifications made by any other concurrent transactions. The isolation level used for an operation within an [ITransaction](https://docs.microsoft.com/dotnet/api/microsoft.servicefabric.data.itransaction?view=azure-dotnet) is determined by the [IReliableState](https://docs.microsoft.com/dotnet/api/microsoft.servicefabric.data.ireliablestate?view=azure-dotnet) performing the operation.
1717
* **Durability**: After a transaction has completed, its effects are permanently in place in the system. The modifications persist even in the event of a system failure.
1818

1919
### Isolation levels
@@ -40,24 +40,26 @@ Following is the table that depicts isolation level defaults for Reliable Dictio
4040
> Common examples for Single Entity Operations are `IReliableDictionary.TryGetValueAsync`, `IReliableQueue.TryPeekAsync`.
4141
>
4242
43-
Both the Reliable Dictionary and the Reliable Queue support Read Your Writes.
43+
Both the Reliable Dictionary and the Reliable Queue support *Read Your Writes*.
4444
In other words, any write within a transaction will be visible to a following read
4545
that belongs to the same transaction.
4646

4747
## Locks
48+
4849
In Reliable Collections, all transactions implement rigorous two phase locking: a transaction does not release
4950
the locks it has acquired until the transaction terminates with either an abort or a commit.
5051

51-
Reliable Dictionary uses row level locking for all single entity operations.
52+
Reliable Dictionary uses row-level locking for all single entity operations.
5253
Reliable Queue trades off concurrency for strict transactional FIFO property.
53-
Reliable Queue uses operation level locks allowing one transaction with `TryPeekAsync` and/or `TryDequeueAsync` and one transaction with `EnqueueAsync` at a time.
54+
Reliable Queue uses operation-level locks allowing one transaction with `TryPeekAsync` and/or `TryDequeueAsync` and one transaction with `EnqueueAsync` at a time.
5455
Note that to preserve FIFO, if a `TryPeekAsync` or `TryDequeueAsync` ever observes that the Reliable Queue is empty, they will also lock `EnqueueAsync`.
5556

5657
Write operations always take Exclusive locks.
57-
For read operations, the locking depends on a couple of factors.
58-
Any read operation done using Snapshot isolation is lock free.
59-
Any Repeatable Read operation by default takes Shared locks.
60-
However, for any read operation that supports Repeatable Read, the user can ask for an Update lock instead of the Shared lock.
58+
For read operations, the locking depends on a couple of factors:
59+
60+
- Any read operation done using Snapshot isolation is lock-free.
61+
- Any Repeatable Read operation by default takes Shared locks.
62+
- However, for any read operation that supports Repeatable Read, the user can ask for an Update lock instead of the Shared lock.
6163
An Update lock is an asymmetric lock used to prevent a common form of deadlock that occurs when multiple transactions lock resources for potential updates at a later time.
6264

6365
The lock compatibility matrix can be found in the following table:
@@ -68,17 +70,15 @@ The lock compatibility matrix can be found in the following table:
6870
| Update |No conflict |No conflict |Conflict |Conflict |
6971
| Exclusive |No conflict |Conflict |Conflict |Conflict |
7072

71-
Time-out argument in the Reliable Collections APIs is used for deadlock detection.
73+
The timeout argument in Reliable Collections APIs is used for deadlock detection.
7274
For example, two transactions (T1 and T2) are trying to read and update K1.
7375
It is possible for them to deadlock, because they both end up having the Shared lock.
74-
In this case, one or both of the operations will time out.
75-
76-
This deadlock scenario is a great example of how an Update lock can prevent deadlocks.
76+
In this case, one or both of the operations will time out. I this scenario, an Update lock could prevent such a deadlock.
7777

7878
## Next steps
79+
7980
* [Working with Reliable Collections](service-fabric-work-with-reliable-collections.md)
8081
* [Reliable Services notifications](service-fabric-reliable-services-notifications.md)
8182
* [Reliable Services backup and restore (disaster recovery)](service-fabric-reliable-services-backup-restore.md)
8283
* [Reliable State Manager configuration](service-fabric-reliable-services-configuration.md)
8384
* [Developer reference for Reliable Collections](https://msdn.microsoft.com/library/azure/microsoft.servicefabric.data.collections.aspx)
84-

0 commit comments

Comments
 (0)