What is the best approach to introduce a new object to replicate to a group after a previous object has been replicated? Imagine, peer A shared object A to the group using addhaveObjects(0, chunks(A)) and all peers successfully replicated that object. Next, peer B wants to share another object B to the same group. By just doing addhaveObjects(0, chunks(B)) this won't do anything as all lower indices (e.g. 0 - 10) have been "used" for the replication of object A already - at least that is what I expect to happen.
So is the best practice to create a new group for the new replication and notify all peers in the current group to join that group? Or should B just start at index chunks(A)+1 for the new object B, i.e. addhaveObjects(chunks(A)+, chunks(A) + 1 + chunks(B))?
Your last guess is the best, "Or should B just start at index chunks(A)+1", except that the object replication space needs not be contiguous so you may start each object at a round value, say objectIndex*1024.
As a note, it may be hard for the "seed" to know when all data it sent has been replicated amongst all; also, some peers may join later. There's nothing wrong, however, with different peers seeding different pieces of content at the same time, just make sure everybody shares all the received chunks.
Europe, Middle East and Africa