ラベル cassandra の投稿を表示しています。 すべての投稿を表示
ラベル cassandra の投稿を表示しています。 すべての投稿を表示

2023年4月24日月曜日

"allocate_tokens_for_local_replication_factor" と "replication_factor" の違いについて

 "allocate_tokens_for_local_replication_factor" と "replication_factor" の違いについて調べてみた


まず、"replication_factor" は、Cassandraでデータの冗長性を確保するために使用される概念であり、クラスタ内のノード数を指定します。つまり、1つのキースペース内で何個のレプリカを作成するかを決定するために使用されます。この値が大きくなると、書き込みの遅延が発生する可能性がありますが、読み込みは高速になります。replication_factorは、CREATE KEYSPACEコマンドを使用して指定されます。


一方、"allocate_tokens_for_local_replication_factor" は、Cassandraがノード間でデータを分散させる方法を決定するために使用されます。これは、各ノードに割り当てられたトークン範囲の数を決定するために使用されます。この設定を変更することで、Cassandraクラスタ内のノードの負荷分散と障害復旧能力を最適化できます。


つまり、replication_factorは、Cassandraキースペース内でレプリカを作成する数を決定するのに対し、allocate_tokens_for_local_replication_factorは、Cassandraノード間でデータを分散させる方法を決定するために使用されます。

2023年3月18日土曜日

cassandra(東京、大阪リージョン間のノードでレプリケーションを行う設定)

実施したいこと:
東京、大阪リージョン間の各Cassandraのノードでリプリケーションを行いたい












AWSの設定

①VPCペアリングの設定を行う

②上記で、設定を行った、東京、大阪リージョンのルートテーブルにて、vpcペアリングの値を追記する

詳細なVPCペアリングの設定方法は、割愛。



■cassandraのインストール


1)カサンドラのユーザを作成

sudo su -

useradd cassandra

passwd cassandra


2)visudo

以下、末端の行に追記

cassandra ALL=(ALL)      NOPASSWD: ALL


3)Javaのインストールを行う

wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz -O ~/jdk.tar.gz

mkdir ~/java && tar -xzvf ~/jdk.tar.gz -C ~/java --strip-components 1

sudo mv ~/java /usr/local/java


4)cassandraのインストール

wget http://archive.apache.org/dist/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz -O ~/cassandra.tar.gz

mkdir ~/cassandra && tar -xzvf ~/cassandra.tar.gz -C ~/cassandra --strip-components 1

sudo mv ~/cassandra /usr/sbin/cassandra

sudo chown -R cassandra:cassandra /usr/sbin/cassandra



5)環境変数の追記

sudo vi /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin

export CASSANDRA_HOME=/usr/sbin/cassandra

export PATH=$PATH:$CASSANDRA_HOME/bin


6)pathの設定を再読み込みする

source /etc/profile



7)cassandra.yamlの編集を行う


①listen_address= サーバのプライベートIPアドレスにする

②rpc_address:  サーバのプライベートIPアドレスにする

  →リモートアクセスを可能させるための設定

②seedsの記載を行う

    - class_name: SEED_PROVIDER

      parameters:

          # seeds is actually a comma-delimited list of addresses.

          # Ex: "<ip1>,<ip2>,<ip3>"

          - seeds: 東京リージョンのローカルIP, 大阪リージョンのローカルIP

③スニッチの指定を行う

  →この場合、AWSのリージョン間のEC2のローカルIPのみで通信を行いたいので、以下のスニッチにした。

endpoint_snitch: Ec2Snitch

ローカルLLMでコーディングさせるポイント

 簡単な指示で、依頼するとコンテキストオーバーで記憶喪失になって コードの内容が一致しないことが起こるので、work.mdみたいな作業メモを取らせたるのがよい 途中から、別スレッドに再実施する場合でも、work.mdが引き継ぎとして 参照して実施してくれるのがポイント