1. Home
  2. News
  3. GoCQLとそのRust版より速い新しいScyllaDB Goドライバ
2022/10/17

Startup Portfolio

GoCQLとそのRust版より速い新しいScyllaDB Goドライバ

2019年以来、ScyllaDBはワルシャワ大学と協力し、学生の学士論文のチームを指導しています。ScyllaDB Rust Driverが成功し、Go 1.18でジェネリックがリリースされた後、新しいScyllaDB Goドライバが誕生しました。パフォーマンスの面でGoCQLとScyllaDB Rust Driverの両方に勝つという目標を持っています。

 

ドライバを設計する際、私たちはScyllaDBのシェアードナッシングアプローチをできるだけ踏襲し、データの所有権を得るために不必要なミューテックスの使用を避け、慣用的なGoチャネルとアトミックを使ったコンポーネント間の明確で効率的な通信に焦点を当てました。その結果、新しいドライバは、単一の TCP 接続にローカルなミューテックスを 1 つだけ持つことになりました。比較のため、gocql はミューテックスを多用しており、偶発的なデータ競合を発生させずに大きな変更を行うことは困難です。また、適切なメモリ管理にも細心の注意を払い、可能な限りゴミを出さないようにしました。ベンチマーク中に、GoCQLの結果がガベージコレクタに大きく影響されることが観察されました。デフォルトのGOGCでは、最適な設定の場合よりも最大で30%もパフォーマンスが低下しました。新しいドライバでは、ガベージコレクタの影響はごくわずかで、ドライバがメモリ割り当てを行う頻度がGoCQLの5倍少ないことが主な原因です。

 

初期の設計目標、広範なプロファイリング、ベンチマークのおかげで、ScyllaDBは新しいScyllaDB Goドライバを作成しました。これは高い並行性環境で素晴らしいパフォーマンスを発揮し、ランタイムとメモリ管理の面で以前のものを凌駕し、いつの日か置き換えられる可能性を示しています。このドライバはGitHubで公開されていますが、まだ開発の初期段階です。

 

TagsDevOpsIsrael

関連ニュース

Contact

AT PARTNERSにご相談ください