-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate PPAF with other cross region availability functionality. #44099
Open
jeet1995
wants to merge
129
commits into
Azure:main
Choose a base branch
from
jeet1995:IntegratePPAFWithCrossRegionAvailabilityFunctionality
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Integrate PPAF with other cross region availability functionality. #44099
jeet1995
wants to merge
129
commits into
Azure:main
from
jeet1995:IntegratePPAFWithCrossRegionAvailabilityFunctionality
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…zure-sdk-for-java into PerPartitionAutomaticFailover
…rPartitionAutomaticFailover
…rPartitionAutomaticFailover # Conflicts: # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/GlobalPartitionEndpointManagerForPerPartitionCircuitBreakerTests.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/faultinjection/SessionRetryOptionsTests.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Configs.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/perPartitionCircuitBreaker/GlobalPartitionEndpointManagerForPerPartitionCircuitBreaker.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/perPartitionCircuitBreaker/LocationSpecificHealthContextTransitionHandler.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/query/ChangeFeedFetcher.java
…array of array of nos.
…rPartitionAutomaticFailover # Conflicts: # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java
…rPartitionAutomaticFailover # Conflicts: # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Configs.java
…rPartitionAutomaticFailover
…sdk-for-java into PerPartitionAutomaticFailover # Conflicts: # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/ClientRetryPolicyTest.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/RenameCollectionAwareClientRetryPolicyTest.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/RxGatewayStoreModelTest.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/ThinClientStoreModelTest.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ClientRetryPolicy.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ClientSideRequestStatistics.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/routing/LocationCache.java
…rPartitionAutomaticFailover # Conflicts: # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/ClientRetryPolicyTest.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/RenameCollectionAwareClientRetryPolicyTest.java # sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/implementation/RxGatewayStoreModelTest.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ClientRetryPolicy.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ClientSideRequestStatistics.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/routing/LocationCache.java
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality # Conflicts: # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/perPartitionCircuitBreaker/GlobalPartitionEndpointManagerForPerPartitionCircuitBreaker.java # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/routing/LocationCache.java
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality
/azp run java - cosmos - tests |
Azure Pipelines successfully started running 1 pipeline(s). |
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality # Conflicts: # sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/routing/LocationCache.java
/azp run java - cosmos - tests |
/azp run java - cosmos - spark |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
…rPartitionAutomaticFailover
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality
…zure-sdk-for-java into IntegratePPAFWithCrossRegionAvailabilityFunctionality
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces region routing decision making when several high availability settings are enabled together namely - Per-Partition Circuit Breaker (PPCB), Per-Partition Automatic Failover (PPAF), Exclude Regions and Cross-Region Availability Strategy.
It also enables PPCB for document reads (basically point reads, queries, read all, read many) against a single-write multi-region CosmosDB account.
Thought Process
Consider an applicable region list which is an SDK-internal list to determine regions a request could go to. This is computed by first evaluating what are the intersecting regions between the user-provided preferred regions and the regions for the account. Then regions are excluded based on user-provided exclude regions.
Region Augmentation
Some examples
Let's take a Multi-Write 3-Region Account and Single-Write 3-Region Account with regions
NCUS
,WUS
andCUS
. LetNCUS
be the write region in both account types.Legend
Multi-Write 3-Region Account
NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]NCUS
,WUS
,CUS
]NCUS
]WUS
]CUS
,WUS
]NCUS
]WUS
]CUS
,WUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]NCUS
,WUS
,CUS
]NCUS
]WUS
]CUS
,WUS
]NCUS
]WUS
]CUS
,WUS
]Single-Write 3-Region Account
NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]NCUS
,WUS
,CUS
]NCUS
]WUS
]CUS
,WUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
], O: <WUS
>}WUS
]WUS
NCUS
,WUS
,CUS
]NCUS
], O: <WUS
>}NCUS
,WUS
,CUS
]WUS
NCUS
], O: <WUS
>}WUS
,NCUS
]WUS
NCUS
,WUS
,CUS
]NCUS
], O: <WUS
>}WUS
]WUS
NCUS
]WUS
,CUS
]NCUS
], O: <WUS
>}WUS
,NCUS
,CUS
]WUS
NCUS
,WUS
,CUS
]NCUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
]NCUS
,WUS
,CUS
]NCUS
,WUS
,CUS
]NCUS
], O: <WUS
>}WUS
]WUS
NCUS
,WUS
,CUS
]NCUS
], O: <WUS
>}WUS
]WUS
NCUS
], O: <WUS
>}WUS
]WUS
NCUS
,WUS
], O: <CUS
>}CUS
]CUS
Issues closes
closes #43896
closes #43897
closes #43898
All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines