Rustにおける決定論的シミュレーションテスト:ステートマシンアプローチ

2025-08-05
Rustにおける決定論的シミュレーションテスト:ステートマシンアプローチ

Polar Signalsチームは、決定論的シミュレーションテスト(DST)を最優先事項としたステートマシンアーキテクチャを用いた新しいRustデータベースの構築経験を共有します。以前のGoデータベースであるFrostDBとは異なり、新しいデータベースは既存のスケジューラの制御を避け、代わりに、すべての主要コンポーネントがメッセージバスを介して通信するシングルスレッドのステートマシンとして記述されるステートマシンモデルを使用します。このアプローチは、並行処理、時間、ランダム性、障害注入に対する完全な制御を提供し、DSTの実装を大幅に簡素化し、2つの重大なバグを発見しました。このアプローチは追加の認知的オーバーヘッドを必要としますが、システムの動作に関するより正確な推論と、より信頼性の高いコードをもたらします。

続きを読む

サーバレスAPI S2、継続的プロファイリングによりパフォーマンスの大幅向上とコスト削減を実現

2025-02-14
サーバレスAPI S2、継続的プロファイリングによりパフォーマンスの大幅向上とコスト削減を実現

ストリーミングデータ用のサーバレスAPIであるS2は、Polar Signals Cloudを活用した継続的プロファイリングにより、パフォーマンスの大幅な向上とコスト削減を実現しました。CPU使用率の非効率性という課題に直面し、ユーザー数の制限と運用コストの増加に悩まされていたS2は、Polar Signals Cloudの継続的プロファイリング機能、特にpprof.meと反転コールスタック機能を使用して、複数の性能ボトルネックを特定し解決しました。例えば、sha2ライブラリ経由でGravitonでのハードウェアアクセラレーションを有効にする1行のコード変更により、SHA256チェックサム計算のCPU使用率を68.37%から31.82%に削減し、スループットを効果的に2倍にしました。さらに、AWS S3 Rust SDKのCRC32Cチェックサム計算とメモリ割り当ての改善も行われました。Polar Signals Cloudの柔軟な価格設定も、S2独自のニーズにとって重要でした。

続きを読む