lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

in-network-computing.md (1687B)


      1 +++
      2 title = 'In-network computing'
      3 +++
      4 
      5 ## In-network computing
      6 ### Implementing in-network caching service
      7 Key-value storage that meets aggressive latency and throughput objectives efficiently.
      8 
      9 Target workloads: small objects, read intensive, highly skewed and dynamic key popularity
     10 
     11 Use PISA for key-value store:
     12 - programmable parser: parse custom key-value fields in packet header
     13 - programmable match-action pipeline
     14   - read and update key-value data
     15   - provide query statistics for cache updates
     16 
     17 How to identify app-level packet fields:
     18 - NetCache packet has some data - operation, sequence, key, value
     19 - only top-of-rack switch needs to parse those fields
     20 
     21 How to store and serve variable-length data on switches:
     22 - use register array, fetch using index
     23 - for variable, either use action data to hold indices, or multiple register arrays with same index
     24 - two-level lookup: bitmap indicates arrays that store key's value, index shows slots in arrays to get value
     25 
     26 Efficiently keep cache updated:
     27 - cache hottest O(NlogN) items with limited insertion rate
     28 - cached key: per-key counter array
     29 - uncached key: count-min sketch (report new hot keys), bloom filter (remove duplicate hot key reports)
     30 
     31 ### Implementing in-network coordination service
     32 In-network coordination is communication-heavy, not computation-heavy
     33 
     34 Use set of coordination switches to run consensus protocol
     35 
     36 NetChain design goals: high throughput, low latency, consistency, fault tolerance
     37 
     38 Chain replication: consistency & fault tolerance
     39 - storage nodes organized in chain structure
     40 - handle operations: read from tail, write from head to tail
     41 
     42 Because of replication, tolerates f-1 failures for f nodes.