Exactly what it says on the tin.

This commit is contained in:
alisolarflare 2017-06-21 23:53:55 -04:00
parent d25a0536ba
commit 6a344eee0a

View file

@ -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