485 |
=================== |
=================== |
486 |
|
|
487 |
In Storm, all data is stored |
In Storm, all data is stored |
488 |
as *blocks*, byte sequences identified by a SHA-1 |
as *blocks*, immutable byte sequences identified by a SHA-1 |
489 |
cryptographic content hash [fips-sha-1]_. |
cryptographic content hash [fips-sha-1]_. |
490 |
Purely a function of a block's content, block ids |
Purely a function of a block's content, block ids |
491 |
are completely independent of network location. |
are completely independent of network location. |
492 |
Blocks have a similar granularity |
Blocks have a similar or somewhat finer granularity |
493 |
as regular files, but they are immutable, since any change to the |
as regular files, but they are immutable, since any change to the |
494 |
byte sequence would change the hash (and thus create a different block). |
byte sequence would change the hash (and thus create a different block). |
495 |
Mutable data structures are built on top of the immutable blocks |
Mutable data structures are built on top of the immutable blocks |
521 |
web cache [iyer02squirrel]_; however, downloads can be |
web cache [iyer02squirrel]_; however, downloads can be |
522 |
from *any* peer since the source does not need to be trusted. |
from *any* peer since the source does not need to be trusted. |
523 |
On the other hand, there are privacy |
On the other hand, there are privacy |
524 |
concerns with exposing one's browser cache to the outside world. |
concerns with exposing one's cache to the outside world. |
525 |
|
|
526 |
To replicate all data from computer A |
To replicate all data from computer A |
527 |
on computer B, it suffices to copy all blocks from A to B that B |
on computer B, it suffices to copy all blocks from A to B that B |
531 |
each version will be stored in its own block with its own id. |
each version will be stored in its own block with its own id. |
532 |
In contrast, a system based on mutable resources |
In contrast, a system based on mutable resources |
533 |
has to use more advanced schemes, for example merging the changes |
has to use more advanced schemes, for example merging the changes |
534 |
done to a document at A or B. (Merging is still be necessary |
done to a document at A or B. (Merging is still necessary |
535 |
when a user wants to incorporate a set of changes, but not |
when a user wants to incorporate a set of changes, but not |
536 |
required at replication time.) |
required at replication time.) |
537 |
|
|