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)