Talk:P2P Backup Network

From Strugglers
Jump to: navigation, search

Retention Time

There should be a guarenteed minimum amount of time that a user's backed up data is kept after that user disappears from the network. If I'm participating in the p2p network, but then I have a disk crash that causes me to leave it, I need to know that when I get my replacement drive in a weeks time, my backups will still be existing on the p2p network for me to do the restore.

Perhaps there could be different time limits depending on the priority of the data as described on the main page.

--Matt 12:08, 13 November 2005 (UTC)

I was thinking that the instant removal of files/credits would only apply for the data that a user is storing for someone else. It doesn't matter why they went offline or for how long, the point is that the data is no longer accessible to the person who wants it stored, so they should be refunded the credits in the hope that other users would pick up the slack.
Say Anna has 1MB of files mirrored by Bob and Charlie but then Bob goes offline. As soon as the P2P network discovers that Bob is gone Anna should get back the credits that she had "paid" to Bob to host that 1MB for her. Then the next peer that comes along, Derek, can offer to download this block.
If Bob comes back online then his client would contact Anna's and ask what the offer price is for continuing to mirror the block. There probably needs to be some sort of bonus applied to blocks that are already downloaded since if Anna offers a good enough price then Bob instantly can be a mirror instead of having to wait to download it.
If Anna offers the same or more than either Charlie or Derek then the transaction can be made immediately and Bob retains the block, otherwise Bob's client will delete the block and replace it with a block downloaded from Charlie or Derek.
As regards the mirrored blocks of peers who have gone offline: their mirrored blocks need to remain mirrored for a long time, let's say 30 days. This does pose a problem because at any time there can be vast numbers of users that have data mirrored but are offline.
For example, taking the users from above, if Anna goes offline then Bob and Charlie have to continue mirroring her 1MB. They can't use this 1MB of disk space for mirroring other peers' data. If Anna doesn't return for 30 days then Bob and Charlie could delete these blocks.
Andy 00:08, 20 November 2005 (UTC)

Amount of data

I've just been wondering about how much disk space I'm going to need for everyone's backups. I suppose that if I need 10GB of my data backed up (that's assume the 10GB is a total of whatever master + incremental backups I want), then I suppose that I'd want say 10 people to back up that data? So really I need to be backing up 10GB for each of them so 100GB total. Seems reasonable, though I wonder whether 10 people is enough... I suppose that depends a lot on how reliable the people on the p2p network are, how often people are joining/leaving etc...

This brings up some other questions. Say I'm person A and my data gets backed up by C, D and E. I have a failure and I'm off the network for a week. During this time C and D leave the p2p network. Person F joins the network too. Will F start getting backups of my data from E?

--Matt 12:41, 13 November 2005 (UTC)

As the number of online copies of your data increases, your offer price for the data should go down, so that the coverage of the whole network's mirorring is broad. If you really wanted there to be more copies then you could keep the offer price high, but I thnk it would be best to set a goal for how many mirrors you absolutely require and then drop the price gradually after that.
I think you are generally correct that vastly more space will need to be availabel compared to shared files though. Need some examples!
Andy 00:08, 20 November 2005 (UTC)

Example

User Blocks to mirror Blocks available
Anna 10 100
Bob 100 10
Charlie 1 200

All users come online simultaneously with no mirrored blocks and a loan of 1 credit. Assume all have the same bandwidth to each other such that transferring one block between any two clients will take one time unit, but each peer can only upload once and download once per time unit. Credits are deducted as soon as a transfer is begun and paid when it has finished. We will consider each peer's downloads in alphabetical order but start with a different peer each round.

T+0

Anna asks Bob and Charlie for offers, both offer 1 credit per block. Anna begins to mirror 1 block from Charlie (random choice).

Bob asks Anna and Charlie for offers. Charlie is broke and Anna offers 1 credit per block, so Bob begins to mirror.

Charlie asks Anna and Bob for offers, Anna is broke so Charlie accepts Bob's offer of 1 credit and begins mirroring.

T+1

User Blocks to mirror Blocks available Own blocks mirrored Peer's blocks mirrored Credits
Anna 9 99 Bob: 1 Charlie: 1 1
Bob 99 9 Charlie: 1 Anna: 1 1
Charlie 0 199 Anna: 1 Bob: 1 1

Bob asks Anna and Charlie for offers. Both offer 1cr/block and Bob picks Anna at random and beings to mirror.

Charlie asks Anna and Bob for offers. Anna is broke and Bob offers 1cr/block so Charlie begins to mirror a block from Bob.

Anna asks Bob and Charlie for offers. Bob is broke and Anna already mirrors all of Charlie's blocks so there is no offer from Charlie either. Anna is unable to mirror this round.

T+2

User Blocks to mirror Blocks available Own blocks mirrored Peer's blocks mirrored Credits
Anna 8 99 Bob: 2 Charlie: 1 0
Bob 98 8 Charlie: 2 Anna: 2 1
Charlie 0 198 Anna: 1 Bob: 2 2

Already exists lol

http://www.csua.berkeley.edu/~emin/source_code/dibs/Kevin

Thanks for the link. This looks like impressive work. However from my brief reading of the documentation it seems it does not attempt to automatically negotiate to backup files but instead relies on the users to make offers ("contracts", in DIBS terminology) with each other. I will have to investigate further, perhaps I am wrong, but at the very least it might provide a good place to start from. — Andy 01:44, 5 January 2006 (UTC)