1 | Models | HDFS | Cassandra | Redis | MongoDB |
---|---|---|---|---|---|
2 | Clustering | Master | Masterless | Masterless | Multi-master |
3 | Sharding | Policy-based | Range-based | Range-based | Policy-based |
4 | Mutability | Out-of-place | Temporary out-of-place (In-place) | Direct update (in-place) | |
5 | Clustering Mgr Service | ||||
6 | Membership tracking | Centralized | Gossip | Gossip | Central + Distributed |
7 | IO completion with offline replicas | Abort | Continue till quorum | Always continue | Continue till quorum |
8 | Offline replica update | NA | Hinted Handoff | NA | |
9 | Tracking replica lag | Always in-sync | None | None | |
10 | Consensus Mgt Service | ||||
11 | Consensus protocol | Leader-based | Quorum-based | None | Leader-based |
12 | Leader selection protocol | Heuristic | Heuristic | None | Heuristic |
13 | Cluster-wide HA Service | ||||
14 | Data Node failover | Selected node (Master) | Sharded Neighbor | Sharded Neighbor | Selected node (Master) |
15 | Metadata node failover | Failover to backup | Collocated w/ Data | Collocated w/ Data | Clustered MD |
16 | Partition handling | Unavailable (CP) | Cluster-based quorum | Cluster-based quorum | Unavailable (CP) |
17 | Namespace Lookup Service | ||||
18 | Cluster-wide metadata representation | Name-to-resource | Distributed Hashtable | Distributed Hashtable | Name-to-Obj Mgr |
19 | Cluster-wide metadata freshness | Materialized + Derived | Fully derived | Fully derived | Materialized + Derived |
20 | Object lookup | Client-driven | Cluster-driven | Client-driven | Cluster-driven |
21 | Replica lookup | Unlisted | Listed | Listed | Listed |
22 | Consistency Service | ||||
23 | Mutal Exclusion Protocol | Non-blocking | Blocking | Non-blocking | Blocking |
24 | Atomicity Strategy | Single Object - Non-blocking | Single Object - Non-blocking | Single Object- Blocking | Single Object- Blocking |
25 | Ordering | Single Object - Non-blocking | Single Object - Non-blocking | Single Object- Blocking | Multi-object |
26 | Transactional support | None | ME + Atomicity | None | |
27 | Durability Service | ||||
28 | Durability model | Replication | Replication | Replication | Replication |
29 | Replica update model | Async | Async | Async | Async |
30 | Replica byte-level fidelity | Atleast once w/ ordering | Atleast once wo/ ordering | Atleast once w/ ordering | Atleast once w/ ordering |
31 | Replica consistency | Eventual: Monotonic | Eventual: Read-your-writes | Weak | Eventual: Monotonic |
32 | Propogating replica updates | State-based | State-based | Update history | Ops shipping |
33 | Selecting replica coordinator for updates | Delegated primary | Sharded | Sharded | Delegated primary |
34 | Ordering replica updates | Ordered | Unordered | Unordered | Ordered |
35 | Replica selection during reads | Not Applicable | Fastest | ||
36 | Replica placement | Policy | Sharding | Heuristics | |
37 | Replica access | Not accessible | Any replica Read/Write | Any Replica Reads | |
38 | Geo-redundancy protocol | None | Sync + async replicas | ||
39 | Object Manager Service | ||||
40 | Resource Unit | File | File | Mem Address | File |
41 | Namespace-to-resource unit | 1: Many Reosurce Unit | Many:1 Resource Unit | 1:1 | Many:Many |
42 | Per-object Metadata persistence | Separate | Collocated | Collocated | Collocated |
43 | GC schedule | Release -- Return to Free Pool | Major/Minor compact | Release -- Return to Free Pool | Major/Minor compact |
44 | Delete model | Delete Data and Metadata | Delete Data, Tombstome Metadata | Delete Data and Metadata | Delete Data and Metadata |
45 | Buffering/Caching | ||||
46 | Buffer Flushing Model | Explicit Window | Implicit control | None | Implicit control |
47 | Buffering RW Coherence | Using leases | None | Using leases | |
48 | Placement of data caching service | Client | Data Node | ||
49 | Data Caching Strategy | On access | None | ||
50 | Cache Invalidation Protocol | On error | None | ||
51 | Resource Management | ||||
52 | On-disk records | Schema | Data Structure | Data Structure | Data Structure |
53 | Striping across physical resources | Across nodes | Within node | None | Within node |
54 | Managing HW heterogenity | None | Propotional allocation | None | Propotional allocation |