📄 readme.pastry
字号:
README.pastryContained in this file are notes on Duke's MACEDON implementations ofPastry, Scribe, and SplitStream. There are two versions each of Scribe andSplitStream: the ones marked 'ms' are the implementations as we understoodthem to be at the time of the SOSP conference, and the SplitStream paperspublished therein, and the others reflect changes described to us by AnsleyPost, which we understand to be revisions to the original SplitStreamprotocol.The basic differences between sosp and non-sosp versions:- Instead of a spare capacity group, anycast joins are sent through the actual stripe tree.- Instead of keeping a nodes visited list on the anycast messages, a nodes-to-visit list is maintained.- Scribe heartbeats were removed, and Scribe liveness was used instead to detect failures in the multicast tree (see problem 2)Known Issues and Questions:1. There is some challenge dealing with the source of the information. On whether it should participate in Scribe join or not. In the current implementation -- the Scribe sender automatically ignores (forwards) join messages unless the sender also happens to be the root of the tree.2. The removal of Scribe heartbeats makes it possible for network delays or dropped packets to cause multiple nodes to believe they are the parent for a particular child. This causes bandwidth waste, and in bw constrained networks causes data delivery to be hindered.3. There is the challenge of a node determining an appropriate number of children to allow, both in SS and in Scribe. Allowing more than the link allows can be problematic. What is a good way to set this in practice?4. Our current implementation uses 32 bit keys, not 160 bit keys.5. How best to implement Scribe's "routeIP", that is -- sending directly to the pastry node the hash resolves to. Our implementation uses a simple cache to manage id->ip mappings;6. The Scribe paper says that on receiving a pushdown, the peers are probed for latency. Out implementation does not do this on pushdowns.7. Scribe path compression is not implemented8. An optimization in the SS paper (only keeping the path to root when needed) is not implemented. Can you describe this in more detail? We are very interested in discussing with you differences which you notice between our implementations and your own. Please contact us at macedon@kcubes.com,with questions.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -