## Keynote
Dan Ports
### The Future of Cloud Networking is Systems
- Load Balancer Arch
- traditional -> Modern
- ipacket processing accelerator
- Flexible ip routing
- make dynamic, per-packet decisions (not per-flow)
- programmable HW
- Research challenges
- efficiently?
- Predictive flow classification to
- correctly?
- Cache consistency protocol for managing flow state
- flexibly?
- playform-independent spec
- Opportunities
- policies customized ofr apps
- microsecond scale
- Agenda
- Pegasus
- rack-scale storage -> ToR as load balancer
- Coherency Directory approach
- on every put operation
- In-Network Coherence Directories
- 50 us latency SLO
- Capybara
- TCP live migration without blocking
- packet-level LB => but TCP-based
- TCP migration
- M-TCP[97], TCO Migrate [00]
- retras timeout (ms-scale)
- exponential latency worse
- User space Kernel-bypass library OS
- naive -> No one knows connection state
- transient packet buffering
- Demikernel LibOS
- Beaver: OSDI'24
- distributed checkpointing without instrumenting all participants
- classic
- Chandy-Lamport [85]]
- causal consistency
- This assumption not match
- zero intraction
- not instrument all involved
- out-group nodes vs in-group nodes
- Build a dam
- Gateway on a load balancer
- Gateway marking
- Challenge multiple LBs
- Optimistic approach
- in DC latency > out DC latency
- summary
- can benefit systems
- (discuss.systems)
- Smart NICとの違いは?
## 10:45-12:00 Session 1: Memory Madness
### (1) Virtual Memory Revisited for Tiered Memory
- FreeBSD
- https://dl.acm.org/doi/10.1145/3678015.3680475
### (2) Persistent Memory I/O-Aware Task Placement for Mitigating Resource Contention
永続メモリ(PM)用のダイレクト・アクセス(DAX)ファイル・システムは、オペレーティング・システム(OS)カーネル内のI/Oパスをバイパスして、それぞれロード命令とストア命令によって読み込みと書き込みを実行する。 しかし、このため、OSはPM I/OタスクをCPUバインドタスクと区別することができず、結果としてタスク配置において同等に扱われます。 PM I/Oを無視したタスク配置は、特にリモートPMアクセスにおいてメモリコントローラのリソース競合が激しくなるため、同居タスクのDRAMアクセス性能に大きな影響を与えます。 さらに、このようなタスク配置では、PM I/Oのためのストール・サイクルからオンチップ・アイドル・リソースを利用できず、同時マルチスレッディング(SMT)の有効性に影響を与えます。 我々は、PM I/Oアクティビティを検出し、メモリコントローラの競合を緩和し、アイドル状態のオンチップリソースを効率的に利用するようにタスクを動的に配置する、PM I/Oを考慮したタスク配置方式を提案する。 我々の評価では、PM I/Oを無視したタスク配置は、最適な配置と比較して、FIOの動作を5倍以上遅くし、SPEC CPUの性能を3倍以上低下させた。 しかし、我々の提案するアプローチは、両ワークロードの平均性能損失をわずか3.3%に抑え、最大損失はわずか4.9%でした。
- PM I/OタスクをNUMAノードをまたがないようにする。
- Per-Core I/O pfofiler, balancer, Task migration
- Exponential moving average
- avoid task migration freuencey
- PM I/O balkancer
- PM read load 数をタスクごとに計算
### (3) Polar: A Managed Runtime with Hotness-Segregated Heap for Far Memory
最近の高帯域幅、低遅延インターコネクトの進歩のおかげで、データ集約型アプリケーションをリモート・メモリ・プールで実行することが実現可能になりました。 データ集約型アプリケーションを開発する場合、自動メモリ管理などのランタイムの利便性から、Javaのようなマネージド言語が開発者に選択されることが多い。我々の洞察では、データのホットネス(オブジェクトのアクセス頻度)が、メモリ管理コストを削減し、ファーメモリでの効率を向上させる鍵である。本論文では、ホットネスを認識し、ファー・メモリ用に最適化された拡張ランタイム・システムであるPolarの設計について述べる。 Polarでは、ガベージコレクタを拡張し、コールド(アクセス頻度の低い)オブジェクトを識別し、リモートメモリプールに再配置する。 アクセス頻度に基づいてオブジェクトをメモリロケーションに配置することで、Polarはリモートアクセスの回数を最小限に抑え、アプリケーションのアクセスレイテンシーを低く抑え、全体的なパフォーマンスを向上させます。
- OOL -> Memory Safety => Performance Loss
- GC: Heap,
- remote heap and local heap
- 機械学習ワークロードをJavaで評価する?
- [[PageRank]]
### (4) Chaos: Function Granularity Runtime Address Layout Space Randomization for Kernel Module
リターン指向プログラミング(ROP)は、コードの再利用攻撃として広く知られている。 ROPは、スタック・オーバーフローなどの脆弱性を悪用し、実行フローをメモリ内にある慎重に選択された命令スニペット(ガジェットと呼ばれる)チェーンにハイジャックする。 アドレス空間レイアウトのランダム化(ASLR)は、制御フローの乗っ取りからROPのようなコード再利用攻撃を防御するために広く使われている。 しかし、Linuxカーネル、特に最も脆弱なカーネル・モジュールでは、基本的な粗視化ロードタイムASLR手法しか適用されていない。 これでは、新しいROP攻撃を防御するには不十分です。 本論文では、カーネルモジュールのためのきめ細かな実行時アーキテクチャ非依存ASLRであるChaosを提案する。 Chaosはランダム化エントロピーを増大させるために関数粒度のランダム化を採用する。 実行中に継続的にランダム化を実行し、メモリ開示を無効にする。 オーバーヘッドを削減するため、Chaosはカーネルモジュールのみをサスペンドし、実行状態の移行作業を最小化する。 我々は、ARM64上のLinux 5.10 LTSをベースにChaosを実装し、2つの一般的なベンチマークを使用して評価した。 その結果、Chaosはカーネルモジュールを保護するためのきめ細かなランタイムASLRを、最大でも5%のパフォーマンス・オーバーヘッド劣化で実現できることが実証された。
## (5) Framekernel: A Safe and Efficient Kernel Architecture via Rust-based Intra-kernel Privilege Separation
本稿では、安全な言語ベースのカーネル内特権分離を利用した、オペレーティング・システム(OS)設計の新しいアプローチであるframekernelアーキテクチャを紹介する。 このアーキテクチャは、マイクロカーネルのセキュリティ上の利点と、モノリシックカーネルの性能効率を兼ね備えている。 フレームカーネルは、特権OSフレームワークと非特権OSサービスから構成される。 フレームワークは、すべての低レベルで安全でない操作を高レベルで安全な抽象概念にカプセル化し、それによってサービスが安全な言語で幅広い機能を実装できるようにする。 フレームカーネルを設計する際の主な課題は、広範な機能をサポートしながら、最小限のトラステッド・コンピューティング・ベース(TCB)-フレームワーク-を維持することにある。 本稿では、このバランスを促進する設計原理とルールについて概説する。 我々のRustベースのフレームカーネル・プロトタイプであるAsterinasは、大幅に削減されたTCBをベースに、130以上のLinuxシステムコールと幅広いOS機能とデバイス・ドライバをサポートすることで、フレームカーネルのコンセプトを検証している。
Rustのメモリモデルをuntyped memoryへ
- User-space mappings
- MMIO regions
- DMA regions
## (6) Developing Process Scheduling Policies in User Space with Common OS Features
本稿では、オペレーティングシステム(OS)の一般的な機能を利用するだけで、ユーザ空間のプロセススケジューリングポリシー開発を可能にするプログラミング技術を探求する。 従来のカーネル空間のプロセススケジューラ上で特定のプロセススケジューリング方針を実現するために、プロセスの優先度を能動的に操作する優先度昇格トリックと呼ばれるメカニズムを提案する。 我々の実験では、ベアメタルおよび仮想マシン(VM)セットアップにおけるオーバーヘッドを定量化し、マイクロ秒スケールのタイムスライシング、テーブルドリブンスケジューリング、プリエンプティブスケジューリングという3つのユースケースが、ネットワークサーバのパフォーマンスに寄与することを実証した。
http://github.com/yasukata/priority-elevation-trick
## (7) SmartNIC-enabled Live Migration for Storage Optimized VMs
クラウドプロバイダーは、クラウドユーザーの高いパフォーマンス要件を満たすために、ローカルに接続されたストレージを備えたストレージ最適化VMを提供している。 しかし、現在のクラウドプロバイダーは、リソースのオーバーヘッドが大きいため、ストレージに最適化されたVMのライブマイグレーションを実現できない。 さらに、オンデマンド・プロビジョニングではVMまたはハイパーバイザーからリソースの割り当てを解除する必要があり、SLAに違反するため、ライブマイグレーション用にリソースを恒久的にプロビジョニングする必要があります。 我々は、SmartNIC上のストレージ・ライブ・マイグレーション・アクセラレーション・システムを提案する。 我々の設計は、(1)SmartNICが管理するライブマイグレーションアーキテクチャと、(2)効率的な整合性アルゴリズムを提案することで、リソースのオーバーヘッドとSLA違反を最小化する。 基本的なプロトタイプをFPGAベースのSmartNICに実装しました。 予備的な結果では、ストレージに最適化されたVMを、ホストリソースを使用することなく、VM内部で実行されている[[RocksDB]]に最小限のパフォーマンス干渉で移行できることを示している。 このプロジェクトはTerminus Project [28]の一部である。
## (8) Designing and Implementing Live Migration Support for Arm-based Confidential VMs
ハイパーバイザーの特権を持つ攻撃者からユーザのコードや使用中のデータを保護するために、機密仮想マシン(CVM)の導入が増加しています。 Armの採用が増加していることから、さまざまな実装がKVMのようなコモディティハイパーバイザを拡張し、Arm上のCVMをサポートしています。 しかし、どの実装も、重要な仮想化機能であるライブマイグレーションをサポートしていません。 この研究では、ArmベースのCVM向けにライブ・マイグレーションをサポートする最初の設計を紹介する。 この設計では、コモディティハイパーバイザーから通常のVMをマイグレーションする機能を利用することで、CVMの安全性を維持しながら開発作業を簡素化します。 Arm用のKVMベースのCVM実装を2つ拡張し、プリ・コピー、ポスト・コピー、パラレル・マイグレーションなど、QEMUからの既存のライブ・マイグレーション・アプローチをサポートする設計をプロトタイプ化しました。
- セキュリティリスク
- CVMs
- no live migration support from existing arb-based CVM imple
- Extended VE
## (9) Towards Efficient End-to-End Encryption for Container Checkpointing Systems
Container checkpointing has emerged as a new paradigm for task migration, preemptive scheduling and elastic scaling of microservices. However, as soon as a snapshot that contains raw memory is exposed through the network or shared storage, sensitive data such as keys and passwords may become compromised. Existing solutions rely on encryption to protect data included in snapshots but by doing so prevent important performance optimizations such as memory de-duplication and incremental checkpointing. To address these challenges, we design and implement CRIUsec, an efficient end-to-end encryption scheme for container checkpointing systems built on the open-source [[CRIU]] (Checkpoint/Restore In Userspace). Our preliminary evaluation shows that CRIUsec integrates seamlessly with popular container platforms (Docker, Podman, Kubernetes), and compared to existing solutions, achieves an average of 1.57× speedup for memory-intensive workloads, and can be up to 100× faster for compute-intensive workloads.
- Container Checkpointing Use Cases
-
## (10) NotNets: Accelerating Microservices by Bypassing the Network
- [[2024__APSys__NotNets - Accelerating Microservices by Bypassing the Network]]
## (11) FHA: Flow-level High Availability on Programmable Network Hardware for Cloud Provider
データセンター・インテリジェンスの進歩に伴い、より多くのフロー状態がプログラマブル・スイッチやDPUによって管理され、効率の向上とオーバーヘッドの削減が図られている。 しかし、実用的な導入においては、高可用性の実現という課題に直面している。 これは主に、スマート・ハードウェアのフロー・テーブルが大きいためで、デバイス間の同期にハードウェアとネットワークのオーバーヘッドを大きく必要とする。 一方、フロー状態は頻繁に変化するため、ハードウェアとの迅速な同期がもう一つの課題となっている。 本論文では、制御プレーンとデータプレーンの両方を利用することで、スマートネットワーク機器間の同期システムFHAを設計し、迅速な同期の課題を解決する。 さらに、システム間でフローテーブルを同期する際のオーバーヘッドを大幅に削減するRangeSyncアルゴリズムを設計した。 我々は、AMD Pensando DPU上で予備的なプロトタイプを実装した。 我々の評価では、データプレーンの同期は6μsのレイテンシを達成した。 制御プレーンのチャネルでは、ベースラインと比較して、同期化により、1,200万のフロー状態を同期化した場合、レイテンシが83.3%短縮され、オーバーヘッドが66.7%減少した。
## (12) Split gRPC: An Isolation Architecture for RPC Software Stacks
リモート・プロシージャ・コールは、分散システムにおいて、分離の欠如と共有リソース上の競合のために、性能変動の主な原因となっている。 我々は、一般的なRPCフレームワークであるgRPCの新しいスプリット・アーキテクチャを提案する。 1つはユーザが実装するビジネス・ロジック専用、もう1つはRPCインフラ処理専用です。 インフラストラクチャプロセスは、専用コアまたはスマートNIC(IPUやDPUなど)上で実行することができ、効果的な物理的分離と予測可能なパフォーマンスを提供します。 初期評価では、スプリット・アーキテクチャは平均的なケースのレイテンシに対して適度なオーバーヘッドを追加するが、ホストCPU負荷下ではより低いレイテンシと高いスループットを可能にすることが示された。
## (13) Towards a Flexible and High-Fidelity Approach to Distributed DNN Training Emulation
## (14) SERAPH: A Performance-Cost Aware Tuner for Training Reinforcement Learning Model on Serverless Computing
## (15) BMoss: Reconfigurable hardware accelerator for scalable plagiarism detection
## (16) Toward an Edge-Friendly Distributed Object Store for Serverless Functions
[[2024__APSys__Toward an Edge-Friendly Distributed Object Store for Serverless Functions]]
サーバーレス・コンピューティングは、インターネット・スケールのエッジ・システムにおける計算の構成と展開の方法を変えつつある。 本論文では、エッジインフラ上でサーバーレス機能のデータオブジェクト(状態)を保存・共有するための、スケーラブルでプログラマブルな新しい分散オブジェクトストアであるCapybaraを紹介する。 (1)一貫性のあるDHTベースのP2Pアーキテクチャにより、スケーラビリティを実現し、DRAMコストの大幅な削減を実現する。(2)状態管理ポリシー(データキャッシングポリシー、コンテナのキープアライブ時間、アクセス制御方法、データ複製ポリシーなど)をカスタマイズするためのプログラマブルなハンドラ抽象化を提供する。 我々は、Pastry DHT上にCapybaraプロトタイプを実装し、150のAmazon EC2ノードにデプロイし、いくつかのユースケースを構築して実世界の実験を行うことで評価し、データの局所性、状態管理のカスタマイズ性、スケーラビリティにおいて、最先端技術と比較して大幅に優れていることを実証する。
## (17) Hora: High Assurance Periodic Availability Guarantee for Life-Critical Applications on Smartphones
## (18) Faster FUSE Filesystems with Efficient Data Transfers
## (19) WoundDie: Concurrency Control Protocol with Lightweight Priority Control
最近のデータベーストランザクションの並行性制御プロトコルは、予測可能な待ち時間を実現するために優先制御を採用している。 従来のプロトコルは、複雑なデータ構造を必要とするか、パラメータを持つ不完全な優先制御を提供し、スターベーションフリー性を保証していない。 この問題を解決するために、我々はパラメータなしでスターベーションフリー性を保証する新しいプロトコルWoundDieを提案する。 従来のスターベーションフリープロトコルとは異なり、ロックに複雑なデータ構造を必要としないため、メモリ効率が高く、実装が容易である。 実験の結果、WoundDieは高競合ワークロードにおいて、Polarisの最良ケースより6.5倍、最悪ケースより80倍もテールレイテンシが短いことが実証された。
## (20) ONIONDISK: A Log-Structured Write-Optimal Virtual Block Device
ランダム書き込みの性能は、クラウドにおけるさまざまなアプリケーションにとって重要である。 このようなアプリケーションを高速化するために、研究者たちはファイルシステム(例えばF2FS)にログ構造を実現し、場外更新をサポートすることで、ランダムなデータ書き込みを物理ストレージデバイスに優しいシーケンシャルなものに変換することを提案してきた。 しかし、ファイルシステムは一般的に複雑で内部的に密結合であり、これらの提案は通常、ゼロから新しいファイルシステムを記述する必要があるため、上位レイヤのアプリケーションが既存のファイルシステム(ext4やxfsなど)の特定の特徴や機能を必要とする多くのシナリオでは非現実的である。 我々の洞察は、カーネル内のはるかに単純なブロックレイヤでアウトオブプレース更新を実現する方が、より一般的で実用的であるということである。 この洞察に基づき、本論文では、既存のファイルシステム(ext4、F2FS、XFSなど)が高いランダム書き込み性能を達成するためにスタックすることを可能にする、逐次データログの追加としてランダムデータ書き込みを効率的に実現するログ構造化仮想ブロックデバイス(すなわち仮想ディスク)であるOnionDiskを紹介します。 仮想ブロックデバイスの論理ディスクアドレスをデータログの物理ディスクアドレスにマッピングするために、LSM(log-structured-merge)ツリーベースのアドレス最適化インデックスを設計し、高速削除をサポートする軽量なログクリーニングメカニズムを実装しています。 さらに、OnionDiskは、書き込み性能をさらに向上させるために、動的ポーリングメカニズムを採用している。 評価の結果、OnionDiskをメインストリームのファイルシステムに組み込むことで、OnionDiskを使用しないファイルシステムと比較して、書き込み待ち時間を最大6.5倍短縮し、スループットを最大3.3倍改善できることがわかった。