3

環境: Jruby、Rails 2.3.8、cassandra-gem、cassandra 1.1

Cassandra でサポートされているマルチテナント アプリケーションで、テナントごとに新しいキースペースを作成しています。テスト中に、Cassandra が失敗することがわかりました

at 400 keyspaces on a 8GB RAM machine, 7200 RPM disk
at 700 keyspaces on a 24 GB RAM machine, 7200 RPM disk

また、100 個ほどのキースペースの後、実行速度が非常に遅くなることがわかりました。700 個のキースペースを作成するのに約 7 時間かかり、データが入力されていない状態で約 35 GB のディスク容量を消費しました。

<tenant id>_<columnfamily name>次に、名前付き CFを使用することを期待して、キースペース内の列ファミリーの最大数を検証するようにテストを切り替えました。このテストも ~3000 CF で失敗しました。

現在、行キーを探して<tenant_id>_<key>おり、すべてのテナントに同じ CF を使用しています。これはhttps://github.com/rantav/hector/wiki/Virtual-Keyspacesのメモに基づいています。

問題は、would prepending tenant_id to key work for the following CF, given the key validation class is LongType?です。

ColumnFamily: monthly_unique_user_counts
"count of unique users per month"
  Key Validation Class: org.apache.cassandra.db.marshal.LongType
  Default column value validator: org.apache.cassandra.db.marshal.LongType
  Columns sorted by: org.apache.cassandra.db.marshal.LongType
  Row cache size / save period in seconds / keys to save : 0.0/0/all
  Row Cache Provider: org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider
  Key cache size / save period in seconds: 200000.0/14400

他のいくつかの CF の場合、キー検証クラスは次のとおりです。

Key Validation Class: org.apache.cassandra.db.marshal.TimeUUIDType

その<tenant_id>_<key>コンセプトはそのCFで機能しますか?.

4

0 に答える 0