3 Replies Latest reply on Sep 29, 2010 1:51 PM by Michael Thornburgh

    Object replication availability


      I am working on a file sharing program.

      When clients try to download a file. I want to check the availability of that file, to see whether all chunks are available.

      Sometimes publisher stop sharing their files after a while. I don't want clients wait blindly.


      Is there anyway to do this?



        • 1. Re: Object replication availability
          Michael Thornburgh Adobe Employee

          unfortunately that information is not available directly from the object replication system to ActionScript.  it probably should be, though.

          • 2. Re: Object replication availability
            Michael Thornburgh Adobe Employee

            note that the local node only sees availability information from its directly connected neighbors in the object replication system.  so even if your neighborhood doesn't have every index, it's still possible that each index might still be present *somewhere* in the mesh, and therefore the replication might still eventually succeed.


            also note that even if all indices aren't in the mesh right now, 1) useful progress toward replicating the indices that are present can still be made; 2) peers with the missing indices may (re)join in the future so that the replication can be completed.


            measuring mesh-wide index availability in a scalable fashion is a hard problem.  a first instinct might be to have each member periodically post its availability, but that will overwhelm the group when the number of members is large.  a better approach might be to use directed routing to summarize mesh availability on a hop-by-hop basis toward one (or more, for reliability during group churn) "responsible parties", which would then periodically post the summary information to the whole group.  however, this approach is fairly complicated.  i'd classify this as an "expert P2P and distributed systems" level approach to the problem.


            there may be even more elegant, robust, and scalable solutions to this problem, using a gossip-style algorithm to have all nodes converge on the answer together.

            • 3. Re: Object replication availability
              Michael Thornburgh Adobe Employee

              here's a link to a paper describing a gossip/epidemic approach to this problem:




              the trick is creating the "aggregate()" function appropriately.  proper aggregation is also an issue in the "route toward summary node" approach; however, the summary node approach simplifies part of the aggregation problem because the aggregation path is acyclic.