diff --git a/An algorithmn for server backups.txt b/An algorithmn for server backups.txt new file mode 100644 index 0000000..3467701 --- /dev/null +++ b/An algorithmn for server backups.txt @@ -0,0 +1,72 @@ +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 + + +