[2016-12-26 17:59]
講師 本多倫夫氏 登場
PASTE: Network Stacks Must Integrate with NMVM Abstructions
- NVMMs: non-volatile main memories
- persistent
- byte-addressable
- low latency: 10s-1000s o ns (お値段による)
- ファイル名が永続化するためのしくみ、とも考えられる。
- direct mmap()-ed files
- data structureが変ったらネットワークスタックはどう変るか?
- case study: WAL(write ahead logging)
- B-tree(メタデータ)のアップデートは時間がかかるので一旦logに書いてclientにackを返す。
- データの流れ: client -> server: nic->dram->networkstack->(read)->app->(write/fsync,memcpy/msync)->storagestack->storage->..
- 実験:
- NVMe: 2000us。ネットワークはやれることはない。ストレージで律速。
- NVMM: 42usくらいでおわる。ネットワークでやれることがある。
- 実際には並列アクセスされるのでNVMMをつかっても(ネットワークだけストレージなしの時よりも)スループット/レイテンシは落ちる。
- NVMMつかっても、まだまだ永続化するコストがある → メモリコピーによるキャッシュミス
- rx_buf→app_bufのコピーはapp_bufが固定なので(キャッシュヒットして)コストは安い。
- app_buf→log_file(NVMM)は毎回違う場所になるのでキャッシュミスしてコスト高い。
- DDIOがあるのでNIC受信はLLC(last level cache)にいきなりヒットするのでキャッシュミスがすくない。
- kernel内のmemcpyはユーザ空間のmemcpyに比べて最適化されてない?のでキャッシュミスが多くなる。
- 受信バッファ(in kernel)をNVMMに置けば解決。/mnt/nvmm/pktbufs とか。ログは /mnt/nvmm/appmd (アプリメタデータ) に。
- FAST Logging with PASTE
- NICがrecvした段階ではLLCに乗っているだけでflush(clflush)してはじめて永続化する。
- clflushはキャッシュライン単位でフラッシュする。msyncはページ単位。
- データはNVMMのポインタをコピーすることでmemcpy回避(コピーするのはメタデータだけにする)。
- netmapを改造して実装。 pkg-gen -i eth1@/mnt/pmem/bufs -f rx
- tcp/ipはstackmapをつかっている(先行研究)。
- ざっくり thruput 10%up, latency 40%up した。
- 関連研究:
- NVMM関係ないネットワークスタック(高速ネットワーク)
- NVMMつかったファイルシステム(高速ファイルシステム)
- NVMMだけどRDMAつかってネットワークスタック関係ない(HPC系)
- まとめ:
- RDMAはどこでもつかえるわけじゃない!
- 単体で改善するだけでは十分じゃない!
[2016-12-26 18:31]
- Q: clflushをlazyにできるときもあるとおもうが
- A: writeのlatencyが長いNVMM(3dxpointとか)もあるので、アプリがLLCをflushするかどうか決めるようにしている。トランザクションの永続化要求はアプリによってちがう。multi-coreのときにスケールしないかもしれないのはfuture work.
- Q: いま売られているものと今後でてくるものはちがってくるとおもうが、どうなる?
- A: いま売られているのはbattery-backupedで速いやつなので、3dxpointみたいな遅めのやつでは.. 研究者はfpgaでemulatorかdramで実験している。
- Q: フラグメントしない?
- A: ほんとうに保存(リングバッファから別の領域に?)しおわってはじめて回収できるようになる。netmapでdouble bufferingがあるので穴あきもんだいはok。
[2016-12-26 18:39]
Report on ACM HotNets 2016
- 90人くらいなので学内ワークショップなフレンドリーな雰囲気。
- frontier network: 辺境の地でのネットワーク
- MPTCPでマルチホームのときに他のISPにトラフィックをおしつけたり
- RDMAが流行り
- datacenterでマルチリンクのときにトポロジをどうするとか
- RDMAでpriority-basedだとデッドロックしちゃうのでどうしようとか
[2016-12-26 18:48]
- Q: もりあがってた話題は?
- A: 発表時間がかぎられているので、どの話題もそれほどもりあがらない。
- Q: 気になったのは?
- A: internet blockchain(BGP,DNSをやめようというやつ)がおもしろかった。
- Q: MPTCP ホットポテト問題? (ホットポテトってこれか?)
- A: ISP間の公平性の問題提起。appleがECNでREDやってるけどISPでもやるの?とか。
[2016-12-26 18:52]
- Q: ネットワークスタックをどうかえたい? pullupじゃなくて、とか。
- A: netmapはlinuxには絶対入らないし、freebsdにはNVMMがないし、アプリ専用のスタックをつくるのは懐疑的(カーネル内のプロトコルスタックは複雑なので触りたくない)。
- FreeBSD: RAMとして見えるけどpageをどうみせるとかグルーの部分がぜんぜんない。そもそも人がいない...
- Q: RDMAきらい?
- A: LLCにRDMAする話はきかないし、あまり議論するつもりがない。(ちなみに会議にはHPC屋はいなかった)
- Q: DDIOは3種類: 1:ringbufだけ、2:メタデータも、3:ペイロードも。
- A: ペイロードありで実験している。
[2016-12-26 18:59]
飯田橋駅工事中で、西口に活気がない感じがした。