docx, xls
[Drop-box]GFS-Client1 <----> Chunkserver1(linux) ---hb-----------
|
Chunkserver2(linux) --heartbeat -- GFS-Master
|
client2 <----> Chunkserver3(linux) ----hb----------
|
| --------------which chunkserver to contact for file-x----------->
| <--------------------- chunkserver3 ----------------------------
| <------- RW ----------------->

These are stored on gfs-master disk and remotely both.
Purpose?
Tasks Performed
Does not:
Dropbox-space
- User opens a.txt at offset=1000 //1
GFS-CLIENT
converts offset=1000 to index=2 //2
----------- a.txt, index=2----------> GFS-Master
<----chunk_handle=60, chunkserver-replicas---- //3
Caches //4
<key=chunk_index, value=handle>
GFS-CLIENT
connects to nearest replica
----------chunk_handle, start_offset, end_offset-------> Replica
<--------- chunk.. --------------------------------------- Dropbox-space
- User opens a.txt at offset=1000 and writes data-y //1
a.txt,offset=1000 = chunk-x
GFS-CLIENT
Get chunk-server holding lease //2
----------------- chunk-x ----------> GFS-Master
<----chunkserver-replicas list---- //3
Push data to all replicas //4
------------ data-y ----------> chunk-replica-a //5
<-------- ACK ----------------
--- data-y --> chunk-replica-b
<---- ACK ----
--- data-y --> chunk-replica-c
<---- ACK ----Dropbox-space/GFS-Client
Take snapshot //1
--------------------------> GFS-Master
Revoke outstanding leases //2
Logs data to operation log //3
Makes newly created snapshot point to old data //4
GFS-Client
add chunk-x to old file-y on snaphot //5
-----------Find chunk-replica------>
Creates chunk-x on chunk-replica //6
that holds the file-y
------------- Create chunk-x ----------> chunk-replica
//Same as writing to chunkhidden.
|----------------1 Gbps cable------------------------|
switch-1(100 Mbps) switch-2(100Mbps)
| |
|------|--------------|--------| |--------|-----------|--------|
master replica-1 replica-2 16-chunkservers client1 client2 client3 client4