前回、活動中の主データを少なくあるいは小さくするアプローチとして、現時点の重複削減の技術は向かないと考えられることをお話しました。
もちろん、バックアップなどの非活動データであれば、現時点でも重複削減技術は十分有効なアプローチの一つですが、アクセス頻度が高く短い応答時間での処理を求められる主データに対してはこれからお話しするリアルタイム圧縮の技術が一つの解と成りえると考えています。
リアルタイム圧縮技術とは、文字通り 読み書きあるいは更新 としてアクセスされる活動データをその場で圧縮し、あるいはその逆にその場で解凍するという処理をアクセス性能を犠牲にすることなく実現するものです。
圧縮という処理は、重複削減と違い他のデータとの比較は不要で、受け取ったあるいは渡すデータのみを対象とすればよいため、エンジンが高速であれば処理を速くすることが可能です。
現在のCPUの処理能力は非常に高速になっており、他のコンポーネントの処理能力の向上に比べて、特に近年のCPU処理能力の向上はコスト・パフォーマンスという観点で顕著になっていることから、CPUの能力を使用して効率化する方法は現時点では非常に理にかなったソリューションではないでしょうか。
そして、圧縮のロジック自体は従来からあるもの(の中で効率的なもの)を使用していますが、パフォーマンスを犠牲にせずにリアルタイムに実行できるのには理由や工夫があり、バックアップやアーカイブのデータのみならず、主データに適用できるテクノロジーとなっています。
まず、経路の途中で圧縮されることで、末端のストレージ装置に届く時点ではデータは既に圧縮により小さくなっているため、キャッシュも圧縮が効いた分だけ大きなキャッシュとして使え、かつ処理される物理的なデータ容量が減ることから最終的に読み書きされるHDDへの負荷も軽くなることから、末端のストレージ装置をより高いパフォーマンスで使用することができます。
また、従来のファイル・アクセスでの圧縮の実装は、ファイル途中のみの部分的な変更があった場合でも先頭からのそっくり圧縮しなおすことになるため、圧縮の処理量が多く負荷も高いという問題がありましたが、リアルタイム圧縮方式では全体を固定長に分割して、部分的な変更があった場合には変更前の物理ブロックはそのままにしておき、変更があったブロックのみを圧縮し直しファイルの最後尾に追加して該当ブロックのポインターを付け直すことを行って、部分変更の負荷を大幅に減らしています。 この方式は、圧縮ファイルに対する変更を最小限(該当ブロックのみ)にすることから、重複削減のテクノロジーとも相性がよく、この方式の圧縮後にも重複削減も合わせて効果を発揮します。
20年以上前からテープ装置で実装・実証されているデバイスでのインライン圧縮テクノロジーに、このような工夫や改良を加えてディスクの主データへの適用が実現しています。
一般に、バックアップやアーカイブのデータの方が容量は大きく、データ量を削減する意味でこれらデータへの着目は重要ですが、主データ用には容量単価の高い高速、最新の装置を使っていることが通常であるため、実はデータを保管するストレージ全体のコストという観点では、主データの占める割合は高く、その主データの容量削減への取組みは避けては通れない状況となりつつあります。 そして、現時点の技術で主データを削減する非常に効果的な方法がリアルタイム圧縮テクノロジーです。
将来的にはよりデータ量を少なくする全く新しい方法や、現存のテクノロジーの改良や組合せによるより効果的なソリューションが実装される可能性はありますが、現時点で「1.主データに対して」(未来ではなく)「2.直ぐに適用可能」であり、導入後の「3.運用の負担増がほとんどなく」そして「4.既存環境を生かして(流用して)実現できる」言う点で、リアルタイム圧縮テクノロジーは大変有望なソリューションと考えています。
特に既存資産を生かせる・流用できると言う点が、環境負荷低減が求められる現代にマッチしているとともに、「既存環境の変更をすることなく新規導入や単純増設以上の効果が得られる」ことになり、現状で多くの資産を既に保有している企業にとっては夢のようなソリューションと成り得ます。
近年データの急激な増加が問題視されており、従来からのアーカイブやILMといった対応に加えて、データ重複削減とリアルタイム圧縮テクノロジーが注目されています。
データ重複削減とリアルタイム圧縮はどちらもデータ自体を少なくあるいは小さくしようと言うアプローチですが、バックアップなどの非活動データではなく、活動中の主データに対しての適用を考えた場合、現時点の技術ではリアルタイム圧縮が有効と考えています。
その主な理由は、重複削減では重複を確認するために必ず比較という処理が入ることです。 圧縮であれば比較は不要で受け取ったデータを随時処理すればよいため流れ作業(リアルタイム)での適用に合っています。
重複削減も工夫はされていますが、主データへの適用に関して決定的と思える技術はまだないというのが正直な感想です。 少々細かい話になりますが、ご興味のある方のために記載しておきます。 例えば、比較を短時間に行うためにインデックスをメモリー上に持つと言う方法がありますが、インデックスは実データではなく計算(通常はハッシュ関数)により作られたものであるため、理論上は異なるデータが同じインデックスとなる可能性があります。 関数を複雑にすることでこの可能性を下げることができますが、関数処理のオーバーヘッドが増したり、インデックスのサイズが大きくなって扱えるデータ量(あるいはキャッシュのみで扱えるデータ量)が制限されるあるいは大きなキャッシュが必要(コスト面で不利)になってしまうことになり、また計算である以上確率は小さくなっても理論上ゼロにはならないという問題も残ります。
そこで、最終的に実データとの比較を行う製品もありますが、実データ比較方式の場合も主データに対する適用に踏み切るには、データを格納する部分のパフォーマンスに気をつける必要があることから、コストと効果のバランスなど現時点ではバックアップ、アーカイブといった非活動データへの適用のようにはお勧めではないと考えています。
リアルタイム(インライン)ではなく、ポストプロセスでバックグラウンド処理により定期的に重複削減処理を行うという方式であれば主データへの適用も可能とは考えられますが、一旦データ量はそのままの通常の書込みを行った後の処理となることや、バックグラウンド処理への考慮などの運用的な検討が必要なことなどを主な理由に、一般には導入に際しての抵抗がある、言い換えると多少面倒に感じてしまうというのが実情です。 しかし、適切なサイジングや運用管理により適用可能な範囲は少なくないと考えていますし、運用面の課題を解決するような仕組みにより状況が一変する可能性もあるとは思っています。
リアルタイム圧縮に関しては、次回コメントしたいと思います。
東北地方太平洋沖地震により被災された方々に心よりお見舞い申し上げます。
被災した方々が秩序と冷静さを持って行動されていることを、海外メディアなどが驚きをもって伝えていることが報道されていますが、日本人の忍耐強く理性的な国民性を再認識し、改めて大いに誇りに思います。
この状況下で被災している方々の力になりたいと考える皆さんが少なからずいらっしゃると思いますが、被災された方々の支援に関して、十分な知識や志を持たないボランティアが現地に行くことは逆に迷惑になりかねないという意見がありそれは正しいのだと思います。
そして、そうした被災者支援の特別な知識や能力を持たない一般の人々が支援のために起こす行動として(間違いのない団体への)募金が最善の策であるとの考えも正しいとは思いますが、それが唯一ではない、それでも募金に加えて他に何かできるのではないか考えていました。
そこで考えついた方法は、ごく単純で当たり前のことかと思いますが、被災された方々を支援している人を支援することです。 直接支援しなくても、支援している人が知人であったり、さらには知人に支援している知り合いがいる場合もあります。 周りで被災している方の支援をしているという話を聞いたら、自分に何ができるか尋ねてみてください。 支援に向かう方の必要とするものの一部を提供できるかもしれませんし、現地で支援されている方が活動を続けるために皆さんの居住地側でできることがあるかもしれません。 また知人がいなくても関心を持ってネット上の情報を見ていれば、自分に可能な支援が見つかるかもしれません。 間接的であっても多くの人が積極的に支援のサポートを申し出ることで、一つ一つは小さなことでもきっと大きな力になります。
このようなことは沢山考えられる方法の内の一つですが、本当に重要なのは他の方も訴えている通り「継続」であり、付け加えるなら継続して自分にできることを考え、できることがあれば行動することだと思います。
特に継続すると言うことに関しては、被災者の方々や被災地への協力が必要な期間は何年にも亘り、また表面的には分からないことも多いことなどから、決して容易なこととは思っておりませんが、一人でも多く皆さんが震災により困っている方々がいることを忘れずに気に留めて、できることを考え行動する、見聞きした活動で自分にできることがあったら思い切って手を上げることを心がければ、Twitterなど様々なコミュニケーション・ツールが存在する今だからこそより多くのことができると強く思います。
みなさん、はじめまして。 佐藤 龍一(さとう りゅういち)です。
日本アイ・ビー・エムでストレージ製品のプリセールスSEとして活動しております。
この度ご縁あって、オルタナティブ・ブログの仲間に加えて頂くことになりました。
最初に簡単な自己紹介をさせてください。
私は新卒で入社し、新入社員研修後に配属された部門は製品テストを行う組織でした。
その部門でストレージ製品のテストチームに加わり、それ以来、途中メインフレームのクラスター技術である並列シスプレックスの技術支援を行っていた時期もありますが、通算で15年以上ストレージに関わっています。
最近はオープン系ストレージを扱うことがほとんどですが、ストレージ経験の半分以上の年数はメインフレーム接続のストレージ製品SEですので、技術のベースや考えにはメインフレームの思想が染み付いているように思います。
また、最初の担当業務が製品テストであった影響という訳ではありませんが、「品質」と聞くと血が騒ぐというかおせっかいだと思われると感じつつも気になって首を突っ込みたくなります。
私が入社して間もなかった1990年代初頭にIBMが経営危機になった際、当時会長に就任したLouis V Gerstner氏がIBMを成功に導くための"eight principles"(8つの原則とでも訳せばよいのでしょうか)という以下の項目を提唱していました。
1. The marketplace is the driving force behind everything we do.
2. At our core, we are a technology company with an overriding commitment to quality.
3. Our primary measures of success are customer satisfaction and shareholder value.
4. We operate as an entrepreneurial organization with a minimum of bureaucracy and a never-ending focus on productivity.
5. We never lose site of our strategic vision.
6. We think and act with a sense of urgency.
7. Outstanding, dedicated people make it all happen, particularly when they work together as a team.
8. We are sensitive to the needs of all employees and to the communities in which we operate.
全て大変重要な心構え/考えですが、常に8つものことを意識して仕事をするのは私にはとても無理ですので、この中で私の思いと最も共鳴した2番目の「品質が核であり最重要である」という考えを今でも心に刻んで日々活動しています。
そこでこのブログでは、ストレージ技術を中心にIT関連技術に関する個人的な理解や、広義の品質話題、日々の疑問や気づきなど、個人的に気になった話題を若干SE的に自分なりの考えで綴ります。 できるだけ理屈っぽさが出ないように努めますのでお付き合い頂けると幸いです。
尚、このサイトへの掲載内容は私自身の見解であり、IBMおよび日本IBMの立場や、戦略、意見を代表するものではありません。
また、間違った情報は出来る限り掲載しないように留意いたしますが、何かお気づきの点がありましたら遠慮なくご指摘ください。
よろしくお願いいたします。

ストレス社会との付き合い方
「思いやり経営」のススメ
テレワークが労働者のマインドを変える
求む、クックパッド男子
37歳の常識――我々は一生学び続ける