Slide 23
Slide 23 text
v5 | Distributed
Coordinator
Coordinator
Executor
• Coordinators are v5 machines with few objects.
The objects mapping tables, and the balancer process.
Handle easily 2B objects without hitting the disk on a 64G machine
• Executors are v5 machines that execute operations
create, delete, read, write, …
• If a write arrives on a server not containing the object
that write will be passed to the correct server, since
the internal bandwidth should be higher than the user one.
Object-ID Replica 0 Replica 1 Replica 2 Next
State
Object Location Table
Machine Address
Machine Address Set
Machine Address Entry
2 ^ 16 machines = 65,536
IPv6 length = 16 bytes full machine name 64 bytes
(65,536 * 16) = 1MiB (65,536 * 64) = 4MiB
(1,000,000 * 16) = 16MB (1,000,000 * 64) = 64MB
Object Location Entry
12 oid + (2 * 3) replicas + 2state + 4next = 24
1GiB / entry = 44,739,242 = 44M objects (< 2^26)
4GiB / entry = 178,956,970 = 178M objects (< 2^28)
24GiB / entry = 1,073,741,824 = 1B objects (2 ^ 30)
96GiB / entry = 4,294,967,296 = 4B objects (2^32)
uint64_t
200Kreq/sec = 2,924,712 years
200Mreq/sec = 2,924 years
200Greq/sec = 2.9 years
uint96_t
1T req/sec = 38,334 years
10G req/sec * 65,536machines = 58 years
…just an other rpc plugin at the RPC level.
and it uses the “client api” like any other client,
because if we need to implement
another log at this level
we have done something wrong on the storage layer
(see the first slide :D)