Erlang 用の安定した Cassandra ライブラリはありますか? 見つからないようです
4 に答える
私は同じ問題に直面しました。利用可能なすべての Cassandra ドライバーのほとんどをベンチマークした後、 datastax cpp driverに基づく新しいドライバーErlcassを開始することにしました。
datastax cpp ドライバーは驚異的なパフォーマンスを発揮し、完全に非同期です。
他の erlang ドライバーが datastax 1 で 1 秒あたり 10k を超える読み取りに到達できなかったクラスターでの私のテストから、私は 60k/s を超えることができました。
Datastax ドライバーと Erlcass にはわずかな違いがありますが、それでも同じシナリオで 50k 読み取り/秒を超えることができました。
オーバーヘッドのほとんどは、データを erlang 用語に変換したり、その逆に変換したりすることで発生します。
インターフェイスとパフォーマンスを改善するための作業が進行中です。現在、準備されていないステートメントにはいくつかの変更が必要です。
Apache Cassandra はThriftを使用します。したがって、必要なことは、Erlang のthrift バインディングを生成することだけです ( thrift --gen erl interface/cassandra.thrift
)
Apache Thrift wiki から:
Thrift には、C++、C#、Erlang、Haskell、Java、Objective C/Cocoa、OCaml、Perl、PHP、Python、Ruby、および Squeak 用のジェネレーターがあります。
(より「高レベルのクライアント」ライブラリを探しているなら、私にはわかりません。)
簡単な Cassandra erlang クライアントを作成しました。見てみな! https://github.com/lpgauth/cassanderl
Eric Evansのビデオによると、可能であれば、Thrift API を通じて Cassandra を使用することは避けるべきです。