Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ビュー索引のキホン(前編)
Search
Haruyuki Nakano
September 08, 2022
Technology
0
890
ビュー索引のキホン(前編)
Notes/Domino のビューの索引についてまとめた資料の前編です。
2019年7月11日開催の「のの会 第16回」で使用した資料です。
Haruyuki Nakano
September 08, 2022
Tweet
Share
More Decks by Haruyuki Nakano
See All by Haruyuki Nakano
HCL Notes/Domino 14.5 EAP Drop1
harunakano
1
50
ブラウザでNotesアプリ開発!?HCL Nomad Designer で始めよう!
harunakano
0
16
HCL Domino 14.0 AutoUpdate を試してみた
harunakano
0
1.7k
HCL Nomad Designer 1.0.11
harunakano
0
230
HCL Notes 14.0 「スタイルの変更」で「3 設定の確認」を深掘り
harunakano
0
6.4k
HCL Notes 14.0 EA2 Domino Restyle を試してみた
harunakano
0
420
HCL Nomad 1.0.7 Restyle
harunakano
0
220
添付された日本語テキストファイルを全文検索でヒットさせる方法
harunakano
0
14k
12.0.2 ビュー索引更新の改善
harunakano
0
15k
Other Decks in Technology
See All in Technology
Mastering Quickfix
daisuzu
1
260
Terraform Stacks入門 #HashiTalks
msato
0
360
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
200
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
310
電話を切らさない技術 電話自動応答サービスを支える フロントエンド
barometrica
1
120
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
400
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
120
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
180
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
190
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Happy Clients
brianwarren
98
6.7k
KATA
mclloyd
29
14k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Ruby is Unlike a Banana
tanoku
97
11k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Scaling GitHub
holman
458
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Transcript
ビュー索引(前編) 中野晴幸 (Haruyuki Nakano) @harunakano (Twitter) harunakano.blogspot.com (blog)
免責事項 • 本資料はメーカーの承認を得たものではありません。本資料の内容につい てメーカーへ問い合わせすることはしないでください。 • 内容については既出の資料を筆者なりに解釈したものであり、誤りを含ん でいる可能性があります。詳細については、メーカーが公開している技術 文書やヘルプなどからご確認ください。 • 本資料に基づいて発生した不具合について、筆者は一切の責任を負わない
ものといたします。
ビューとは ビューとは、ソートまたは分類された文書の一覧です。ビューは、 データベースに格納されたデータへの入口です。 ビューの設計 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_DESIGNING_VIEWS.html
ビュー ナビゲーション [移動] Ctrl + Shift + [移動]
Notes と Domino の制限事項の一覧 https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_NOTES_AND_DOMINO_KNOWN_LIMITS.html
ビュー索引とは ビュー索引とは、ビューに属する文書のリストを作成するための 内部的なファイリングシステムです。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
ビュー 索引 郵便番号順 読み仮名順 都道府県別 ••• ビューメモ
コレクションに格納する索引3種 • NOTE ID によって分類された索引 • 文書のソート順を定義した索引 • 親文書-子文書索引 ビューメモ
クイズ(1) ビュー索引はいつも存在… する する訳ではない
クイズ(1) ビュー索引はいつも存在… する する訳ではない 最初にユーザーがビューへアクセスするとき、ビュー索引が無ければ構築さ れます。アクセスしないビューの索引は自動で削除されます。 (参考)Lotus Notes/Domino の Index
の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469
ビュー索引の終生 なければ作る、あれば最新をキープ、使わなければ削除する
ビュー索引のメンテナンス用語 1. 構築(Build) 存在しないビュー索引を新たに作成する 2. 更新(Update) データベースへの変更をビュー索引へ反映する 3. 再構築(Rebuild) 既存のビュー索引を破棄し、再び構築する
4. 廃棄(Purge) 既存のビュー索引を削除する
1. 構築 ユーザー/サーバー/アプリケーションがビューへアクセスしたとき、そのビュー索引がな ければただちに構築されます。 コマンド updall -C を投入して構築することも可能です。 (参考)Lotus Notes/Domino
の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469
2. 更新 ユーザーが文書を保存したり削除してデータベースに変更を加えたとき、操作している ビューが古いままだとおかしなことになるため、ユーザーが使用しているビューは即座に 更新されます。 このユーザーが別のビューへ切り替えます。データベースの最新の内容を表示するため、 ビュー索引が更新されます。 このユーザーがデータベースを閉じます。するとデータベース内でユーザーが使用しな かったビューを更新するため、15分後に更新するようキューへ要求をあげます。
2. 更新(続き) キューには、複製やルーター(メールの受信)からも要求があがるため、要求をまとめるため に待機します。キュー内に同じ対象への要求が重複しないよう工夫されています。 キューにある要求は 5 秒ごとに処理されます。キューに入る要求には即時要求と遅延要求があ ります。遅延要求は 15 分後に処理されます。
キューの要求からビューを更新するかどうかは、文書によりデータベースが最後に変更された 日時と、ビューが最後に更新を始めた日時とを比較して判断します。ビューの日時が古い場合 に索引を更新します。このときビュー索引が構築されていない(削除されている)場合、わざ わざ構築することはありません。 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html
3. 再構築 索引は更新以外にも再構築といって、作成済みの索引をわざわざ廃棄して作り直すことが あります。 再構築の要因 • ビューの設計変更 • ビュー索引の破損 •
ビューの選択式や列式にある日時関数 • ショートカットキー(Shift + F9) など (参考)Notes データベースの索引はどのような場合に再構築されるのでしょうか https://www-01.ibm.com/support/docview.wss?uid=swg21467092
4. 廃棄 ビュー索引は、削除オプションに従って削除されます。 ディスク容量の節約などの理由で、コマンド compact -D を投入してビュー索引を削除する ことも可能です。 ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
ビュー索引のオプション • 更新時オプション • 削除オプション • 更新の表示オプション ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
更新時オプション 主にクライアントがビューを開いたときの動作に影響を与える。 自動(最初の使用後) 開かれるときに強制的に最新の状態に更新されます。(デフォルト) 自動 開かれるときに強制的に最新の状態に更新されます。 update または updall を実⾏したときにビュー索引がまだ構築されていなければ構築
されます。 手動 ビューを開いても最新の状態に更新されません。 自動(周期) ユーザーが開くときに、指定した期間内に更新されていなかった場合に限り、最新の 状態に更新されます。
更新時オプション(続き) 更新時オプション 索引が無い場合 索引がある場合 自動(最初の使用後) 構築する 更新する 自動 構築する 更新する
手動 構築する 更新しない 自動(周期) 構築する 指定した期間内に更新されていなかった場合 に限り、更新する(※1) ※1:過去 [n] 時間以内に更新されたビューは、即時に開きます。この更新は Chronos タスクによって実現され、頻繁に変 更される大規模なデータベースに特に適しています。ユーザーは、ビューを開いたときに更新を待つ必要がなく、ビュー は即時に表示されます。 (参考)Notes ビュー索引の更新に関する基本 https://www-01.ibm.com/support/docview.wss?uid=swg21464512 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html?ca=drs- ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
削除オプション 使用後に削除 ユーザーがデータベースを閉じると、すぐにビュー索引を削除します。 45日間使用されないとき ビューが45日間使用されていない場合は、そのビューの索引を削除します。 未使用期間により削除 ビューが指定した日数の間に使用されなかった場合は、そのビューの索引を削除します。 (参考)Notes ビュー索引の更新に関する基本 https://www-01.ibm.com/support/docview.wss?uid=swg21464512
ビュー索引を更新する https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/basic/H_ABOUT_REFRESHING_VIEW_INDEXES.html
更新の表示オプション インジケータを表示 変更が自動的には表示されない。更新アイコンがビューに表示され、表示を更新する には、ユーザーがそのアイコンをクリックする必要がある 表示の更新 ユーザーにビューを表示する前に表示を自動で更新します。 最初の行から表示の更新 ビューを先頭から更新します。ユーザーがビューの先頭から順に変更を探す可能性が 高い、逆時間順の表示の場合に便利です。 最後の行から表示の更新
ビューを末尾から先頭へと更新します。ユーザーがビューの末尾から順に変更を探す 可能性が高い、時間順の表示の場合に便利です。
【参考】キーボードショートカット 最新表示(Refresh): [F9] 索引が読み取られ、それに応じて画面が再描画されます。索引は再構築されません。 再構築 (Rebuild): [Shift] + [F9] 開いているビューのコレクションが再構築されます。
更新 (Update): [Ctrl] + [Shift] + [F9] データベース内のすべてのビューが更新もしくは構築されます。ビューが構築されていない場合 は構築され、すでに構築されている場合は、再構築ではなく、更新されます。
9:00 Update 9:02 更新 ビュー#1 開く 文書を 作成更新削除 9:05 再ロード
矢印表示 9:25 F9押下 ⇒ すぐに表示 サーバーはビュー#1 を直ちに更新 Lotus Notes/Domino 7 アプリケーションのパフォーマンス 第2部:データベースのビューの最適化 https://www.ibm.com/developerworks/jp/lotus/library/notes7-application-performance2/index.html 更新 データベースを 閉じる 更新要求をキューへ登録 9:10 再ロード 矢印表示 ビュー#1 開く ビュー#2 開く
クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書
クイズ(2) どっちの処理の負荷が高い? 更新 変更分のみ 構築/再構築 全ての文書 負荷:低 負荷:高 再構築中に利用できるメモリ容量によっては、再構築するビューごとに一時 フォルダに必要になるディスク容量は、最も大きいビューのサイズの約2倍か、
文書のデータの合計サイズの約2倍のどちらか大きいほうの値になります。 ビューの再構築に使用する一時フォルダを変更する https://www.ibm.com/support/knowledgecenter/ja/SSKTMJ_9.0.1/admin_changingthetemporaryfolderusedforviewrebuilds_t.h tml
インデクサ ビュー索引を維持する仕組み
インデクサの仕事 • ビュー索引の管理 • 全文索引の管理 • クライアントからのDB圧縮要求 (Domino 7.xよりデフォルト)
インデクサ 3つのサブシステムの複合体 • Notes Indexing Facility (NIF) • Update •
Updall (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469 インデクサ NIF Update Updall
Notes Index Facility (NIF) ビュー索引の操作に使用する機能群 • メモのコレクションを開く • コレクションをスキャンしてコレクションにあるエントリについての情報を返す •
トータルの文書数やトータルサイズなどのコレクションに関する詳細情報を参照する • 特定のメモのコレクションから検索できるように検索オプションを使用する • フォーム、ビュー、共有フォルダ、エージェント、フィールドメモのメモ ID を検索する • コレクションから特定のメモ ID の位置を調べる、そしてコレクションの位置を更新する • 開いたコレクションを更新する • コレクションを閉じる Inside Notes (R5) https://www.ibm.com/developerworks/jp/lotus/ldd_tech/20050128_2.html
Notes Index Facility (NIF)(続き) Update タスクや Updall は、ビュー索引を維持するために NIF を使用します。
NIF は NSF ファンクションを使用して各ビューから選択式を読み込み、選択式に見合う文書 を順番に検索します。 そして索引を含んだコレクション情報を構築します。 (参考)Lotus Notes/Domino の Index の基本 - Updall スイッチ、Update および NIF https://www-01.ibm.com/support/docview.wss?uid=swg21467469 コレクション • NOTE ID 索引 • 文書のソート順索引 • 親文書-子文書索引
Update サーバー起動時にタスクを起動し、継続的に動作 ServerTasks=Update キューにある更新要求を5秒ごとに調べ、徐々に索引を更新 更新要求は2種類(即時と遅延) 即時:5秒ごと • Router によるメール配信処理に伴うメールデータベースのビューの更新処理 •
データベースプロパティより実⾏される「圧縮」処理 遅延:15分後 • ユーザーがデータベースプロパティよりリクエストした全文索引の作成や更新処理 • ユーザーの文書追加/削除に伴う全文索引の更新処理(更新頻度が"即時"以外?) • 複製によって発生するビューの更新処理
Updall 随時起動し、処理完了後に終了する ServerTasksAt2=Updall すべてのデータベースが対象 コマンド投入による起動 オプション次第で特定のデータベースを対象にすることも可能 Update との違い • キューから起動しない
• 削除スタブのパージ • ビュー索引の廃棄 [タスク] - [開始] ツールのオプショ ン コマンドラインオプション 説明 このビューのみ更新 database -T viewtitle データベースの特定のビューを更新します。たとえば -R と併用 して、破損の問題を解決します。 単一のビューに対して Updall を実⾏するには、次の構文を使用 します。 Load Updall Database filename.nsf -T "viewname" –R [更新] - [すべての作成済みのビュー] -V 構築されているビューを更新しますが、全文索引は更新しません。 [再構築] - [すべての使用中のビュー] -R 使用されているすべてのビューを再構築します。このオプション を使うと、リソースを大量に消費するので、特定のデータベース の破損の問題を解決するときに、最後の手段として使用してくだ さい。 [再構築] - [全文索引と以下の選択項 目] - [すべての未使用のビュー] database -C データベースの未使用ビューと全文索引を再構築します。データ ベースを指定する必要があります。
インデクサの一日 リアルタイム • ユーザー/サーバー/アプリケーションがビューを開く ビュー索引がなければ構築、更新は「更新オプション」に従う • ユーザーが作業しているビューから、文書を追加/更新/削除する • ユーザーが Ctrl
+ Shift + F9 をタイプ、または Shift + F9 をタイプ 5秒ごと(Update がキューから起動) • メール受信後(ルータータスク) • データベースプロパティからの「圧縮」 1分ごと(Directory Indexer) ドミノディレクトリのビュー索引を更新 15分待機(Update がキューから起動) • データベースプロパティからの全文索引の「作成/更新」 • 複製終了 • ユーザーが文書を作成/更新/削除した後、データベースを閉じる 毎日(ServerTasksAt2=Updall) • すべてのデータベースのビュー索引と全文索引を更新 • 削除スタブのパージ その他 • ビューの破損 すべてのユーザーがログアウトした後、updall -r が実⾏されるか、 ユーザーがビューへアクセスすると再構築される • ビュー設計変更 色やフォントなどの見た目の変更でなく選択式、列式、ソート順 などを変更すると再構築される • エージェント データベースに対して文書の追加・変更・削除を⾏う処理を実⾏ すると更新される など
クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない
クイズ(3) Update, Updall を実⾏しないとビュー索引は.. 更新される 更新されない Update, Updall ともにバックグラウンドで更新するものです が、ユーザーがビューを開けばすぐさま更新されます
後編へつづく