Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

application (16 bit)

table (16 bit)

address (64 bit)

Approaches

Mapping

DHT

  • + Simple
  • + Natural replication
  • - Latency
    • Address to shard mapping has log(# shards) time in general
    • Can be mitgated for index space tradeoff using radix tree or tries
    • How many levels is too deep? Even 2-3 in the face of cache misses?
  • + Load sharing
  • - More difficult to co-locate related data on a single machine
    • Probably the case that we want to intentionally distrbute related data (more network overhead, but reduces latency because lookups happen on independent machines)
  • Extensible
  • Linear
  • Consistent

B-Trees

  • + Supports range queries on totally ordered keys
  • +/- Allows several records from the same table to be returned with a single request
  • May cause a server to become a hot spot
  • Extensible
  • Linear
  • Consistent
      • RP*

      Hashing

        • Simple
        • Likely to spread the load better
        • If a single request needs multiple records from a table, it's likely to require separate requests to multiple servers, which adds overhead
        • Is this anymore true than with hashing?

      Replication

      Effects

      • + Throughput
        • + Mitgates hot spots
      • + Latency
        • Eliminates cross data center requests
      • - Consistency

      ...