ButtonPresents/An algorithmn for server backups.txt
2017-06-21 23:53:55 -04:00

72 lines
2.9 KiB
Text

0 1 2 3 4 5 6 7 8 9 0
X
X X
X X X
X - X X
X - X X X
X - X - X X
X - X - X X X
X - X - X - X X
X - X - X - X X X
X - - - X - X - X X
when 4 in a row, delete 2nd
0 1 2 3 4 5 6 7 8 9 0
1
1 1
1 1 1
2 - 1 1
2 - 1 1 1
2 - 2 - 1 1
2 - 2 - 1 1 1
2 - 2 - 2 - 1 1
2 - 2 - 2 - 1 1 1
3 - - - 2 - 2 - 1 1
3 - - - 2 - 2 - 1 1 1
3 - - - 2 - 2 - 2 - 1 1
3 - - - 2 - 2 - 2 - 1 1 1
3 - - - 3 - - - 2 - 2 - 1 1
3 - - - 3 - - - 2 - 2 - 1 1 1
3 - - - 3 - - - 2 - 2 - 2 - 1 1
3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
3 - - - 3 - - - 3 - - - 2 - 2 - 1 1
3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1
4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1
5 - - - - - - - - - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1
The amount of data used, compared to data requested to save... is at most 3 * log2(n)
In other words, you can "save" 10000 data points, and have the algorithm back up only 3 * log2(n) of them
This means that... we can back up the server. Every hour. Every day. For 40 years. And only use 20 storage slots
Problem is that inserting a new element may cause a chain reactin where data gets deleted and deleted. At worst case, it could be log(n)
If deleting server backups take time... then we should probably run server backups asyncronously or at off-hours of the server time
Still, this backup method is incredibly helpful.
2^n / 3