Comments (2)
Looks like the best bet for resolving conflicts when doing routing table updates is to use http://labix.org/govclock. It needs to be brought up to date to work with Go 1, and I need to find a way to send that patch to Gustavo to get it merged in. It seems simple enough (I have a quick and dirty version working now) but there are some unexplained discrepancies (an unknown Bug(string, interface{}) method in tests, mainly) that I'd like to look into a bit more before I feel confident it works as expected. Also need to decide what needs versioning in the vector clock--I'm tempted to say the state table changes for the node sending the state tables, but that could use a bit more thought.
Because lastHeardFrom doesn't actually impact the performance of Wendy (it's provided as a helper method for applications built on Wendy, etc.), I'm not sure the pain to implement a monotonic clock is worth the dubious gains. The method mainly exists for debugging purposes: "gee, I haven't heard from Node X in two days, that's probably why I'm not getting messages from it--it fell off the face of the earth." Worth fixing eventually, perhaps, but not a pressing concern.
Likewise, I'm not sure the timers should not use real time. That's standard Go practice, and I think the cases in which it will be problematic are fairly limited. The only thing I can think of is a clock jump occurring while a message is in transit, and the worst case scenario there is that 1) you get an error (not good, but the algorithm should be built to be error-resilient) or 2) you have a request that takes longer than it's supposed to be able to, which probably isn't the end of the world. Again, definitely a bug, but I'm not sure it's a high enough priority to focus on it now.
The vector clocks, however, should be implemented.
from wendy.
This has been resolved as of the beta1 release. While timeout detection still depends on the local clock, that's the standard Go timeout practice, so I'm going to stick with it. That is the only place the system clock is used now.
from wendy.
Related Issues (14)
- Take another look at the Neighborhood Set HOT 1
- Exit when port is in use HOT 1
- "Detected race condition" HOT 5
- Better end-to-end integration tests HOT 1
- difficult to determine bound port when using auto-assigned port HOT 1
- is there an idiom for ignoring regions? HOT 1
- join announcement is delayed HOT 1
- Wendy crashes when telnetted on listening port. HOT 1
- Implement some sort of handshake
- Stop JSON-encoding Messages HOT 7
- Proposal: Duplicate to nearby nodes HOT 1
- Request for Feedback: Naming and customising HOT 3
- Switch to a trie HOT 2
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 wendy.