Comments (2)
A perfect description of the lease/lock (an analysis of the redlock): http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
In my approach, we don't need expiration, that's given by Orleans, each grain state read breaks any previous lease (possible dead previous grain) and starts it's own. In case the previous grain is not dead, it won't be able to write back it's state and will abort the workflow immediately, though in this case (etag violation) a forced deactivation would be better.
See also:
- http://stackoverflow.com/questions/35248830/how-to-handle-split-brain
- dotnet/orleans#1420 (Deactivate grains upon write conflict)
So I plan to add later an optional break/lease step into Orleans blob storage provider.
I don't know Orleans' activation algorithms, may be this issue is unnecessary/overkill.
from orleans.activities.
Will be implemented by the framework.
dotnet/orleans#2428
from orleans.activities.
Related Issues (20)
- Can it port to .net core? HOT 1
- Use github.io for docs
- NuGet package HOT 1
- Use ico for designers instead of png
- Remove "Modified" comments and dead code from AsyncEx
- DynamicUpdateMap support
- TransactionScope activity support HOT 1
- ReminderTable in DurableReminderExtension doesn't handle Persistence without previous Idle
- WorkflowHost should handle multiple active requests
- CancelWorkflow should complete WF in Canceled and not in Closed state
- Integrate with AppVeyor
- Make factories dependent on grain state HOT 1
- Add support for Invoke() like execution for computational workflows with sample
- Be able to load Completed workflows
- Handle analyser issues
- Use singleton workflowdefinitions in samples
- Update NuGet packages in samples
- Update version badges in Readme.md
- Update BOM in GlobalAssemblyInfo.cs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orleans.activities.