IMBoxにて表示される各種カウント値が実際の件数と異なる場合があります。

 
本事象は製品の不具合になります。ご迷惑をお掛けして申し訳ございません。
下記バージョンからご利用を開始された方は、本事象を改善するために以下の対応の実施をお願い致します。
intra-mart Accel Platform 2013 Winter(Felicia)
intra-mart Accel Platform 2014 Spring(Granada)
intra-mart Accel Platform 2014 Summer(Honoka)
intra-mart Accel Platform 2014 Winter(Iceberg)
intra-mart Accel Platform 2015 Spring(Juno)
intra-mart Accel Platform 2015 Summer(Karen)
intra-mart Accel Platform 2015 Winter(Lydia)

【条件】
Cassandraを分散環境にて構築している場合に発生します。


【原因】
Column Familyの作成時に replicate_on_write の設定がされておらず、更新処理時のCassandraノード間における同期がされないために発生します。


【回避策】
Cassandraサーバに対して以下の手順を実施します。
件数データを保持するColumnFamilyの属性値の変更 
この対応により、更新処理時のCassandraノード間の同期が行われるようになります。


既存データの再同期 
この対応により、Cassandraノード間でずれていたデータ内容の同期が行われます。
0. 前提
作業はCassandraサーバにて実施します。
作業中は intra-mart Accel Platform を停止し、Cassandraへの書き込みが行われない状態にしてください。
1. 件数データを保持するColumnFamilyの属性値の変更
クラスタ構成のCassandraのいずれかのサーバのコンソールに接続してください。
Cassandraのインストールディレクトリ(以下$cassandra_homeと表記)のbinディレクトリ配下にある、cassandra-cli コマンドを実行します。 
$cassandra_home/bin/cassandra-cli
cassandra-cli コマンド内で keyspace を選択します。 
# default の部分はご利用中の keyspace名 に置き換えて実行してください。
use default;
件数データを保持するColumnFamilyの属性値を変更します。
update column family ADD_MYLIST with replicate_on_write=true;
update column family ADD_MYLIST_WITH_COMPANY with replicate_on_write=true;
update column family ADD_TAG_AND_USER with replicate_on_write=true;
update column family ALLOW_COMPANY with replicate_on_write=true;
update column family APPLICATIONBOX_NOTICE with replicate_on_write=true;
update column family APPLICATIONBOX_TIMELINE with replicate_on_write=true;
update column family APPLICATION_DATA with replicate_on_write=true;
update column family APPLICATION_SENT with replicate_on_write=true;
update column family APPLICATION_WATCHED with replicate_on_write=true;
update column family APPLICATION_WATCHED_TARGET with replicate_on_write=true;
update column family APPLICATION_WATCHED_USER with replicate_on_write=true;
update column family ATTACH_COMPANY with replicate_on_write=true;
update column family ATTACH_COUNT with replicate_on_write=true;
update column family BOOKMARK_MESSAGE with replicate_on_write=true;
update column family COMPANY with replicate_on_write=true;
update column family COMPANYBOX_TIMELINE with replicate_on_write=true;
update column family COMPANY_ALLOWED with replicate_on_write=true;
update column family COMPANY_AND_TAG_ADDED with replicate_on_write=true;
update column family COMPANY_AND_TAG_FOLLOWED with replicate_on_write=true;
update column family COMPANY_ATTACHED with replicate_on_write=true;
update column family COMPANY_COUNT with replicate_on_write=true;
update column family COMPANY_MANAGE_GROUP with replicate_on_write=true;
update column family COMPANY_MANAGE_TAG with replicate_on_write=true;
update column family CONNECT_NOTICE with replicate_on_write=true;
update column family CREATE_MYLIST with replicate_on_write=true;
update column family DELETED_USER with replicate_on_write=true;
update column family DMBOX_TIMELINE with replicate_on_write=true;
update column family EVENT_HISTORY with replicate_on_write=true;
update column family FOLLOW_TAG with replicate_on_write=true;
update column family FOLLOW_USER with replicate_on_write=true;
update column family FOLLOW_USER_WITH_COMPANY with replicate_on_write=true;
update column family GROUP with replicate_on_write=true;
update column family GROUPBOX_TIMELINE with replicate_on_write=true;
update column family GROUPTYPE_GROUP with replicate_on_write=true;
update column family GROUP_COUNT with replicate_on_write=true;
update column family GROUP_INVITED with replicate_on_write=true;
update column family GROUP_JOINED with replicate_on_write=true;
update column family GROUP_MANAGED with replicate_on_write=true;
update column family GROUP_REQUESTED with replicate_on_write=true;
update column family HIDDENBOX_TIMELINE with replicate_on_write=true;
update column family IMBOX_CONTRIB_POLL_VOTES with replicate_on_write=true;
update column family IMBOX_CONTRIB_POLL_VOTE_COUNT with replicate_on_write=true;
update column family IMBOX_CONTRIB_POLL_VOTE_ITEMS with replicate_on_write=true;
update column family INVITE_GROUP with replicate_on_write=true;
update column family JOIN_GROUP with replicate_on_write=true;
update column family LIKE_MESSAGE with replicate_on_write=true;
update column family MAIL_NOTICE with replicate_on_write=true;
update column family MANAGE_GROUP with replicate_on_write=true;
update column family MESSAGE with replicate_on_write=true;
update column family MESSAGE_BOOKMARKED with replicate_on_write=true;
update column family MESSAGE_COUNT with replicate_on_write=true;
update column family MESSAGE_HISTORY with replicate_on_write=true;
update column family MESSAGE_LIKED with replicate_on_write=true;
update column family MESSAGE_NOTICED with replicate_on_write=true;
update column family MYBOX_TIMELINE with replicate_on_write=true;
update column family MYLIST with replicate_on_write=true;
update column family MYLIST_ADDED with replicate_on_write=true;
update column family MYLIST_TIMELINE with replicate_on_write=true;
update column family NOTICES_MEDIA with replicate_on_write=true;
update column family NOTICE_THREAD with replicate_on_write=true;
update column family NOTICE_USER with replicate_on_write=true;
update column family POST_THREAD with replicate_on_write=true;
update column family REFERENCE_THREAD with replicate_on_write=true;
update column family REQUEST_GROUP with replicate_on_write=true;
update column family TAG with replicate_on_write=true;
update column family TAG_COUNT with replicate_on_write=true;
update column family TAG_FOLLOWED with replicate_on_write=true;
update column family THREAD_COUNT with replicate_on_write=true;
update column family THREAD_POSTED with replicate_on_write=true;
update column family THREAD_REFERENCED with replicate_on_write=true;
update column family UNREAD_MESSAGE with replicate_on_write=true;
update column family UNREAD_TIMELINE with replicate_on_write=true;
update column family USER with replicate_on_write=true;
update column family USER_COUNT with replicate_on_write=true;
update column family USER_FOLLOWED with replicate_on_write=true;
update column family USER_FOLLOWED_WITH_COMPANY with replicate_on_write=true;
update column family USER_TIMELINE with replicate_on_write=true;
update column family WATCH_APPLICATION with replicate_on_write=true;
update column family WATCH_THREAD with replicate_on_write=true;
update column family WATCH_TIMELINE with replicate_on_write=true;
上記では 2015 Winter(Lydia) 時点で存在するすべての Column Family を指定しています。
2015 Winter(Lydia) より前のバージョンで実行すると以下のメッセージが表示される場合がありますが問題はありません。
{Column Family Name} not found in current keyspace. 
cassandra-cli コマンドを終了して対応完了です。 
quit;


2. 既存件数データの再構築
クラスタ構成のすべてのCassandraに対して repair 処理を実施します。
クラスタ構成のCassandraのサーバのコンソールに接続してください。
$cassandra_home/binディレクトリ配下にある、nodetool コマンドを利用し repair 処理を実施します。
このコマンドの実行時間は保存されているデータ量に応じて増加します。 
$cassandra_home/bin/nodetool repair
すべてのCassandraサーバに対して処理が正常終了したら対応完了です。

なお、以下の要件にて修正が行われております。
https://issue.intra-mart.jp/issues/20710

-- 対象 ------------------------------------------------------------------------
iAP/intra-mart Accel Platform/2013 Winter(Felicia)
iAP/intra-mart Accel Platform/2014 Spring(Granada)
iAP/intra-mart Accel Platform/2014 Summer(Honoka)
iAP/intra-mart Accel Platform/2014 Winter(Iceberg)
iAP/intra-mart Accel Platform/2015 Spring(Juno)
iAP/intra-mart Accel Platform/2015 Summer(Karen)
iAP/intra-mart Accel Platform/2015 Winter(Lydia)
--------------------------------------------------------------------------------


FAQID:599
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk