2 Replies Latest reply on Nov 2, 2012 2:43 AM by Vasilij_M

    Delay in transmission after some period on p2p object replication.

    Vasilij_M

      Sample:

                Provider every 1 sec generate some data and do netGroup.addHaveObjects(thisDataID, thisDataID);

                On Reciever netGroup.addWantObjects(0, 10000)  or  every 1 sec Reciever netGroup.addWantObjects(thisDataID, thisDataID)

       

      What I get on Localhost/LocalNetwork:

           after every 10 seconds Donloading/Uploading goes delay about 10 sec long. No chunks is sent or received.

       

      Internet

                Data flows, but after some period of time goes delay.

       

      Question is: how to reduce or remove this delay???

       

      (Tested on Win7, cirrus: FP debug 11.2.202.235, Chrome FP 11.1.102.63, Opera FP 11.4.402.265 etc.)

        • 1. Re: Delay in transmission after some period on p2p object replication.
          Michael Thornburgh Adobe Employee

          object replication is designed and tuned for fully reliable and reasonably fair diffusion of large amounts of data.  it is not tuned for real-time distribution.  the "recompute which neighbors have what data" timer fires every 10 seconds, which is what you're observing.  the 10 second timer duration is compiled into RTMFP and can't be changed from ActionScript.

           

          if you require full reliability but you also want timely delivery, and only one peer is sending data, you could do a hybrid of P2P multicast (with NetStream.send()) and object replication. you could do a removeWantObjects() on receiving the data over multicast, and maybe delay doing an addHaveObjects() of the new sequence numbers for at least the multicast window duration + relay margin duration to try to avoid duplicating data on the network.

          • 2. Re: Delay in transmission after some period on p2p object replication.
            Vasilij_M Level 1

            Thank you for the quick previous answer. I would like to express my admiration for нour work - mfp and rtfmp!

            And I have some questions:

            1.

            "you could do a removeWantObjects() on receiving the data over multicast, and maybe delay doing an addHaveObjects() of the new sequence numbers"

            Honestly, I spent more than an hour trying to understand what I have to do.....

            Can you describe in more detail?

             

            2.

            "recompute which neighbors have what data" timer fires every 10 seconds".

            But why nothing is sent within 10 seconds? The recomputing lasts these 10 seconds?

             

            3. As I understand it is impossible from ActionScript to know what ID I added in addWantObj or addHaveObj?

             

            4. When I "addWantObj"/"addHaveObj". Then over the network are transmitted only new ID, which just added, or all of them?

            They will be sent immediately or after some delay? Or will somehow grouped and send?

            Would like to clarify. It is about numbers. Not the data blocks!

            Example:

            addHaveObj(10001, 10100);

            addHaveObj(20002, 20200);  -> and FP send (I have: 20002-20200).  Or (I have: 10001-10100,  20002-20200).

             

            Thank you!