DSE In-Memory(DSEインメモリー)を使用するテーブルの作成または変更
CQLディレクティブを使用して、DSE In-Memory(DSEインメモリー)を使用するテーブルを作成または変更します。
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
CQLディレクティブを使用して、DSE In-Memory(DSEインメモリー)を使用するテーブルを作成または変更し、dse.yamlを使用して、テーブルのサイズを制限します。
DSE In-Memory(DSEインメモリー)を使用するテーブルの作成
DSE In-Memory(DSEインメモリー)を使用するテーブルを作成するには、CQLディレクティブをCREATE TABLE文に追加します。文でコンパクション・ディレクティブを使用して、MemoryOnlyStrategyクラスを指定し、キーと行のキャッシュを無効にします。
CREATE TABLE customers (
uid text,
fname text,
lname text,
PRIMARY KEY (uid)
) WITH compaction= { 'class': 'MemoryOnlyStrategy' }
AND caching = {'keys':'NONE', 'rows_per_partition':'NONE'};
DSE In-Memory(DSEインメモリー)を使用する既存のテーブルの変更
ALTER TABLE文を使用して、インメモリーを使用するように従来のテーブルを変更します。または、インメモリー・テーブルを従来のテーブルに変更します。たとえば、employeeというテーブルにDESCRIBE
コマンドを使用します。DESCRIBE
コマンドの出力に次のような行が含まれていないため、employeeが従来のテーブルであることを確認します。
compaction={'class': 'MemoryOnlyStrategy'} >
DSE In-Memory(DSEインメモリー)を使用するようにemployeeテーブルを変更します。
ALTER TABLE employee WITH compaction= { 'class': 'MemoryOnlyStrategy' }
AND caching = {'keys':'NONE', 'rows_per_partition':'NONE'};
テーブルを変更したら、既存のSSTableを再度書き込みます。nodetool upgradesstables -a <keyspacename> <tablename>
同時にアップグレードするSSTableの数を設定するには、--jobs
オプションを使用します。デフォルト設定は2です。この設定にすると、クラスターへの影響を最小限に抑えられます。利用可能なすべてのコンパクション・スレッドを使用するには、0に設定します。
cqlshでDESCRIBE TABLEコマンドを使用して、テーブル・プロパティを表示します。
DESCRIBE TABLE employee;
CREATE TABLE employee (
uid text PRIMARY KEY,
fname text,
lname text
) WITH bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"NONE", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.MemoryOnlyStrategy',
'max_threshold': '32'}
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND nodesync = {'enabled' : 'true'}
AND speculative_retry = '99.0PERCENTILE';
memtable_flush_period_in_ms=0の場合、memtableは以下の場合にフラッシュされます。- フラッシュのしきい値に達した場合
- 停止時
- nodetool flushの実行時
- commitlogsが一杯になったとき
テーブル・サイズの制限
max_memory_to_lock_fraction | システム・メモリーに対する割合を指定します。デフォルト値の0.20は、システム・メモリーの最大20%を使用することを指定します。 |
max_memory_to_lock_mb | メモリーの最大容量をMBで指定します。 |
テーブルでのキャッシングの無効化
ALTER TABLE customers WITH caching = {'keys':'NONE',
'rows_per_partition':'NONE'};