My group at Microsoft uses Azure for many of its projects. We have a shared data store that we run as a service in Azure, and some of the goals for this data store included replication to scale out horizontally for distributing read query load fault tolerance for machine failures, network failures, azure upgrades, etc The distributed state machine approach is one option for fault tolerance across…
For a project at work, I implemented the Paxos distributed consensus algorithm. When I first started the project, I needed a mechanism for composable filters over a shared IP port, so that I could execute multiple copies of Paxos on the same port. The Reactive Extensions met that need, but then it was very natural to express the Paxos agents (e.g. proposer, acceptor, learner) in terms of an actor…
I enjoy reading reddit . I have seen some links many times in the past, and I expect to see them again in the future. Unskilled and Unaware of It Dunbar's number Can You Say ... "Hero"? Stanley Milgram was responsible for the Small World Experiment (i.e. six degrees of separation) and Milgram experiment on obedience to authority figures . Unhappy Meals Norman Borlaug Simo Häyhä Franz Stigler North…
If you're excited as I am about Visual Studio Asynchronous Programming , you may already be using a iterator method (such as Asynchronous methods, C# iterators, and Tasks ) to simulate user-space threading. But once you have shared-state concurrency, you may want mutual exclusion . Generally the performance recommendation for shared-state concurrency is to only take locks for a short period,…
There are times when you would like to use a native DLL with ASP.NET, and the ASP.NET compilation process fails with a BadImageFormatException because the compiler and the native DLL are different architectures (e.g. one is x86, and the other amd64) and the compiler will try to open all DLLs in the bin directory. Here is the web.config magic to avoid this issue. In this example, native.dll is the…