• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 特36条6項1、2号及び3号 請求の範囲の記載不備 特許、登録しない(前置又は当審拒絶理由) G06F
審判 査定不服 2項進歩性 特許、登録しない(前置又は当審拒絶理由) G06F
管理番号 1383558
総通号数
発行国 JP 
公報種別 特許審決公報 
発行日 2022-05-27 
種別 拒絶査定不服の審決 
審判請求日 2020-09-07 
確定日 2022-04-21 
事件の表示 特願2018−207253「索引更新パイプライン」拒絶査定不服審判事件〔平成31年 3月 7日出願公開、特開2019− 36353〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1 手続の経緯

本願は,平成26年5月19日に出願した特願2016−514993号(パリ条約による優先権主張2013年5月20日,米国)の一部を平成30年11月2日に新たな特許出願としたものであって,平成30年11月2日に審査請求されると同時に手続補正書が提出され,令和1年8月27日付けで拒絶の理由が通知され,令和2年2月3日に意見書とともに手続補正書が提出され,同年4月20日付けで拒絶査定(謄本送達日同年5月7日)がなされ,これに対して同年9月7日に拒絶査定不服審判の請求がなされるとともに手続補正がなされ,同年11月9日付けで審査官により特許法164条3項の規定に基づく報告がなされ,令和3年2月2日に上申書が提出され,同年3月19日付けで当審により拒絶の理由が通知(以下,「当審拒絶理由通知」という。)され,同年6月22日に意見書とともに手続補正書が提出されたものである。

第2 本願発明

本願請求項1に係る発明(以下,「本願発明」という。)は,令和3年6月22日の手続補正により補正された特許請求の範囲の請求項1に記載された,次のとおりのものと認める。(なお,下記記載の段落の冒頭に付された,「A」〜「K」は,説明のために当審で付加したものであり,それぞれの構成を,「構成A」〜「構成K」と称する。)

「A 分散型データベース管理システムであって、前記システムは、
B 1つ以上の第1の記憶デバイスを含む第1のコンピューティングノードであって、前記1つ以上の第1の記憶デバイスには、ログファイルと、1つ以上のエントリの第1の索引と、が記憶されており、前記第1の索引中の前記1つ以上のエントリは、第1の項目の集合内の複数の項目を参照する、第1のコンピューティングノードと、
C メモリと1つ以上の第2の記憶デバイスとを含む第2のコンピューティングノードであって、前記1つ以上の第2の記憶デバイスには第2の索引が記憶されており、前記第2の索引が、前記第2のコンピューティングノードに記憶されている前記第1の項目の集合の少なくともサブセットを参照する、第2のコンピューティングノードと、
D コンピュータ可読命令が記憶されている1つ以上のメモリと、
E を具え、
F 前記コンピュータ可読命令は、実行時に、前記システムに、少なくとも、
G 第1の動作を示す命令を前記ログファイルに書き込むステップであって、前記第1の動作は、前記第1の項目の集合を修正する第1の要求を処理し、前記第1の索引中の前記1つ以上のエントリの関連する修正を決定するステップに基づいて、前記第1の索引に対して実施される、ステップと、
H 前記第1のコンピューティングノードから受信され、かつ、前記第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令の記録に少なくとも部分的に基づいて、前記第1の動作を示す命令を前記第2のコンピューティングノードに送信するステップであって、前記第2のコンピューティングノードは、前記第1の動作を示す命令に少なくとも部分的に基づいて、前記第1の動作と同等の第2の動作を実施し、前記第2の動作は、前記第1の索引中の前記1つ以上のエントリに対応する前記第2の索引中の1つ以上のエントリを修正する、ステップと
I を行わせ、
J 前記第1のコンピューティングノードおよび前記第2のコンピューティングノードは、クォーラムメンバーであって、前記第1のコンピューティングノードおよび前記第2のコンピューティングノードが、クライアントアプリケーションによって発行される読み出し要求または書き込み要求を実施した場合には、前記読み出し要求または書き込み要求の結果が、前記第1のコンピューティングノードから返送される、
K システム。」

第3 当審拒絶理由通知の概要

当審拒絶理由通知の概要は次のとおりである。

1.(サポート要件)この出願は,特許請求の範囲の記載が下記の点で,特許法36条6項1号に規定する要件を満たしていない。

2.(明確性)この出願は,特許請求の範囲の記載が下記の点で,特許法36条6項2号に規定する要件を満たしていない。

3.(進歩性)この出願の下記の請求項に係る発明は,その出願前に日本国内又は外国において,頒布された下記の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて,その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから,特許法29条2項の規定により特許を受けることができない。

記 (引用文献等については引用文献等一覧参照)

●理由1(サポート要件)について

・請求項 1−4
・備考
(1)
請求項1において,「第1のコンピューティングノード」及び「第2のコンピューティングノード」が,それぞれ何を表すものか,不明確である。
本願明細書の段落【0018】,【0022】−【0024】,【0031】−【0034】,及び,【0045】,並びに,図面の図1B及び図2Aには,「マスター154」,「クォーラムパートナー152,156」,「第1のパーティション(A〜M)(マスター)200」,「第2のパーティション(N〜Z)(マスター)202」,及び,「複製パートナー204,206,208,210」等についての記述は認められるものの,「第1のコンピューティングノード」及び「第2のコンピューティングノード」が,このいずれに対応するものか,或いは別の構成を示すものかを明確に特定することはできない。
したがって,本願請求項1に係る発明は,特に「第1のコンピューティングノード」及び「第2のコンピューティングノード」について,発明の詳細な説明に記載されたものとはいえない。

(なお,下記理由3の判断に際しては,「第1のコンピューティングノード」は図1Bに示すような,「マスタ」(図2Aの「第1のパーティション(A〜M)(マスター)200」及び「第2のパーティション(N〜Z)(マスター)202」)であるものとして解し,「第2のコンピューティングノード」は,同「クォーラムパートナー」(「複製パートナー204,206,208,210」)であるものと解して対比・判断を行った。)

(2)
請求項1において,「第1の索引」及び「第2の索引」とあるが,それぞれ何を表すものか,不明確である。
すなわち,例えば本願明細書の段落【0003】,【0022】,及び,【0026】,並びに,図面の図2Bには,「索引パーティション252」,「第1の索引258」,「第2の索引260」,「ローカル索引」,「グローバル索引」等についての記述は認められるものの,「第1の索引」及び「第2の索引」が,このいずれに対応するものか,或いは別の構成を示すものかを明確に特定することはできない。
したがって,本願請求項1に係る発明は,特に「第1の索引」及び「第2の索引」について,発明の詳細な説明に記載されたものとはいえない。

(3)
請求項1に,「前記第1の索引中の前記1つ以上のエントリの関連する修正」とあるが,上記(2)において指摘したとおり,「第1の索引」が,発明の詳細な説明に記載されたいずれの事項に対応するものかを明確に特定することはできず,また,「関連する修正」に関しても,発明の詳細な説明に記載されたいずれの事項に関連するものかを明確に特定することができない。
したがって,本願請求項1に係る発明は,特に「前記第1の索引中の前記1つ以上のエントリの関連する修正」について,発明の詳細な説明に記載されたものとはいえない。

上記(1)乃至(3)の点につき,引用例1を引用する請求項2〜4に特定される事項によっても,発明の詳細な説明に記載されたいずれの項目に対応するものかを明確に把握することはできず,したがって本願請求項1〜4に係る発明は,発明の詳細な説明に記載されたものとはいえない。

●理由2(明確性)について

・請求項 1−4
・備考
(4)
請求項1に,「前記第1のコンピューティングノードから受信され、」とあるが,どの語句ににかかるものか,不明確である。(下記理由3では,一応,「前記第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令」にかかるものとして判断した。)

(5)
請求項1に,「前記命令を前記第2のコンピューティングノードに送信するステップ」とあるが,「前記命令」は,どの命令(「コンピュータ可読命令」,「第1の動作を示す命令」,「前記第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令」のいずれか,又は,それ以外の命令。)をいうものか,不明確である。

以上,本願請求項1に係る発明は,少なくとも上記(4)及び(5)の点において不明確であり,請求項1を引用する請求項2〜4に記載された事項によってもなお,上記不明確な記載は明確なものとはならない。
したがって,本願請求項1〜4に係る発明は不明確である。

●理由3(進歩性)について

・請求項 1−8,10−14
・引用文献等 1−3

・請求項 9,15
・引用文献等 1−4

<引用文献等一覧>
1.特開平11−327982号公報
2.特開2010−39746号公報
3.米国特許第7558883号明細書
4.特開2007−164523号公報

第4 当審拒絶理由通知の理由1(サポート要件)に関する判断

特許請求の範囲の記載が,明細書のサポート要件に適合するか否かは,特許請求の範囲の記載と発明の詳細な説明の記載とを対比し,特許請求の範囲に記載された発明が,発明の詳細な説明に記載された発明で,発明の詳細な説明の記載により当業者が当該発明の課題を解決できると認識できる範囲のものであるか否か,また,その記載や示唆がなくとも当業者が出願時の技術常識に照らし当該発明の課題を解決できると認識できる範囲のものであるか否かを検討して判断すべきものである。(平成17年(行ケ)第10042号)

以下,この観点に立って,判断する。

1 「第1のコンピューティングノード」及び「第2のコンピューティングノード」について

(1)当審拒絶理由通知では,理由1(1)として,「請求項1において,「第1のコンピューティングノード」及び「第2のコンピューティングノード」が,それぞれ何を表すものか,不明確である」旨を通知した。
これに対し,令和3年6月22日提出の意見書(以下,単に「意見書」という。)において,審判請求人は,「請求項1に記載の『第1のコンピューティングノード』および『第2のコンピューティングノード』は、本願明細書段落0095乃至0098および図10に示されている複数のコンピューティングノードのうちの2つを示して」いる旨を主張しているので,当該箇所の本件明細書の記載を参酌すると,次の記載が認められる。(下線は説明のために当審で付加。以下同様。)

A 「【0095】
データセンター1020内で動作するコンピューティングノード1010a、1010b、および1010c上で実行中のプロセスとの通信は、ゲートウエイ1006およびルータ1008を介して提供され得る。多くの他のネットワーク構成もまた用いられ得る。図10には明示的に示されていないが、様々な認証機構、ウェブサービス層、ビジネスオブジェクト、または他の中間層が、コンピューティングノード1010a、1010b、および1010c上で実行中のプロセスとの媒体通信に提供され得る。これらの中間層のうちのいくつかは、それら自身が、コンピューティングノードのうちの1つ以上の上で実行中のプロセスを含み得る。コンピューティングノード1010a、1010b、および1010cならびにそれらの上で実行中のプロセスもまた、ルータ1008を介して互と通信し得る。代替例では、別個の通信経路が用いられ得る。いくつかの実施形態では、データセンター1020は、さらなるデータセンターと通信するように構成され得、コンピューティングノードおよびそれらの上で実行中のプロセスは、他のデータセンター内で動作するコンピューティングノードおよびプロセスと通信し得ることとなる。
【0096】
コンピューティングノード1010aは、1つ以上のプロセッサ1016、1つ以上のメモリ1018、および1つ以上の記憶デバイス1014を含む物理的ハードウェア上に存在するものとして示される。コンピューティングノード1010a上のプロセスは、オペレーティングシステムと共に実行され得る、または代替的には、プロセッサ1016、メモリ1018、または記憶デバイス1014などの物理的リソースと直接にやりとりするベアメタルプロセスとして実行され得る。
【0097】
コンピューティングノード1010bおよび1010cは、物理的プロセッサ、メモリ、および記憶デバイスなどの様々な物理的リソースに共有アクセスし得る仮想マシンホスト1012上で動作するものとして示される。任意の数の仮想化機構を、コンピューティングノードをホストするために用いられ得る。コンピューティングノード1010bおよび1010cは、仮想メモリ、仮想プロセッサ、および、コンピューティングリソースの他の仮想化された表現を含み得る。本開示の実施形態は、したがって、本明細書に開示する技法と首尾一貫した動作を実施するように構成された仮想プロセッサおよび仮想メモリを含み得る。
【0098】
図10に示す様々なコンピューティングノードは、ウェブサービス、データベース、管理システム、ビジネスオブジェクト、監視設備および診断設備などをホストするように構成され得る。コンピューティングノードとは、パソコン、サーバ、クラスタ化されたコンピューティングデバイスなどの様々な種類のコンピューティングリソースのことであり得る。ハードウェア形態で実装されたとき、コンピューティングノードは、一般に、コンピュータ可読命令を記憶するように構成された1つ以上のメモリおよび命令を読み出して実行するように構成された1つ以上のプロセッサに関連付けられる。ハードウェアベースのコンピューティングノードはまた、1つ以上の記憶デバイス、ネットワークインターフェース、通信バス、ユーザインターフェースデバイスなどを含み得る。コンピューティングノードはまた、ハイパーバイザ有りまたは無しで実装された仮想マシン、仮想化されたベアメタル環境などの仮想化されたコンピューティングリソースを範囲に収め得る。仮想化ベースのコンピューティングノードは、ハードウェアリソースに対する仮想化されたアクセスおよび仮想化されていないアクセスを有し得る。コンピューティングノードは、オペレーティングシステムおよび1つ以上のアプリケーションプログラムを実行するように構成され得る。いくつかの実施形態では、コンピューティングノードはまた、ベアメタルアプリケーションプログラムを含み得る。」

B 「

図10」

なお,本件明細書には,「コンピューティングノード」に関し,次の記載も認められる。

C 「【背景技術】
【0002】
分散型データベース管理システム(「DBMS」)は、複数のコンピューティングデバイス間で分散されるデータの記憶および取り出しを可能にし得る。分散型DBMS中のデータはテーブルに構成され、これらのテーブルが次に、ときにパーティションとして説明される項目の集合を含み得る。システムの性能、信頼性、および利用可能性を改善するために、各パーティションは各々、それが格納する項目を記憶するおよび取り出す要求を処理する別個のコンピューティングノード上に格納され得る。分散型データベースはまた、システム障害があった場合に用いられ得る待機パーティションを維持するために複製を用い得る。」

D 「【0010】
一次キーはまた、分散型DBMS中でパーティション化と共に用いられ得る。大量のデータおよび高い作業負荷需要をサポートするために、分散型DBMSは、いくつかのコンピューティングノードにわたるテーブル中のデータのパーティション化をサポートし得る。様々な形態のパーティション化がサポートされ得る。水平方向パーティション化では、各々のコンピューティングノードが、項目の集合のサブセットを維持し得る。垂直方向パーティション化では、データは列またはフィールドに基づいて分割され得、各々のコンピューティングノードが、テーブル上で定義された列のサブセットを含みこととなる。いくつかの分散型DBMSは、2つの形態のパーティション化を組み合わせ得る。
【0011】
本明細書で用いられる水平方向および垂直方向パーティション化という用語は、前述の段落と首尾一貫するデータセットの分割を指す。実施形態は、別個のコンピューティングノード上で各々の水平方向または垂直方向のパーティションをホストし得る。本明細書で用いられるパーティションという用語は、一般には、コンピューティングノード上でホストされる水平方向または垂直方向のパーティションのことであるが、この用語はまた、ただ1つのパーティションしか持たないテーブルを含み得る。本明細書で用いられるファンアウトパーティション、非投票メンバー、および複製パートナーは、パーティションのサブカテゴリを指す。
【0012】
水平方向パーティション化の1つの方法には、様々なコンピューティングノード間でランダムにまたはセミランダムにデータを分散する方法を適用することを伴う。図1Aに、そのような1つの方法を示す。一次キー100は、ハッシュキー構成要素102および範囲キー構成要素104を含む。パーティション108、110、および112上でのデータのランダムにまたはセミランダムの分散は、分散型DBMS114の製造を向上させ得る。したがって、項目は、ハッシュキー構成要素102に対するハッシュ関数106の適用に基づいてパーティション108、110、および112のうちの1つ上に記憶され得る。
【0013】
ハッシュ関数106は、一次キー値を、キー空間と記述され得るものの中で、整数などの別の値に変換するコンピュータコードであり得る。ハッシュ関数106は、入力された一次値を、キー空間中でセミランダムポイントに変換するように構成され得るが、所与の入力値は、関数が呼び出されるごとに、キー空間中の同一のポイントに変換される。所与のハッシュ関数は、入力値から、キー空間中のポイントの有限のセット、すなわち、バケットにマッピングし得る。様々な実施形態では、ハッシュ関数106は、あるポイントの周りのマッピングをクラスタ化し得る。いくつかのハッシュ関数の場合、これは、入力値が類似しているときに発生し得る。スキューイングは性能を劣化させ得るが、その理由は、それが結果として、特定のコンピューティングノード上に項目の不均一な分布を生じさせ得るからである。この問題を防ぐ1つの手法は、多数の離散的なポイントをキー空間内にマッピングするハッシュ関数を用いることである。すると、キー空間の領域が、コンピューティングノードに割り当てることが可能となる。代替例では、キー空間の領域を、コンピューティングノードを参照する中間データ構造に割り当てることが可能である。異なる領域が、同一のコンピューティングノードまたは中間データ構造にマッピングされ得る。
【0014】
図1Aに戻ると、一次キー100のハッシュキー102が、ハッシュ関数106に対する入力値として供給され得る。ハッシュキー102の所与の値に対して、ハッシュ関数106の適用は、ハッシュキー116に対応する出力を生成する。ハッシュ関数106の出力は、所与の入力値に対して一定である。ハッシュ関数106に対する他の値の適用は、他の可能性のある出力118を生成し得るが、任意の入力値に対する結果は、首尾一貫している。首尾一貫した出力116は、一次キー100に対応する項目を最初にどこに記憶するかを決定するために用いられ得る。加えて、ハッシュ関数106の出力は、所与の入力値に対して首尾一貫しているため、ハッシュキー102が、項目が直前にどこに記憶されたかを決定するために、ハッシュ関数106に適用され得る。
【0015】
テーブルは複数の水平方向パーティションに分割することが可能であるが、各々の水平方向パーティションは、同一の項目が2つ以上のコンピューティングノード上に記憶されるように、または、ほぼ同一の水平方向パーティションが2つ以上のコンピューティングノード上でホストされるように、コンピューティングノード間で複製化され得る。これがシステムの利用可能性を向上させ得、その理由は、コンピューティングノードのうちの1つが、利用不可能になると、複製されたデータを有する別のコンピューティングノードが、割って入ってしかるべき地位を占めることが可能となり得るからである。複製化は、負荷を複数のコンピューティングノード間で共有することを可能にすることによってシステムのスケーラビリティを向上させ得る。
【0016】
複製されたパーティション間の首尾一貫性は、複製されたパーティション間のクォーラムまたは合意を伴う技法を用いて維持され得る。実施形態は、現在アクティブなコンピューティングノード間のクォーラムしか必要とし得ず、これが利用可能性を向上させ得、その理由は、それが、コンピューティングノードの全てがオンラインであることを必要とはしないからである。
【0017】
いくつかの実施形態では、クォーラムは、最小の数のコンピューティングノードが読み出し動作または書き込み動作に参加することを決定することを伴い得る。読み出し動作の場合、少なくとも最小数のコンピューティングノードが、項目を読み出す要求に応答しなければならない。データは必ずしも即座には複製されるわけではないため、2つの所与のコンピューティングノードが同一の項目に対して異なる値を有するわけである。そうであれば、いくつかの実施形態は、データの各々のバージョンを、バージョンを記述する情報と共に返送し得る。書き込み動作の場合、クォーラムは、最小の数のコンピューティングノードが、書き込み動作の成功に確認応答することを伴い得る。例えば、3つのコンピューティングノードが複製されたデータを共有する場合、3つのコンピューティングノードのうちの2つの書き込み動作が、必要とされなければならない。実施形態は、伴う動作の種類に基づいて異なるクォーラム要件を課し得る。例えば、書き込み動作は、クォーラムを達成するために、より高い閾値数のコンピューティングノードを伴い得る。
【0018】
図1Bは、マスター154ならびにクォーラムパートナー152および156から成る分散型DBMS158の実施形態を図示する。これらの各々は、別個のコンピューティングノード上でホストされ得るし、また、別個のデータセンター内に位置付けされ得る。クライアントアプリケーション150は、データの読み出しまたは書き込みなどの様々な動作をマスターパーティションに対して実施する要求を発行し得る。いくつかの実施形態は、全ての動作に対して同一のマスターを用い得るが、他の実施形態は、コンピューティングノードの任意のものがマスターとして機能することを許容し得る。要求を受信すると、マスター154は、クォーラムパートナー152および156の関与を保証する。関与するクォーラムパートナーの数は、クォーラムにとって必要とされる数に依存し得る。代替例では、マスター154は、現在動作しているクォーラムパートナーの過半数の関与に基づいて、クォーラムが存在すると決定し得る。クォーラムにとって必要とされるように、いったん要求が十分な数のコンピューティングノード上で成功裏に処理されると、動作の結果がクライアントアプリケーション150に返送され得る。」

E 「

図1A」

F 「

図1B」

G 「【0025】
図2Bは、テーブルパーティション250ならびに索引パーティション254および256の配列を示す例示の実施例である。索引パーティションは、索引構造、多分その一部分(すなわち、パーティション化された索引)をホストするコンピューティングノードを含み得る。図示する実施例では、第1の索引パーティション254は、A〜Mの範囲内に入るテーブルパーティション250上に記憶された項目に対する索引エントリを含み、第2の索引パーティション256は、N〜Zの範囲の項目に対する索引を含む。」

H 「

図2B」

I 「【0045】
他のパーティションに送信される命令の一部または全ては、変更要求を受信したパーティションに適用可能であり得る。動作508は、変更要求を受信したパーティション上でこれらの命令を実施することを示す。加えて、動作508は、非ローカルな索引または他の命令を変更する命令を実施することに関与し得る。例えば、図2Aでは、第1のパーティション200は、遠隔に位置付けされたパーティションまたは他のコンピューティングノード上の索引構造を修正する命令を実施し得る。他の実施形態は、非ローカルな命令を、構造をホストしているパーティションに命令を送信することによって実施されるようにし得る。」

J 「【0059】
図7Aは、システム障害後に受信バッファの内容を回復する実施形態を図示する。一連の動作として示されているが、当業者は、示される動作のうちの少なくともいくつかは、変更され、省略され、順序が変えられ、または並行して実施され得ることを理解するであろう。

…(中略)…

【0066】
図7Aに戻ると、動作706は、送信パーティションから第2の命令を受信することを示す。しかしながら、実行する前に、システム障害708が発生し得、第2の命令が、実施される前に受信コンピューティングノードのメモリから消去される結果となる。
【0067】
図7Bに示す記録されたPIDおよびLSN値が、図7Aに見るように、システム障害708から回復する際に用いられ得る。システム障害は、受信パーティションの再開始を必要とし得る様々な事象を含み得る。再開始すると、受信パーティションの受信バッファに直前に含まれた命令が、消去されている。
【0068】
図7Aの動作710は、回復プロセスの開始を示す。停電などのいくつかの場合では、回復は、いったん電力が回復して、パーティションをホストしているコンピューティングノードが再ブートすると、開始し得る。いくつかの場合、新たなマスターパーティションが選択されて得るが、この場合、複製ログが、回復を開始する前に、新たなマスターに移送され得る。」

(2)上記記載事項A〜Jから,次のア〜チに示す事項を読取ることができる。

ア データセンター1020内で動作するコンピューティングノード1010a,1010b,および1010c上で実行中のプロセスとの通信は,ゲートウエイ1006およびルータ1008を介して提供され,コンピューティングノードおよびそれらの上で実行中のプロセスは,他のデータセンター内で動作するコンピューティングノードおよびプロセスと通信すること。(【0095】)

イ コンピューティングノード1010aは,1つ以上のプロセッサ1016,1つ以上のメモリ1018,および1つ以上の記憶デバイス1014を含む物理的ハードウェア上に存在すること。(【0096】)

ウ コンピューティングノード1010bおよび1010cは,物理的プロセッサ,メモリ,および記憶デバイスなどの様々な物理的リソースに共有アクセスし得る仮想マシンホスト1012上で動作するものとして示されること。(【0097】)

エ 図10に示す様々なコンピューティングノードは,ウェブサービス,データベース,管理システム,ビジネスオブジェクト,監視設備および診断設備などをホストし,コンピューティングノードとは,パソコン,サーバ,クラスタ化されたコンピューティングデバイスなどの様々な種類のコンピューティングリソースのことであり,ハードウェア形態で実装されたとき,コンピューティングノードは,一般に,コンピュータ可読命令を記憶するように構成された1つ以上のメモリおよび命令を読み出して実行するように構成された1つ以上のプロセッサに関連付けられ,ハードウェアベースのコンピューティングノードはまた,1つ以上の記憶デバイス,ネットワークインターフェース,通信バス,ユーザインターフェースデバイスなどを含み,コンピューティングノードは,仮想マシン,仮想化されたベアメタル環境などの仮想化されたコンピューティングリソースを範囲に収め,オペレーティングシステムおよび1つ以上のアプリケーションプログラムを実行するように構成されること。(【0098】)

オ 図10の記載から,コンピューティングノードは,データセンター内に複数設けられ,これと同じ構成要素として,仮想マシンホストが設けられることも例示され,当該仮想マシンホスト内に,コンピューティングノードが複数設けられる態様を読取ることができる。

カ 分散型DBMS中のデータはテーブルに構成され,これらのテーブルがパーティションとして説明される項目の集合を含み,各パーティションは各々,それが格納する項目を記憶するおよび取り出す要求を処理する別個のコンピューティングノード上に格納されること。(【0002】)

キ 分散型DBMSは,いくつかのコンピューティングノードにわたるテーブル中のデータのパーティション化をサポートし,水平方向パーティション化では,各々のコンピューティングノードが,項目の集合のサブセットを維持し,垂直方向パーティション化では,データは列またはフィールドに基づいて分割され,各々のコンピューティングノードが,テーブル上で定義された列のサブセットを含むこと。(【0010】)

ク 別個のコンピューティングノード上で各々の水平方向または垂直方向のパーティションをホストし,パーティションはコンピューティングノード上でホストされる水平方向または垂直方向のパーティションのことをいうこと。(【0011】)

ケ 水平方向パーティション化の1つの方法には,様々なコンピューティングノード間でランダムにまたはセミランダムにデータを分散する方法があること。(【0012】)

コ 多数の離散的なポイントをキー空間内にマッピングするハッシュ関数を用いると,キー空間の領域が,コンピューティングノードに割り当てることが可能となること。(【0013】)

サ テーブルは複数の水平方向パーティションに分割することが可能であり,各々の水平方向パーティションは,同一の項目が2つ以上のコンピューティングノード上に記憶されるように,または,ほぼ同一の水平方向パーティションが2つ以上のコンピューティングノード上でホストされるように,コンピューティングノード間で複製化されること。
コンピューティングノードのうちの1つが,利用不可能になると,複製されたデータを有する別のコンピューティングノードが,割って入ってしかるべき地位を占めることが可能となるため,システムの利用可能性を向上させること。
複製化は,負荷を複数のコンピューティングノード間で共有することを可能にすることによってシステムのスケーラビリティを向上させること。(以上,【0015】)

シ コンピューティングノードの全てがオンラインであることを必要とはしないため,利用可能性が向上すること。(【0016】)

ス クォーラムは,最小の数のコンピューティングノードが読み出し動作または書き込み動作に参加することを決定することを伴うこと。
読み出し動作の場合,少なくとも最小数のコンピューティングノードが,項目を読み出す要求に応答しなければならず,データは必ずしも即座には複製されるわけではないため,2つの所与のコンピューティングノードが同一の項目に対して異なる値を有し,データの各々のバージョンを,バージョンを記述する情報と共に返送すること。
書き込み動作の場合,クォーラムは,最小の数のコンピューティングノードが,書き込み動作の成功に確認応答し,例えば,3つのコンピューティングノードが複製されたデータを共有する場合,3つのコンピューティングノードのうちの2つの書き込み動作が,必要とされること。(以上,【0017】)

セ コンピューティングノードの任意のものがマスターとして機能し,マスター154は,現在動作しているクォーラムパートナーの過半数の関与に基づいて,クォーラムが存在すると決定し,クォーラムにとって必要とされるように,いったん要求が十分な数のコンピューティングノード上で成功裏に処理されると,動作の結果がクライアントアプリケーション150に返送されること。(【0018】)

ソ 図2Bは,テーブルパーティション250ならびに索引パーティション254および256の配列を示し,索引パーティションは,索引構造の一部分(すなわち,パーティション化された索引)をホストするコンピューティングノードを含むこと。(【0025】)

タ 第1のパーティション200は,遠隔に位置付けされたパーティションまたは他のコンピューティングノード上の索引構造を修正する命令を実施すること。(以上,【0045】)

チ システム障害後に受信バッファの内容を回復する実施形態では(【0059】),送信パーティションから第2の命令を受信し,システム障害708が発生すると,第2の命令が実施される前に受信コンピューティングノードのメモリから消去される結果となり(【0066】),記録されたPIDおよびLSN値が,システム障害708から回復する際に用いられ(【0067】),回復プロセスにおいて電力が回復して,パーティションをホストしているコンピューティングノードが再ブートし,新たなマスターパーティションが選択され,複製ログが,回復を開始する前に,新たなマスターに移送されること(【0068】)。

(3)一方,特許請求の範囲の請求項1には,「第1コンピューティングノード」及び「第2コンピューティングノード」に関し,次の構成が記載されている。

ア 構成B
(ア)「第1のコンピューティングノード」が,「1つ以上の第1の記憶デバイスを含む」ものであること。
(イ)「前記1つ以上の第1の記憶デバイス」には,「ログファイルと、1つ以上のエントリの第1の索引と、が記憶されて」いること。
(ウ)「前記第1の索引中の前記1つ以上のエントリは、第1の項目の集合内の複数の項目を参照する」こと。

イ 構成C
(ア)「第2のコンピューティングノード」が「メモリと1つ以上の第2の記憶デバイスとを含む」ものであること。
(イ)「前記1つ以上の第2の記憶デバイスには第2の索引が記憶されて」いること。
(ウ)「第2のコンピューティングノード」には,「前記第1の項目の集合」,すなわち上記アの構成Bより,「第1のコンピューティングノード」に含まれる「第1の記憶デバイス」が記憶する,「第1の索引」中の「1つ以上のエントリ」が参照するところの,「第1の項目の集合」が記憶されていること。
(エ)「前記第2の索引」が,「第1のコンピューティングノード」が記憶する「第1の項目の集合」(「前記第1の項目の集合」は,上記ア(ウ)における,「第1の項目の集合」を意味するものと解されるので,当該「前記第1の項目の集合」は,「第1のコンピューティングノード」が記憶するものと解される。)の「少なくともサブセット」を「参照する」ものであること。

ウ 構成H
(ア)「第2のコンピューティングノード」は,「最後の命令」を「第1のコンピューティングノード」から受信するものであること。(令和3年6月22日に提出された意見書によれば,当審拒絶理由通知における理由2の(4)において,「請求項1に,「前記第1のコンピューティングノードから受信され、」とあるが,どの語句ににかかるものか,不明確である」旨通知したことに対応して,「「前記第1のコンピューティングノードから受信され」が「最後の命令」にかかることを明確にし」た旨釈明していることから,このように解される。)
(イ)「第2のコンピューティングノード」はまた,当該「最後の命令」を,「第2の索引に対して実施」するものであること。
(ウ)「システム」は,「前記第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令の記録に少なくとも部分的に基づいて、前記第1の動作を示す命令を前記第2のコンピューティングノードに送信する」こと。
(エ)「第2のコンピューティングノード」は,「前記第1の動作を示す命令に少なくとも部分的に基づいて、前記第1の動作と同等の第2の動作を実施」するものであり,「前記第2の動作は、前記第1の索引中の前記1つ以上のエントリに対応する前記第2の索引中の1つ以上のエントリを修正する」ものであること。

エ 構成J
(ア)「第1のコンピューティングノード」および「第2のコンピューティングノード」は,「クォーラムメンバー」であり,「前記第1のコンピューティングノードおよび前記第2のコンピューティングノードが、クライアントアプリケーションによって発行される読み出し要求または書き込み要求を実施した場合には、前記読み出し要求または書き込み要求の結果が、前記第1のコンピューティングノードから返送される」こと。

(4)上記1(2)の各事項と上記1(3)のア〜チの記載とを対比する。

ア 上記1(3)アの構成Bのうち,(ア)に関する事項は,上記1(2)イの事項に対応する。
一方,上記1(3)アの構成Bのうち,(イ)及び(ウ)に記載された,「ログファイル」,「1つ以上のエントリの第1の索引」,「第1の項目の集合」及び「複数の項目を参照」することに関しては,審判請求人が意見書において主張する上記1(2)のア〜オのいずれにも記載されていない。
また,同(イ)及び(ウ)に関しては,上記1(2)のカ〜チにおいても,直接このことを示す事項は記載されておらず,本願発明の構成Bは,本件明細書の発明の詳細な説明に記載されたものとはいえない。

イ 上記1(3)イの構成Cのうち,(ア)に関する事項は,上記アと同様,上記1(2)イの事項に対応する。
一方,上記1(3)イの構成Cのうち,(イ)〜(エ)に記載された,「第2の索引」,「第1の項目の集合」,「第1の索引」,及び「第1の項目の集合」の「少なくともサブセットを参照する」ことに関しては,審判請求人が意見書において主張する上記1(2)のア〜オのいずれにも記載されていない。
また,同(イ)〜(エ)に関しては,上記1(2)のカ〜チにおいても,直接このことを示す事項は記載されておらず,本願発明の構成Cは,本件明細書の発明の詳細な説明に記載されたものとはいえない。

ウ 上記1(3)ウの構成Hの(ア)〜(エ)に記載された,「最後の命令」,「最後の命令」を「第2の索引に対して実施」すること,「第1の動作を示す命令」及び「前記第1の動作と同等の第2の動作」に関しては,審判請求人が意見書において主張する上記1(2)のア〜オのいずれにも記載されていない。
また,同(ア)〜(エ)に関しては,上記1(2)のカ〜チにおいても,直接このことを示す事項は記載されておらず,本願発明の構成Hは,本件明細書の発明の詳細な説明に記載されたものとはいえない。

エ 上記1(3)エの構成Jの(ア)に記載された,「クォーラムメンバー」,及び「クライアントアプリケーションによって発行される読み出し要求または書き込み要求を実施した場合」に,「前記読み出し要求または書き込み要求の結果が、前記第1のコンピューティングノードから返送される」ことに関しては,審判請求人が意見書において主張する上記1(2)のア〜オのいずれにも記載されていないものの,上記1(2)のス及びセには,概ね対応する記載が認められる。

オ 以上,ア〜エの検討から,本願発明の,少なくとも構成Bの一部,構成Cの一部,構成Hに関し,本件明細書の発明の詳細な説明に記載されたものとはいえない。

2 「第1の索引」及び「第2の索引」について

(1)当審拒絶理由通知では,理由1(2)として,「請求項1において,「第1の索引」及び「第2の索引」とあるが,それぞれ何を表すものか,不明確である」旨を通知した。
これに対し,意見書において,審判請求人は,「『第1の索引』および『第2の索引』は、図2Bおよび3ならびに段落0026乃至0028において、『第1の索引』および『第2の索引』として説明されて」いる旨を主張しているので,当該箇所の本件明細書の記載を参酌すると,次の記載が認められる。

A 「【0026】
テーブルパーティション250上の項目の集合252内に記憶された項目の更新は、索引パーティション254上の第1の索引258と、索引パーティション256上の第2の索引260とに対する対応する変化を必要とし得る。これは、値が変化するときに発生し得るが、その値は、索引によって用いられるキーに対応する。例えば、そのような値がNからEに変化した場合、それに対応するエントリは、第1の索引258から削除されて、第2の索引260に追加される必要があるであろう。
【0027】
図3は、索引付けられた値に対する変更の結果として生じる複数の索引更新を示す例示の実施例である。例示目的で、テーブルは、図2Bに示すように、第1の索引パーティション254および第2の索引パーティション256を含むものと想定される。図3は、項目の値のうちの1つに対する変更の前および後の、項目の集合および関連付けられた索引の状態を示す。例示目的で、図2Bに示すパーティション化方式が想定され得る。したがって、第1の索引308aは、A〜Mの範囲のキー値をマッピングし、第2の索引310aは、N〜Zの範囲のキー値をマッピングする。項目306aが変更される前では、Nというその値に対応するエントリは、第2の索引310a内の索引エントリ312中に見出される。
【0028】
項目304aのセットの項目306aは、項目306bによって示されるように最初は、Nという値を有するが、次にEに変更される。変更された値は、更新された項目304bに反映される。第1の索引308bもまた変更され、新たなエントリ314を有し、項目306bの新たな状態を反映する。同様に、索引エントリ312が、第2の索引310bから削除される。」

B 「

図2B」

C 「

図3」

また,「第1の索引」及び「第2の索引」に関連し,「索引」又は「索引構造」に関し,本件明細書には次の記載が認められる。

D 「【0003】
索引は、分散型DBMS中に記憶された項目を位置特定することを可能にするデータ構造として説明され得る。それらは、例えば、データの特定の範囲に入る項目が、パーティションのうちの1つ以上に記憶された項目の全てにわたって検索するのではなくて索引をスキャンすることによって位置特定されることを可能にする。分散型DBMSは、ローカル索引およびグローバル索引を含み得る。ローカル索引は、1つのパーティション上に記憶された項目を指す索引として説明することが可能である。グローバル索引という用語は、テーブルによって維持されるデータの全てを指す索引を説明するために用いられ得る。複製のため、分散型DBMSは、ローカル索引およびグローバル索引各々の複数のバージョンを含み得る。これらの索引のいくつかは、分散型DBMSによって維持されるデータが追加、削除、または変更されたときに更新され得る。」

E 「【0020】
データに対する様々な動作は、一次索引に加えて索引構造を用いることによってより効率的にされ得る。キー値データベースでは、二次索引が、潜在的に一意でないキー値によってアドレス指定可能である1つ以上のデータ構造を含む。一次キー値とは異なって、二次キー値は、必ずしも一意ではない。言い換えれば、1つの二次キー値は、二次索引中の1つ以上のエントリを参照し得る。
【0021】
所与の項目に対して、二次索引キーは、項目を構成する値のうちの1つ以上を含み得る。様々な実施形態では、二次索引はまた、二次キー値によってアクセス可能であるそのエントリから項目の記憶位置へのマッピングを含み得る。しかしながら、いくつかの実施形態では、このマッピングは省略され得る。二次索引エントリは、項目ストアから全項目を取り出すために用いられ得る、一次キー値のコピーまたは一次索引への直接的参照を含み得る。ベーステーブルとも呼ばれ得る項目ストアは、記憶デバイス上で維持される項目の集合を含む。項目ストア中に記憶された項目は、項目に関連付けられた値または名称値対の全てを含み得る。項目ストア中のデータは、水平方向または垂直方向にパーティション化され、そうである場合には、項目ストアのサブセットは、2つ以上のコンピューティングデバイス上に存在し得る。
【0022】
索引構造は2つ以上のパーティションにおよび得る。図2Aは、テーブルの2つのパーティションを示し、第1のパーティション200が、文字Aから始まってMまで及ぶキー値を持つデータを含み、第2のパーティション202がN〜Zを含む。各々のパーティションはまた、パーティション上に記憶された項目の索引を含み得る。パーティション200上の索引212は、A〜Mに対応するエントリを含み、パーティション202上の索引214は、N〜Zに対応するエントリを含む。一緒にすると、索引212および214はグローバル索引であるとみなされ得、その理由は、それらは一緒に、テーブル中の項目の全てを参照するからである。」

F 「【0024】
図示する実施例では、第1のパーティション200または第2のパーティション202上のデータの更新は、他のパーティション上に記憶されているデータおよび作新に影響し得る。1つの実施例として、第1のパーティション200上に記憶されている項目の更新は、複製パートナー204および206に複製され、同様に、索引216および218の更新を必要とし得る。別の実施例として、第1のパーティション200上に記憶された項目が変更され、そのため、それが今度は、第2のパーティション202上に記憶されているはずであるような場合、パーティション200および202、複製パートナー204、206、208、および210、ならびに索引212、214、216、218、220、および222が、第1のパーティション200から除去され第2のパーティション202に追加されている項目を反映するように更新され得る。
【0025】
図2Bは、テーブルパーティション250ならびに索引パーティション254および256の配列を示す例示の実施例である。索引パーティションは、索引構造、多分その一部分(すなわち、パーティション化された索引)をホストするコンピューティングノードを含み得る。図示する実施例では、第1の索引パーティション254は、A〜Mの範囲内に入るテーブルパーティション250上に記憶された項目に対する索引エントリを含み、第2の索引パーティション256は、N〜Zの範囲の項目に対する索引を含む。」

G 「【0029】
直前で説明した変更は、いくつかの離散的な行為を含むものとして見なされ得る。第一に、値Nを含む項目の集合中の項目が、Eという新たな値を反映するように更新された。第二に、削除動作が索引に対して実施されて、古いN値に対応するエントリを除去した。第三に、エントリが索引に追加されて、新たなE値を反映した。本明細書に開示する様々な実施形態では、これらのような変更を表す命令が、更新パイプラインを介して分散型DBMSの様々な構成要素に分散され得る。
【0030】
分散型DBMSでは、各々のパーティションは、そのパーティションに加えられた変更を記述する複製ログを有し得る。複製ログは、パーティション上に記憶された項目の追加、削除、または修正などの、そのパーティション上に記憶されたデータに加えられた変更を記述し得る。複製ログに追加された全ての変更は、パーティションが最初に作成されたときの1から始まり、連続的に増加するログの通し番号(「LSN」)を含み得る。加えて、各々のパーティションは、パーティションを識別するパーティションID(「PID」)によって識別され得る。LSNとPIDとの組み合わせを用いて、パーティションに加えられた変更を一意に識別し得る。
【0031】
分散型DBMSは、項目の値が変化したことを示すエントリを複製ログ中に記録し得る。変更のコンパクトな表現は、一次キー値と、変化した任意のさらなる値とを供給し得る。実施形態はまた、グローバルおよびローカルの二次索引に対して更新を実施することと組み合わせて、複製ログを用い得る。図2Aを例として用いると、項目の更新は、エントリを索引212から削除して、エントリを索引214に追加することを伴い得る。第1のパーティション200からの複製ログは、クォーラムメンバー204および206に送り出され得、第2のパーティション202からの複製ログは、クォーラムメンバー208および210に送り出され得る。
【0032】
複製パートナーメンバー204は、複製ログの処理の1つの方法を解説するための実施例として用いられ得る。複製ログを受信すると、クォーラムメンバー204は、ログ中の各々のエントリを処理して、エントリがどの種類の変更を表すかを決定し得る。各々のエントリに対して、複製パートナー204は、その記憶ロケーション中の項目を更新することによって変更を適用し、どの索引構造を更新すべきかを決定し、次にこれらの変更を適用し得る。
【0033】
第1のパーティション200などのパーティションから取得された複製ログは、204および206などの複製パートナーに送り出され得る。分散型DBMSの実施形態は、変更のコンパクトな表現を含む複製ログを送出し得る。そうであれば、複製パートナー204および206は、どの索引構造を更新する必要があるかを決定するなどのステップを実施することを含み、他の更新に対してと同様に、更新を処理し得る。
【0034】
しかしながら、実施形態は、複製ログエントリが、更新中にマスターパーティションによって実施される動作に対応する命令のセットを含むように拡張される代替の手法を用い得る。この手法は、マスターパーティションが、どの索引構造が更新する必要があるかを決定することを可能にし、その情報を複製ログに含むことによって、性能を向上させ得る。実施例として再度複製パートナー204を用いると、それは、第1のパーティション200から複製ログを受信し得る。ログ中の各々のエントリは、記憶されている項目と、影響された任意の索引構造とを更新するために実施することが可能な動作の順序を記述する情報を含み得る。
【0035】
図4は、索引構造を更新する命令を含む複製ログの実施形態を図示する。ログエントリ418は、複製ログ中のエントリを表す。複製ログを記述する1つの方法は、行および列を持つテーブルという観点からのものである。ログエントリ418は、PID列400、ログ通し番号(「LSN」)列402、ISN列404、および変更記述列406を含む。PID列400は、要求を処理している送信パーティションを示し得る。この列からの値が、送信者を識別するために受信パーティションに送信され得る。
【0036】
示されるログエントリ418の全てが、示されるログエントリ418の全てに対して同等である、パーティションid列400およびログ通し番号列402の値によって示されるように、1つの変更に対応する。3つの命令が示される。項目更新408は、ディスク上に記憶されている項目の{INDEX KEY=“E”}の新たな値への更新を表し、式中、INDEX KEYは、これまた索引中で用いられるキーである項目中の値のことである。さらなる項目もまた、変更され得るが、図4には示されていない。索引削除410は、最新ではない値{INDEX KEY=“N”}に対応するエントリを二次索引から除去する動作を表す。索引追加412は、新たな値{INDEX KEY=“E”}に対応するエントリを二次索引に追加する動作を表す。実施形態は、各々の命令を、ISN列404に示すようなものなどのISN値に関連付け得る。ISN値は、命令を実施すべき順序を示すために用いられ得る、または、命令を一意に識別するために用いられ得る。
【0037】
様々な実施形態では、要求された修正を適用するパーティションは、ローカルデータ構造と遠隔データ構造との両方が、更新を完了するために変更する必要があることを決定し得る。したがって、ログエントリ400は、動作414と対象416との両方を含み得る。図4では、項目更新408は、テーブルパーティション、すなわち、索引ではなく項目の集合を保持するパーティションと、命令を処理する同一のパーティションとを対象とするものと想定され得る。索引削除410および索引追加412は、各々が、索引データしか保持しないパーティションであり得る索引パーティションを対象とし得る。しかしながら、実施形態は、同一のパーティション上でホストされる索引および項目の集合と、様々な順列での異なるパーティションまたは複数のパーティションと、に関与し得る。ある実施形態では、対象指定は、パーティション識別子を含み得る。更新されていると特定の索引または他の構造の識別子などの他の要素もまた、含まれ得る。
【0038】
変更を処理することは、結果として、2つ以上のパーティション上に位置付けされた構造に対する動作を生じ得るため、実施形態は、命令を他の影響されたパーティションに分配するための様々な機構を用い得る。このような1つの機構は、送信バッファおよび受信バッファに関与し得る。あるパーティション上では、送信バッファが、命令が送信され得る各々のパーティションに対して確立され得、受信バッファが、命令が受信され得る各々のパーティションに対して確立され得る。
【0039】
様々な命令種類が、複製ログ中に含まれ得るおよび/または処理目的で他のパーティションに送信され得る。非限定的な実施例は、挿入、更新、および削除などの、項目または索引に対する様々な変更を含む。組み合わされた索引挿入および削除などの組み合わされた動作もまた、示され得る。命令もまた、動作のセットをアトミックなトランザクションとして実施すべきであるとの指示を含み得る。」

H 「【0040】
図5は、命令を記録して、1つのパーティションから1つ以上の影響されたパーティションに送信するための実施形態を図示するフローチャートである。一連の動作のとして示されているが、当業者は、示される動作の少なくとも一部は、変更され、省略され、記録され、または並行して実施され得ることを理解するであろう。
【0041】
動作500は、変更要求を受信することを示す。変更要求は、新たな項目を追加すること、項目を成す1つ以上の既存の値を更新すること、さらなる値を追加すること、項目を削除することなどを含み得る。変更要求は、次に、何の構造が影響されるかを決定するおよび複製ログに書き込む命令の一覧を編成するために、動作502によって示されるように分析され得る。いくつかの実施形態では、命令は、例えば、索引および他の命令に対する修正を、それらが発生するに連れて補足して記録することによって、一覧を編成することと同時に並行して実施され得る。他の実施形態は、索引および他の構造を修正する前に、変更要求を分析し得る。例えば、クエリオプティマイザまたは他のデータベース構成要素が、命令の一覧が取得され得る要求のための実行プランを決定し得る。
【0042】
命令の一覧は、動作504によって示されるように、複製ログファイルに書き込まれ得る。いったん書き込まれると、命令は、それらがシステム障害後でも依然として処理され得るため、持続するものとみなされ得る。ログファイルは、どのエントリがローカルで処理されたか、および、どのエントリが成功裏に他のパーティションに送信されたかの指示を含み得る。
【0043】
命令は持続するものとみなされる得るため、変更要求は、動作505によって示されるように、変更要求のイニシエータに対して、変更要求は、最終的に首尾一貫しているものとして確認応答され得る。言い換えれば、変更された項目または索引エントリを対象とする次の読み出し動作は、それでも古い値を返し得るが、新たな状態を反映するように最終的に更新される。実施形態は、例えば、命令が504でログに書き込まれた後、ローカル命令が508で実施された後、全ての命令が510で確認応答されたときなどの様々なレベルの首尾一貫性に対して、確認応答を、変更要求のイニシエータに送信されることを可能とし得る。変更要求のイニシエータは、終局的または即座の首尾一貫性などのなんのレベルの首尾一貫性が望まれるかを示し得る。
【0044】
動作506は、複製ログ中の命令を影響されたパーティションに伝送することを示す。実施形態は、命令を送信バッファに書き込むことに関与する技法を用い得、この送信バッファは、命令を、それらが影響されたパーティションに送信され、命令の受信が確認応答されるまで保持し得る。別個の送信バッファが、各々の宛先パーティションに対して用いられ得る。実施形態はまた、命令をそれらの対応する宛先パーティションに相関させる情報を含む1つの送信バッファを用い得る。
【0045】
他のパーティションに送信される命令の一部または全ては、変更要求を受信したパーティションに適用可能であり得る。動作508は、変更要求を受信したパーティション上でこれらの命令を実施することを示す。加えて、動作508は、非ローカルな索引または他の命令を変更する命令を実施することに関与し得る。例えば、図2Aでは、第1のパーティション200は、遠隔に位置付けされたパーティションまたは他のコンピューティングノード上の索引構造を修正する命令を実施し得る。他の実施形態は、非ローカルな命令を、構造をホストしているパーティションに命令を送信することによって実施されるようにし得る。」

I 「【0056】
受信パーティション604は、索引624を含み、それは解説目的で、命令632および634の対象のうちの1つとみなされ得る。受信パーティション604はまた、それが命令を受信し得る各々のパーティションに対して1つの受信バッファを含み得る。したがって、図6は、送信パーティション600および602に対応する2つの受信バッファ620および622を示す。受信バッファ626および628ならびに索引630を含む受信パーティション606は、受信パーティション604と同様に構成され、類似した様式で動作する。
【0057】
受信バッファ620および622は、揮発性メモリ中に保持され得るし、結果として、バッファ中に保持される命令は、システム障害の際に失われ得る。しかしながら、実施形態は、システムログエントリを再生することによってシステム障害を回復し得る。図6に示すシステムが故障した場合、回復すると、ログファイル612および618を再生することが可能であり、したがって、ログファイル162および618中の確認応答されていない命令は、再度、受信パーティション604に送信されて、バッファ620および622中に記憶され得る。
【0058】
いったんバッファ620および622中に配置されると、命令は実行され得る。命令を実行することは、索引624中のエントリを挿入すること、更新すること、さもなければ修正することを伴い得る。いったん命令が実行されると、それは、受信バッファから除去され得る。実施形態は、アトミックなトランザクションの文脈で、命令を実行し、それを受信バッファから除去して、命令が失われるまたは重複されることを回避する支援となり得る。
【0059】
図7Aは、システム障害後に受信バッファの内容を回復する実施形態を図示する。一連の動作として示されているが、当業者は、示される動作のうちの少なくともいくつかは、変更され、省略され、順序が変えられ、または並行して実施され得ることを理解するであろう。
【0060】
動作700で、第1の命令は、送信パーティションから受け取られ、受信バッファ内に配置され得る。受信された命令は、PID、LSNなどの識別情報を伴い得る。実施形態はまた、グローバル一意識別子(「GUID」)または類似した機構を用い得る。
【0061】
受信後、命令は、動作702によって示されるように実行され得る。命令を実行することは、受信パーティション上の索引および他のデータ構造に対する様々な修正を実施することを含み得る。例えば、命令は、索引からエントリを削除すること、エントリを索引に挿入すること、索引中の値を更新すること、項目値を更新することなどを含み得る。本明細書で用いられる命令という用語は、複数のサブ命令を含み得る。実施形態は、アトミックなセットとして命令を実施し得るため、サブ命令の全てが完全に実行されるか、または、どれも発効することを許容されないかのどちらかである。」

J 「

図6」

(2)上記記載事項A〜Jから,次のア〜タに示す事項を読取ることができる。

ア テーブルパーティション250上の項目の集合252内に記憶された項目を更新すると,索引パーティション254上の第1の索引258と,索引パーティション256上の第2の索引260とに対する対応する変化が生じ,例えば,項目NがEに変化した場合,それに対応するエントリは,第1の索引258から削除され,第2の索引260に追加されること。(【0026】)

イ 図3は,索引付けられた値(項目)に対する変更の結果として生じる複数の索引の更新の様子を示すとともに,項目の値のうちの1つに対する変更の前と後の,項目の集合および関連付けられた索引の状態を示すものであり,テーブルは,第1の索引パーティション254および第2の索引パーティション256を含み,第1の索引308aは,A〜Mの範囲のキー値をマッピングし,第2の索引310aは,N〜Zの範囲のキー値をマッピングし,項目306aが変更される前では,Nというその値に対応するエントリは,第2の索引310a内の索引エントリ312中に見出され(【0027】),最初,Nという値を有する項目が,次にEに変更されると,変更された値(項目)は,更新された項目304bに反映され,第1の索引308bも変更され,新たなエントリ314を有し,項目306bの新たな状態を反映し,索引エントリ312が,第2の索引310bから削除されること(【0028】)。

ウ 索引は,分散型DBMS中に記憶された項目を位置特定することを可能にするデータ構造であり,パーティションのうちの1つ以上に記憶された項目の全てにわたって検索するのではなくて索引をスキャンすることによって位置特定でき,分散型DBMSは,ローカル索引およびグローバル索引を含み,ローカル索引は,1つのパーティション上に記憶された項目を指す索引であり,グローバル索引は,テーブルによって維持されるデータの全てを指す索引であり,複製のため,分散型DBMSは,ローカル索引およびグローバル索引各々の複数のバージョンを含み,これらの索引のいくつかは,分散型DBMSによって維持されるデータが追加,削除,または変更されたときに更新されること。(【0003】)

エ 一次キー値とは異なって,二次キー値は,必ずしも一意ではなく,言い換えれば,1つの二次キー値は,二次索引中の1つ以上のエントリを参照し(【0020】),二次索引キーは,項目を構成する値のうちの1つ以上を含むこと(【0021】)。

オ 索引構造は2つ以上のパーティションにおよび,各々のパーティションはまた,パーティション上に記憶された項目の索引を含み,パーティション200上の索引212は,A〜Mに対応するエントリを含み,パーティション202上の索引214は,N〜Zに対応するエントリを含み,索引212および214はグローバル索引であること。(【0022】)

カ 第1のパーティション200または第2のパーティション202上のデータの更新は,他のパーティション上に記憶されているデータおよび作新(当審注:「索引」の誤記と認められる。)に影響し,第1のパーティション200上に記憶されている項目の更新は,複製パートナー204および206に複製され,同様に,索引216および218の更新を必要とし,第1のパーティション200上に記憶された項目が変更され,そのため,それが今度は,第2のパーティション202上に記憶されているはずである場合,パーティション200および202,複製パートナー204,206,208,および210,ならびに索引212,214,216,218,220,および222が,第1のパーティション200から除去され第2のパーティション202に追加されている項目を反映するように更新されること。(【0024】)

キ 図2Bは,テーブルパーティション250ならびに索引パーティション254および256の配列を示し,索引パーティションは,索引構造の一部分(すなわち,パーティション化された索引)をホストするコンピューティングノードを含み,第1の索引パーティション254は,A〜Mの範囲内に入るテーブルパーティション250上に記憶された項目に対する索引エントリを含み,第2の索引パーティション256は,N〜Zの範囲の項目に対する索引を含むこと。(【0025】)

ク 値Nを含む項目の集合中の項目が,Eという新たな値を反映し,削除動作が索引に対して実施されて,古いN値に対応するエントリを除去し,エントリが索引に追加されて,新たなE値を反映し(【0029】),分散型DBMSでは,各々のパーティションは,そのパーティションに加えられた変更を記述する複製ログを有し,複製ログは,パーティション上に記憶された項目の追加,削除,または修正などの,そのパーティション上に記憶されたデータに加えられた変更を記述すること(【0030】)。

ケ グローバルおよびローカルの二次索引に対して更新を実施することと組み合わせて,複製ログを用い,項目の更新は,エントリを索引212から削除して,エントリを索引214に追加し,第1のパーティション200からの複製ログは,クォーラムメンバー204および206に送り出され得,第2のパーティション202からの複製ログは,クォーラムメンバー208および210に送り出されること。(【0031】)

コ 複製パートナーメンバー204は複製ログを受信すると,クォーラムメンバー204は,ログ中の各々のエントリを処理して,エントリがどの種類の変更を表すかを決定し,各々のエントリに対して,複製パートナー204は,その記憶ロケーション中の項目を更新することによって変更を適用し,どの索引構造を更新すべきかを決定すること。(【0032】)

サ 第1のパーティション200などのパーティションから取得された複製ログは,204および206などの複製パートナーに送り出され,複製パートナー204および206は,どの索引構造を更新する必要があるかを決定するなどのステップを実施することを含み,他の更新に対してと同様に,更新を処理すること。(【0033】)

シ 索引構造を更新する命令を含む複製ログは,ログエントリ418を含み,ログエントリ418は,PID列400,ログ通し番号(「LSN」)列402,ISN列404,および変更記述列406を含み(【0035】),項目更新408は,ディスク上に記憶されている項目の{INDEX KEY=“E”}の新たな値への更新を表し,索引削除410は,最新ではない値{INDEX KEY=“N”}に対応するエントリを二次索引から除去する動作を表し,索引追加412は,新たな値{INDEX KEY=“E”}に対応するエントリを二次索引に追加する動作を表すこと(【0036】)。

ス ログエントリ400は,動作414と対象416との両方を含み,項目更新408は,テーブルパーティション,すなわち,索引ではなく項目の集合を保持するパーティションと,命令を処理する同一のパーティションとを対象とし,索引削除410および索引追加412は,各々が,索引データしか保持しないパーティションである索引パーティションを対象とすること。(【0037】)

セ 変更を処理することは,命令を他の影響されたパーティションに分配するための様々な機構を用い,このような1つの機構は,送信バッファおよび受信バッファに関与し(【0038】),様々な命令種類が,複製ログ中に含まれ,他のパーティションに送信され(【0039】),変更要求は,新たな項目を追加すること,項目を成す1つ以上の既存の値を更新すること,さらなる値を追加すること,項目を削除することなどを含み,命令は,索引および他の命令に対する修正を,それらが発生するに連れて補足して記録することによって,一覧を編成することと同時に並行して実施され(【0041】),命令の一覧は,複製ログファイルに書き込まれ,いったん書き込まれると,命令は,それらがシステム障害後でも依然として処理されるため,持続するものとみなされ,ログファイルは,どのエントリがローカルで処理されたか,および,どのエントリが成功裏に他のパーティションに送信されたかの指示を含み(【0042】),変更要求は,最終的に首尾一貫しているものとして確認応答され,命令が504でログに書き込まれた後,ローカル命令が実施された後,全ての命令が確認応答されたときなどの様々なレベルの首尾一貫性に対して,確認応答を,変更要求のイニシエータに送信され(【0043】),複製ログ中の命令を影響されたパーティションに伝送し,命令を送信バッファに書き込み,この送信バッファは,命令を,それらが影響されたパーティションに送信し(【0044】),変更要求を受信したパーティション上でこれらの命令を実施し,非ローカルな索引または他の命令を変更する命令を実施し,第1のパーティション200は,遠隔に位置付けされたパーティションまたは他のコンピューティングノード上の索引構造を修正する命令を実施すること(【0045】)。

ソ 受信パーティション604は,索引624を含み,受信パーティション604は各々のパーティションに対して1つの受信バッファを含み(【0056】),受信バッファ620および622は,揮発性メモリ中に保持され,バッファ中に保持される命令は,システム障害の際に失われ得,システムログエントリを再生することによってシステム障害を回復し,システムが故障した場合,回復すると,ログファイル612および618を再生し,ログファイル162および618中の確認応答されていない命令は,再度,受信パーティション604に送信されて,バッファ620および622中に記憶され(【0057】),いったんバッファ620および622中に配置されると,命令は実行され,命令を実行することは,索引624中のエントリを挿入すること,更新すること,さもなければ修正することを伴うこと(【0058】)。

タ 第1の命令は,送信パーティションから受け取られ,受信バッファ内に配置され(【0060】),受信後,命令は実行され,命令を実行することは,受信パーティション上の索引および他のデータ構造に対する様々な修正を実施することを含み,命令は,索引からエントリを削除すること,エントリを索引に挿入すること,索引中の値を更新すること,項目値を更新することなどを含むこと(【0061】)。

(3)一方,特許請求の範囲の請求項1には,「第1の索引」及び「第2の索引」に関し,次の構成が記載されている。

ア 構成B
(ア)「1つ以上のエントリの第1の索引」は,「第1のコンピューティングノード」に含まれる「第1の記憶デバイス」に記憶されていること。
(イ)「第1の索引」中の「1つ以上のエントリ」は,「第1の項目の集合内の複数の項目を参照する」ものであること。

イ 構成C
(ア)「第2の索引」は,「第2のコンピューティングノード」に含まれる「第2の記憶デバイス」に記憶されていること。
(イ)「第2の索引」は,「第2のコンピューティングノードに記憶されている」「第1の項目の集合の少なくともサブセットを参照する」ものであること。

ウ 構成G
(ア)「第1のコンピューティングノード」の「第1の記憶デバイス」に記憶される「ログファイル」(上記構成B参照。)に,「第1の動作を示す命令」を書き込むに際し,当該「第1の動作」は,「第1の項目の集合を修正する第1の要求を処理」して,「第1の索引中の」「1つ以上のエントリの関連する修正を決定するステップに基づいて、第1の索引に対して実施される」ものであること。

エ 構成H
(ア)「第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令の記録に少なくとも部分的に基づいて」,「第1の動作を示す命令を前記第2のコンピューティングノードに送信する」こと。

(イ)「第2のコンピューティングノード」が,「第1の動作を示す命令に少なくとも部分的に基づいて、前記第1の動作と同等の第2の動作を実施」するに際し,当該「第2の動作」は,「第1の索引中の」「1つ以上のエントリに対応する」「第2の索引中の1つ以上のエントリを修正する」こと。

(4)上記2(2)の各事項と,上記2(3)の記載とを対比する。

ア 上記2(3)アの構成Bのうち,(ア)に記載された「第1のコンピューティングノード」及び「第1の記憶デバイス」に関しては,これらの用語自体は,審判請求人が意見書において主張する上記2(2)のア及びイには記載されていない。
しかしながら,上記2(2)イには,「テーブル」が「第1の索引パーティション254および第2の索引パーティション256を含」むこと,「第1の索引308a」が「A〜Mの範囲のキー値をマッピング」するとともに,「第2の索引310a」が「N〜Zの範囲のキー値をマッピング」することが記載され,さらに,「項目306aが変更される前」の「Nというその値に対応するエントリは,第2の索引310a内の索引エントリ312中に見出され(【0027】),最初,Nという値を有する項目が,次にEに変更されると,変更された値(項目)は,更新された項目304bに反映され,第1の索引308bも変更され,新たなエントリ314を有し,項目306bの新たな状態を反映し,索引エントリ312が,第2の索引310bから削除されること(【0028】)」も記載されていることから,上記1(4)アの対応に鑑みれば,上記「第1の索引パーティション254および第2の索引パーティション256」は,なんらかのコンピューティングノードに含まれる記憶デバイスに記憶されているものと理解することはできる。
同様に,上記2(3)アの構成Bのうち,(イ)に記載された,「1つ以上のエントリ」や,「第1の項目の集合内の複数の項目を参照する」ことについても,上記2(2)イの記載に鑑みれば,同構成Bの「第1の索引」が,同記載の「第1の索引308a」及び「第2の索引310a」のいずれに対応するものかは必ずしも明らかではないが,本件明細書の発明の詳細な説明に記載されているものといえる。

イ 上記2(3)イの構成Cのうち,(ア)に記載された「第2のコンピューティングノード」及び「第2の記憶デバイス」に関しては,これらの用語自体は,審判請求人が意見書において主張する上記2(2)のア及びイには記載されていない。
しかしながら,上記アの対比に鑑みれば,同様に,上記2(3)アの構成Bの「第2の索引」が,「第1の索引308a」及び「第2の索引310a」のいずれに対応するものかは必ずしも明らかではないが,本件明細書の発明の詳細な説明に記載されているものといえる。

ウ 一方で,上記2(3)イの構成Cのうち,(イ)に記載された「第2の索引」が,「第2のコンピューティングノードに記憶されている」「第1の項目の集合の少なくともサブセットを参照する」ものであることに関しては,上記2(3)アの構成Bの「第1の索引」及び「第2の索引」が,「第1の索引308a」及び「第2の索引310a」のいずれかに対応するものと仮定したとすると,「第1の索引308a」が「A〜Mの範囲のキー値をマッピング」するとともに,「第2の索引310a」が「N〜Zの範囲のキー値をマッピング」するとの記載からすれば,「第2の索引」が,「第1の項目の集合の少なくともサブセットを参照する」ものであるとはいえないから,上記2(2)イに記載された事項とは対応しない。

エ また,上記2(2)ウには,「ローカル索引およびグローバル索引」について記載され,同エには,「1つの二次キー値は,二次索引中の1つ以上のエントリを参照」することや,「二次索引キーは,項目を構成する値のうちの1つ以上を含む」ことが記載され,同オには,「索引構造は2つ以上のパーティションにおよび,各々のパーティションはまた,パーティション上に記憶された項目の索引を含み,パーティション200上の索引212は,A〜Mに対応するエントリを含み,パーティション202上の索引214は,N〜Zに対応するエントリを含み,索引212および214はグローバル索引であること」が記載され,同キには,図2Bにおいて,「テーブルパーティション250ならびに索引パーティション254および256の配列」が示されるとともに,「索引パーティションは,索引構造の一部分(すなわち,パーティション化された索引)をホストするコンピューティングノードを含み,第1の索引パーティション254は,A〜Mの範囲内に入るテーブルパーティション250上に記憶された項目に対する索引エントリを含み,第2の索引パーティション256は,N〜Zの範囲の項目に対する索引を含むこと」が記載され,同クには,「値Nを含む項目の集合中の項目が,Eという新たな値を反映し,削除動作が索引に対して実施されて,古いN値に対応するエントリを除去し,エントリが索引に追加されて,新たなE値を反映」することがそれぞれ記載されている。

オ してみると,上記2(3)アの構成Bの「第1の索引」及び「第2の索引」が,上記ア及びイに示した「第1の索引308a」及び「第2の索引310a」に対応するものか,或いは,上記エに示した,「ローカル索引およびグローバル索引」,「二次索引」,「索引212」及び「索引214」などのいずれかに対応するものかは,判然としない。
以上を総合すると,上記2(3)イの構成Cは,本件明細書の発明の詳細な説明に記載された事項と明確に対応がつくものとはいえない。

カ 上記2(3)ウの構成G及び上記2(3)エの構成Hに関しては,上記オに示したとおり,「第1の索引」及び「第2の索引」が本件明細書の発明の詳細な説明に記載された,索引に係るいずれの構成に対応するものかを明確に対応づけることができないから,これら「第1の索引」及び「第2の索引」に関する「第1の動作を示す命令」(構成G)や当該「第1の動作」が,本件明細書の発明の詳細な説明に記載された,いずれの索引に対する命令や動作であるかを明確に特定することはできないから,上記2(3)ウの構成G及び上記2(3)エの構成Hは,本件明細書の発明の詳細な説明に記載されたものとはいえない。

3 以上検討したとおり,本願発明の,少なくとも構成Bの一部,構成Cの一部,構成G及び構成Hに関し,本件明細書の発明の詳細な説明に記載されたものとはいえない。

4 本願発明の解決しようとする課題について

(1)本件明細書には,本願発明が解決しようとする課題についての明記はない。
そこで,本件明細書の段落【0002】〜【0003】を参照すると,次の記載が認められる。

「【背景技術】
【0002】
分散型データベース管理システム(「DBMS」)は、複数のコンピューティングデバイス間で分散されるデータの記憶および取り出しを可能にし得る。分散型DBMS中のデータはテーブルに構成され、これらのテーブルが次に、ときにパーティションとして説明される項目の集合を含み得る。システムの性能、信頼性、および利用可能性を改善するために、各パーティションは各々、それが格納する項目を記憶するおよび取り出す要求を処理する別個のコンピューティングノード上に格納され得る。分散型データベースはまた、システム障害があった場合に用いられ得る待機パーティションを維持するために複製を用い得る。
【0003】
索引は、分散型DBMS中に記憶された項目を位置特定することを可能にするデータ構造として説明され得る。それらは、例えば、データの特定の範囲に入る項目が、パーティションのうちの1つ以上に記憶された項目の全てにわたって検索するのではなくて索引をスキャンすることによって位置特定されることを可能にする。分散型DBMSは、ローカル索引およびグローバル索引を含み得る。ローカル索引は、1つのパーティション上に記憶された項目を指す索引として説明することが可能である。グローバル索引という用語は、テーブルによって維持されるデータの全てを指す索引を説明するために用いられ得る。複製のため、分散型DBMSは、ローカル索引およびグローバル索引各々の複数のバージョンを含み得る。これらの索引のいくつかは、分散型DBMSによって維持されるデータが追加、削除、または変更されたときに更新され得る。」

(2)上記記載によれば,分散型データベース管理システム(「DBMS」)は,複数のコンピューティングデバイス間で分散されるデータの記憶および取り出しを可能にするものであり,分散型DBMS中のデータはテーブルに構成され,これらのテーブルがパーティションとして項目の集合を含み,システムの性能,信頼性,および利用可能性を改善するために,各パーティションは各々,それが格納する項目を記憶するおよび取り出す要求を処理する別個のコンピューティングノード上に格納されるものであって,システム障害があった場合に用いられる待機パーティションを維持するため,複製を用いることを背景とし(【0002】),索引は,分散型DBMS中に記憶された項目を位置特定することを可能にするデータ構造であり,データの特定の範囲に入る項目が,パーティションのうちの1つ以上に記憶された項目の全てにわたって検索するのではなくて,索引をスキャンすることによって位置特定され,分散型DBMSは,ローカル索引およびグローバル索引を含み,ローカル索引は,1つのパーティション上に記憶された項目を指す索引であり,グローバル索引は,テーブルによって維持されるデータの全てを指す索引であり,複製のため,分散型DBMSは,ローカル索引およびグローバル索引各々の複数のバージョンを含み,これらの索引のいくつかは,分散型DBMSによって維持されるデータが追加,削除,または変更されたときに更新されるものであること(【0003】)を読取ることができる。

(3)上記(1)及び(2)に示したように,本願発明の解決しようとする課題が,そもそもどのようなものであるかは本件明細書の発明の詳細な説明の記載を参酌しても不明であり,また,上記1〜3において検討したとおり,本願発明の構成の少なくとも一部は,本件明細書の発明の詳細な説明に記載されたものとの対応がつかないものであって,その内容が本件明細書の発明の詳細な説明に記載されたものとはいえないことから,当業者といえども,出願時の技術常識に照らし考慮したとしても,本願発明における何らかの課題を解決できる範囲のものであるとの認識に到らぬものであるといわざるを得ない。

5 むすび

以上検討したとおり,本願発明は,本件明細書の発明の詳細な説明に記載されたものとはいえず,本願は,特許法36条6項1号の規定に違反するものである。

第5 当審拒絶理由通知の理由2(進歩性)に関する判断

上記第4に示すとおり,本願発明(本願請求項1に係る発明)は,本件明細書の発明の詳細な説明に記載されたものとはいえないものの,当審拒絶理由通知に示したとおり,「第1のコンピューティングノード」は図1Bに示すような,「マスタ」(図2Aの「第1のパーティション(A〜M)(マスター)200」及び「第2のパーティション(N〜Z)(マスター)202」)であるものとして解し,「第2のコンピューティングノード」は,同「クォーラムパートナー」(「複製パートナー204,206,208,210」)であるものと解して,以下,対比・判断を行う。

1 引用例の記載事項

(1)引用例1の記載事項及び引用発明

ア 本願の優先日前に既に公知である,特開平11−327982号公報(平成11年11月30日公開。以下,これを「引用例1」という。)には,関連する図面と共に,次の事項が記載されている。

A 「【0001】
【発明の属する技術分野】本発明は、フォールトトレラント分散データベースシステムにおいてトランザクションを完了する方法および装置に関する。」

B 「【0010】本発明のもう1つの目的は、故障していないすべてのパティシパントが外部からの調整なしで自動的に障害回復を実行し、失敗したトランザクションのクリーンアップ処理に伴う遅延をなくすことができるような分散データベースシステムを実現することである。さらに、故障したパティシパントは、再同期期間中に行われているトランザクションを中断することなく故障していない部分に再同期して新たなトランザクションに加わることが可能であるようにする。」

C 「【0014】好ましい実施例では、マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理される。このジャーナルあるいはログは、好ましくは、巡回キューまたはバッファである。ジャーナル内の古い記録は最終的に最新の更新トランザクションで上書きされる。各スレーブプロセッサも、そのスレーブプロセッサが正しくコミットすることができた少なくとも最近のデータベース更新トランザクションの記録を管理する。
【0015】高信頼性データベースシステムでは、1つのスレーブプロセッサが故障するかあるいはそれとの通信が失われると、故障したデータベースコピーの停止中に、稼働中の他のデータベースコピーが更新される可能性がある。最終的に、故障したスレーブプロセッサがサービスに復帰すると、その直後には、ネットワーク全体の他のデータベースコピーでカレントになっているデータを有していない可能性がある。前に損失したデータベースコピーを更新するため、そのスレーブプロセッサが停止中に実行されたトランザクションのジャーナル(ログ)を用いて、その故障したスレーブプロセッサが実行できなかったトランザクションを再作成する。各スレーブプロセッサは、最後に完了した最近のトランザクションの識別を追跡(記録)している。この最終完了トランザクションの記録から、マスタプロセッサおよび故障したプロセッサは、マスタ内のジャーナルに記録されている完了トランザクションを用いて、自己を他のプロセッサに再同期させる。

…(中略)…

【0017】
【発明の実施の形態】図1に、マスタプロセッサ102と少なくとも1つのバックアップマスタプロセッサ104を含むプロセッサの分散ネットワーク100を示す。図1はまた、いくつかのスレーブ(パティシパント)プロセッサ106、108および110も示している。各プロセッサ102、104、106、108および110は、図示のように、これらのプロセッサのそれぞれに対応するデータベース112、114、116、118および120を制御する。112、114、116、118および120のデータベースレコードは、例えば、ディスクレコードからなる(テープなどの磁気媒体にも記憶可能であり、あるいは、ランダムアクセスメモリに記録することも可能である)。各データベース112、114、116、118および120は同じデータを含む。また、各プロセッサ102、104、106、108および110は、高速データ相互接続140を通じて互いに通信する。高速データ相互接続140は、例えば、Ethernetネットワークなどの適当なデータリンクからなり、これによりデータは図1の各プロセッサどうしの間で交換される。図1の分散プロセッサネットワーク100は例えば電話交換ネットワークで用いることが可能である。その場合、各プロセッサ102、104、106、108および110は呼処理を行う。あるいは、分散プロセッサネットワーク100は、航空機予約システムや銀行処理記録のような他のアプリケーションでも使用可能であるが、これらに限定されない。
【0018】データベース112、114、116、118および120は、顧客レコード、電話番号、航空機フライト予約スケジュールなどを含む。動作時には、各プロセッサは対応するデータベースにアクセスしてトランザクションを処理する必要があり、ほとんどのアプリケーションでは、各データベース112、114、116、118および120が分散プロセッサネットワーク100内の他のデータベースの正確なコピーであることが要求される。」

D 「【0021】[故障したスレーブプロセッサの再同期]1つまたは複数のスレーブ(パティシパント)プロセッサが故障した場合、マスタプロセッサ102は、それに対応するデータベースコピーを更新することができない。例えば、スレーブデータベースプロセッサ106が故障した場合、データベースコピー116への更新を行うことができない。この故障したプロセッサが最終的にサービスに復帰して障害から回復すると、そのデータベースは、故障して停止中にマスタによって更新されたかも知れない他のデータベースコピーと一致するように更新する必要が生じる。
【0022】ここで故障(障害)という用語は、データベースプロセッサ106、108および110がデータベース更新トランザクションを受け取ることができないプロセッサ状態のことである。故障は、何らかの条件によりデータベースプロセッサ106、108および110が、分散プロセッサネットワーク100に再加入する前に回復を必要とする状態に入ることを余儀なくされた場合に起こる。定義により、故障とは、データベースプロセッサ106、108および110が故障のときには定数(quorum)のアクティブなメンバであったことを意味する。
【0023】故障したプロセッサが回復(サービスに復帰)した後にその故障したプロセッサのデータベースを更新する(同期させる)方法は、各スレーブ(パティシパント)プロセッサが故障前に完了することができた最後のデータベース更新を記録していることを必要とする。各データベースプロセッサ106、108、110ならびに102および104は、そのプロセッサによって正しく寒行された最後のデータベース更新の何らかの指標を記録している必要がある。このような最終完了レコードの指標は、例えば、マスタプロセッサ102の指示のもとに最後に完了した更新を識別するために任意に割り当てられた番号であって、プロセッサのランダムアクセスメモリ(RAM)や、ディスクなどの媒体のファイルあるいはその一部として、またはその他のデータの読み書きが可能な適当なデバイスに記憶される。あるいは、各プロセッサは、最終稿新トランザクションの完全なレコードを保持することも可能である。
【0024】マスタデータベースプロセッサ102、およびバックアッププロセッサ104内には、それぞれ、ジャーナル(ログ)122および124が保持される。これは、マスタプロセッサ102によって実行され正しく完了したデータベース更新トランザクションのステップの記録である。このジャーナルは、データベース更新トランザクションのステップを記録する。」

E 「【0029】データベースレコード112、114、116、118および120は、例えば、ディスクレコードからなる(テープなどの磁気媒体にも記憶可能であり、あるいは、ランダムアクセスメモリに記録することも可能である)。同様に、ジャーナル122および124は、ディスクレコード、テープレコードとして保持することも可能であり、あるいは、プロセッサのランダムアクセスメモリに記憶することも可能である。当業者には認識されるように、データベースプロセッサ102、104、106、108および110は適当なコンピュータとすることが可能である。」

F 「

図1」

イ 上記記載から,引用例1には,次の技術的事項が記載されているものと認められる。

a 上記Aの「フォールトトレラント分散データベースシステム」との記載,及び上記Bの「失敗したトランザクションのクリーンアップ処理に伴う遅延をなくすことができるような分散データベースシステム」との記載からすると,引用例1には,“失敗したトランザクションのクリーンアップ処理に伴う遅延をなくすことができるようなフォールトトレラント分散データベースシステム”について記述したものであることを読み取ることができる。

b 上記Cの「図1に、マスタプロセッサ102と少なくとも1つのバックアップマスタプロセッサ104を含むプロセッサの分散ネットワーク100を示す。図1はまた、いくつかのスレーブ(パティシパント)プロセッサ106、108および110も示している。」との記載,及び,上記Fの図1の記載から,図1における「分散プロセッサネットワーク100」とは,上記aにいう,「フォールトトレラント分散データベースシステム」を表しているといえることから,上記aの認定事項も踏まえ,引用例1には,“前記フォールトトレラント分散データベースシステムは,マスタプロセッサと少なくとも1つのバックアップマスタプロセッサを含む分散データベースシステムであって,いくつかのスレーブ(パティシパント)プロセッサを有”することが記載されているといえる。
また,上記Eの「データベースプロセッサ102、104、106、108および110は…コンピュータ」との記載,及び上記aの認定事項から,引用例1には,“前記マスタプロセッサ及びスレーブ(パティシパント)プロセッサはコンピュータ”であることを読み取ることができる。

c 上記Dの「マスタデータベースプロセッサ102…(中略)…内には、…ジャーナル(ログ)122および124が保持され」との記載,及び上記bの認定事項から,引用例1には,“前記マスタデータベースプロセッサ内には,ジャーナル(ログ)が保持され”ることが記載されているといえる。
上記Dの「データベースプロセッサ106、108および110が故障のときには…quorum…メンバ」との記載と,上記bの認定事項から,引用例1には,“前記マスタプロセッサ及びスレーブ(パティシパント)プロセッサはクォーラムメンバーであ”ることが記載されているといえる。

d 上記Fの図1に示される,「マスタデータベースプロセッサ102」にある「データベース112」,及び「スレーブデータベースプロセッサ126,128,130」にある「データベース116,118,120」はそれぞれ“マスタデータベース”及び“スレーブデータベース”といい得る。
上記Cの「各プロセッサ102、104、106、108および110は、図示のように、これらのプロセッサのそれぞれに対応するデータベース112、114、116、118および120を制御する。112、114、116、118および120のデータベースレコードは、例えば、ディスクレコードからなる(テープなどの磁気媒体にも記憶可能であり、あるいは、ランダムアクセスメモリに記録することも可能である)…(中略)…データベース112、114、116、118および120は、顧客レコード、電話番号、航空機フライト予約スケジュールなどを含む」との記載,上記マスタデータベース及びスレーブデータベースに関する認定事項,並びに,上記bの認定事項から,引用例1には,“前記各プロセッサは,これらのプロセッサのそれぞれに対応するデータベース(マスタデータベース及びスレーブデータベース)を制御し,当該データベースのデータベースレコードは,例えば,ディスクレコードからなり(テープなどの磁気媒体にも記憶可能であり,あるいは,ランダムアクセスメモリに記録することも可能である),前記データベースは,顧客レコード,電話番号,航空機フライト予約スケジュールなどを含”むことが記載されているといえる。

e 上記Cの「各データベース112、114、116、118および120は同じデータを含む」との記載,及び上記dの認定事項を踏まえると,引用例1には,“前記マスタデータベース及び前記スレーブデータベースは同じデータを含”むことが記載されているといえる。

f 上記Cの「マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理される。…(中略)…スレーブプロセッサが停止中に実行されたトランザクションのジャーナル(ログ)を用いて、その故障したスレーブプロセッサが実行できなかったトランザクションを再作成する。各スレーブプロセッサは、最後に完了した最近のトランザクションの識別を追跡(記録)している。この最終完了トランザクションの記録から、マスタプロセッサおよび故障したプロセッサは、マスタ内のジャーナルに記録されている完了トランザクションを用いて、自己を他のプロセッサに再同期させる。」との記載,並びに,上記b及びcの認定事項から,引用例1には,“前記マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理され,前記スレーブプロセッサが停止中に実行されたトランザクションのジャーナル(ログ)を用いて,その故障したスレーブプロセッサが実行できなかったトランザクションを再作成し,各スレーブプロセッサは,最後に完了した最近のトランザクションの識別を追跡(記録)し,この最終完了トランザクションの記録から,前記マスタプロセッサおよび故障したプロセッサは,前記マスタプロセッサ内のジャーナルに記録されている完了トランザクションを用いて,自己を他のプロセッサに再同期させ”ることが記載されているといえる。

ウ 上記ア及びイより,引用例1には,次の発明(以下「引用発明」という。)が記載されていると認められる。

「失敗したトランザクションのクリーンアップ処理に伴う遅延をなくすことができるようなフォールトトレラント分散データベースシステムであって,
前記フォールトトレラント分散データベースシステムは,マスタプロセッサと少なくとも1つのバックアップマスタプロセッサを含む分散データベースシステムであって,いくつかのスレーブ(パティシパント)プロセッサを有し,前記マスタプロセッサ及びスレーブ(パティシパント)プロセッサはコンピュータであり,
前記マスタデータベースプロセッサ内には,ジャーナル(ログ)が保持され,前記マスタプロセッサ及びスレーブ(パティシパント)プロセッサはクォーラムメンバーであり,
前記各プロセッサは,これらのプロセッサのそれぞれに対応するデータベース(マスタデータベース及びスレーブデータベース)を制御し,当該データベースのデータベースレコードは,例えば,ディスクレコードからなり(テープなどの磁気媒体にも記憶可能であり,あるいは,ランダムアクセスメモリに記録することも可能である),前記データベースは,顧客レコード,電話番号,航空機フライト予約スケジュールなどを含み,
前記マスタデータベース及び前記スレーブデータベースは同じデータを含み,
前記マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理され,前記スレーブプロセッサが停止中に実行されたトランザクションのジャーナル(ログ)を用いて,その故障したスレーブプロセッサが実行できなかったトランザクションを再作成し,各スレーブプロセッサは,最後に完了した最近のトランザクションの識別を追跡(記録)し,この最終完了トランザクションの記録から,前記マスタプロセッサおよび故障したプロセッサは,前記マスタプロセッサ内のジャーナルに記録されている完了トランザクションを用いて,自己を他のプロセッサに再同期させる
フォールトトレラント分散データベースシステム。」

(2)引用例2の記載事項

本願の優先日前に既に公知である,特開2010−39746号公報(平成22年2月18日公開。以下,これを「引用例2」という。)には,関連する図面と共に,次の事項が記載されている。

A 「【0001】
本発明は、データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステムの技術に関する。」

B 「【0022】
実行系サーバ2は、実行系DB10aを有し、待機系サーバ3は、待機系DB10bを有する。実行系DB10aおよび待機系DB10bは、トランザクション中のデータ同期処理の結果、トランザクションの終了後には互いに同じデータ内容を格納する。
まず、実行系DB10aは、実行系DBデータ11aと、実行系DBログデータ12aと、実行系インデクスデータ14aと、実行系インデクスログデータ15aと、を格納する。
同様に、待機系DB10bは、待機系DBデータ11bと、待機系DBログデータ12bと、待機系インデクスデータ14bと、待機系インデクスログデータ15bと、を格納する。
つまり、実行系DBデータ11aおよび待機系DBデータ11b、実行系DBログデータ12aおよび待機系DBログデータ12b、実行系インデクスデータ14aおよび待機系インデクスデータ14b、実行系インデクスログデータ15aおよび待機系インデクスログデータ15bは、それぞれ互いに対応し、トランザクションの終了後には互いに同じデータ内容となる。」

C 「【0028】
【表2】

【0029】
表2は、実行系インデクスデータ14aに対して、実行系インデクスログデータ15aが反映される一例を示す。表2で示される3つの表は、上から順に、実行系インデクスデータ14a(ログデータ反映前)、実行系インデクスログデータ15a、実行系インデクスデータ14a(ログデータ反映後)である。
【0030】
実行系インデクスデータ14a(ログデータ反映前、ログデータ反映後)は、行(レコード)ごとに、1つの行データのキー値と、1つ以上の行IDと、を対応づけて構成する。
行データのキー値は、実行系DBデータ11aの行データ中の列要素が取りうる値であり、実行系DBデータ11aへの操作要求などのアクセス要求において、そのアクセス対象を特定するための検索キーである。
行IDは、行データのキー値が存在する列要素を含む行をリストアップしたものである。
このように、実行系インデクスデータ14aを作成することにより、実行系DBデータ11aへのアクセス効率が高まる。つまり、検索キーとして行データのキー値が指定されたときに、実際に実行系DBデータ11aの行データを全探索する代わりに、実行系インデクスデータ14aを1回検索することにより、アクセス対象となる実行系DBデータ11aの行IDを高速で特定することができる。」

D 「【0037】
さらに、本実施形態の特徴として、トランザクション制御部40は、データ内容の同期を行うための反映方式が複数存在するときに、その中から1つの反映方式を決定するための仕組みを有する。
【0038】
【表4】

【0039】
表4は、反映方式の定義を示すテーブルである。このテーブルでは、2通りの送信内容および2通りの送信契機の組み合わせにより、4通りの反映方式(1)〜(4)が提示されている。これらの4通りの反映方式は、実行系DBデータ11aに対して行われた変更が、待機系DBデータ11bに対しても反映されることにより、実行系DB10aと待機系DB10bとのデータの同期が実現できるという基本的な効果は共通しつつ、以下に示す性能的な特徴に違いがある。
【0040】
送信契機に着目した効果は、次の通りである。
方式(1,2)は、決着要求の受信時にログデータを送信するため、決着要求を受信するまでは、実行系サーバ2のCPU使用率を低く抑えられる。
方式(3,4)は、操作要求の受信時にログデータを送信するため、実行系サーバ2において決着要求の受信前にデータベースの処理と送信処理とが並列処理され、トランザクション全体の応答時間を短くできる。
【0041】
送信内容に着目した効果は、次の通りである。
方式(1,3)は、実行系DBデータ11aと実行系インデクスログデータ15aとの組を送信するため、送信された待機系サーバ3は、待機系インデクスログデータ15bを新規に作成する必要はなく、実行系インデクスログデータ15aを待機系インデクスログデータ15bとしてコピーするだけで済む。その結果、待機系サーバ3のCPU使用率を低く抑えられる。
方式(2,4)は、実行系インデクスログデータ15aの送信を省略するため、ログデータ送信バッファ22およびログデータ受信バッファ24には実行系インデクスログデータ15aを格納せずに済む。その結果、バッファの容量を小さくできるので、両装置のメモリ使用率、および、実行系サーバ2のCPU使用率を低く抑えられる。
以上説明した2通りの送信契機と、2通りの送信内容との組み合わせにより、4通りの反映方式(1)〜(4)の定義テーブルが構成される。さらに、別の実施形態として、2通りの送信契機の反映方式を記載する定義テーブルを構成してもよいし、2通りの送信内容の反映方式を記載する定義テーブルを構成してもよい。」

以上,上記A〜Dの記載から,引用例2には次の事項(以下,「引用例2記載事項」という。)が記載されているといえる。

「データベースシステムの技術に関し,
実行系サーバ2は,実行系DB10aを有し,待機系サーバ3は,待機系DB10bを有し,実行系DB10aおよび待機系DB10bは,トランザクション中のデータ同期処理の結果,トランザクションの終了後には互いに同じデータ内容を格納するものであり,
実行系DB10aは,実行系DBデータ11aと,実行系DBログデータ12aと,実行系インデクスデータ14aと,実行系インデクスログデータ15aと,を格納し,
待機系DB10bは,待機系DBデータ11bと,待機系DBログデータ12bと,待機系インデクスデータ14bと,待機系インデクスログデータ15bと,を格納し,
実行系インデクスデータ14aは,行(レコード)ごとに,1つの行データのキー値と,1つ以上の行IDと,を対応づけて構成し,
実行系DBデータ11aと実行系インデクスログデータ15aとの組を送信することによって,実行系DBデータ11aに対して行われた変更が,待機系DBデータ11bに対しても反映されることにより,実行系DB10aと待機系DB10bとのデータの同期が実現できるデータベースシステム。」

(3)引用例3の記載事項

本願の優先日前に既に公知である,米国特許第7558883号明細書(2009年7月7日公開。以下,これを「引用例3」という。)には,関連する図面と共に,次の事項が記載されている。

A “One mechanism by which the constituent computing devices can agree upon the next function to execute is known as the Paxos algorithm. In the Paxos algorithm, as will be described further below, any device can act as a leader and transmit a suggestion for a proposal number to other devices within the distributed computing system. The other devices can respond with either an indication of the most recent proposal for which they have voted or an indication that they have not voted for any previous proposals. As explained above, each proposal can be transmitted with a proposal number, such that the proposal treated as most recent can be the proposal with the largest proposal number. To ensure that proposals with a larger proposal number are the most recent proposal considered by the device, devices can ignore later-in-time proposals that have smaller proposal numbers than the largest proposal number the device is aware of.

Once the leader that transmitted the suggested proposal number receives the responses from the other devices, it can determine which function to propose. Once a vote is requested for a proposal, each device will vote for the proposal unless it has, some time after the initial transmission of the proposal and prior to the requested vote, responded to a suggestion for a different proposal number. If a quorum of devices votes for the proposal, then the proposal is accepted, and the leader can transmit a message to all of the devices requesting that they execute the agreed upon function.The Paxos algorithm, however, can introduce at least two message delays between the time when a leader receives a request from a client, which the leader can propose, and the time when the leader receives the votes from the devices deciding to execute the function and passes the results of the execution back to the client. Specifically, after a client requests the distributed computing system to perform a given task, the leader can, if the leader has previously polled the devices, submit the client's request as a proposed function for the system to execute.

The submission of the proposed function for a vote by the devices can add one message delay. Similarly, the vote by the devices can add another message delay. If the vote approved the proposed function, that function can be executed and the results can be transmitted back to the client by the leader.”(7欄1〜41行)
当審訳:
コンピューティングデバイスの構成として,次に実行する機能に合意できる機構の1つは,Paxosアルゴリズムとして知られている。Paxosアルゴリズムでは,以下でさらに説明するように,任意のデバイスがリーダとして働き,分散コンピューティングシステム内の他のデバイスに提案番号の示唆を送信することができる。他のデバイスは,それらが投票した最新の提案の指示,または任意の以前の提案に投票していないことの指示のいずれかで応答することができる。以上説明したように,各提案を提案番号と共に送信することができるが,ほとんどの最近に処理された提案が最も大きい提案番号を有する提案をすることができる。より大きい提案番号を有する提案はデバイスによって考慮される最も最近の提案であることを確実にするために,デバイスは,デバイスが知っている最大の提案番号より小さい提案番号を有する,後続の提案を無視することができる。
提議した提案番号を送信したリーダーデバイスは,他のデバイスからの応答を受信すると,それが提案する機能を判定することができる。提案のための要求が投票されると,各デバイスは,提案の最初の送信の後,要求された投票に先立つある時間に,異なる提案番号の示唆に応答していない限り,その提案に賛成投票する。デバイスのクォーラムが提案に投票し,提案が受け入れられた場合,リーダーは,合意された機能を実行することを要求している全てのデバイスに,メッセージを送信することができる。
Paxosアルゴリズムは,しかしながら,リーダーが提案できる場合に,リーダーがクライアントからリクエストを受信する時間とリーダーが機能の実行を決定するデバイスからの投票を受信する時間との間に,少なくとも2メッセージ遅延を導入することができ,実行の結果をクライアントに受け渡す。具体的には,クライアントが分散コンピューティング・システムに所与のタスクの実行を要求した後,リーダーが以前にデバイスをポーリングしていれば,リーダーは,クライアントの要求を,システムの実行のための提案された機能として提出することができる。デバイスによって投票のための提案された機能の処理依頼は,1つのメッセージ遅延を追加することができる。同様に,デバイスによって投票が他のメッセージ遅延を追加することができる。投票は,提案された機能を承認した場合に,その機能を実行することができ,結果は,リーダーによってクライアントに返信することができる。

上記記載事項より,引用例3には,次の事項(以下,「引用例3記載事項」という。)が記載されているといえる。

「任意のデバイスがリーダとして働き,分散コンピューティングシステム内の他のデバイスに提案番号の示唆を送信することができるアルゴリズムが知られており,
デバイスのクォーラムが提案に投票し,提案が受け入れられた場合,リーダーは,合意された機能を実行することを要求している全てのデバイスに,メッセージを送信することができ,
投票は,提案された機能を承認した場合に,その機能を実行することができ,結果は,リーダーによってクライアントに返信することができること。」

2 対比

本願発明と引用発明とを対比する。

(1)引用発明は「フォールトトレラント分散データベースシステム」であって,本願発明と“分散型データベース管理システム”である点で一致する。

(2)引用発明の「マスタプロセッサ」は,「コンピュータであ」って,「対応するデータベース(マスタデータベース及びスレーブデータベース)を制御」するものであることから,所定の記憶デバイスを含むことは自明であり,本願発明の「1つ以上の第1の記憶デバイスを含む第1のコンピューティングノード」とは,“1つ以上の第1の記憶デバイスを含む第1のコンピューティングノード”である点で一致する。
また引用発明の「マスタデータベースプロセッサ内には、ジャーナル(ログ)が保持され」ていて,当該「ジャーナル(ログ)」は,本願発明の「ログファイル」に相当することから,引用発明と本願発明とは,下記の点(相違点1)で相違するものの,“1つ以上の第1の記憶デバイスを含む第1のコンピューティングノードであって,前記1つ以上の第1の記憶デバイスには,ログファイルが記憶されている,第1のコンピューティングノード”を具える点で一致する。

(3)引用発明の「スレーブ(パティシパント)プロセッサ」も「コンピュータであ」って,「対応するデータベース(マスタデータベース及びスレーブデータベース)を制御」するものであることから,同じく所定の記憶デバイスを含むことは自明であり,本願発明の「第2のコンピューティングノード」とは,“1つ以上の第2の記憶デバイスとを含む第2のコンピューティングノード”である点で一致する。
また,引用発明は,「データベースのデータベースレコードは,例えば,ディスクレコードからなり(テープなどの磁気媒体にも記憶可能であり,あるいは,ランダムアクセスメモリに記録することも可能であ」ることから,メモリを具えることは明らかであり,したがって引用発明と本願発明とは,下記の点(相違点2)で相違するものの,“メモリと1つ以上の第2の記憶デバイスとを含む第2のコンピューティングノード”を具える点で一致する。

(4)引用発明の「フォールトトレラント分散データベースシステム」には,所定のコンピュータ可読命令が記憶されていることは明らかであるから,引用発明と本願発明とは,“コンピュータ可読命令が記憶されている1つ以上のメモリ”を具える点で一致する。

(5)引用発明は,「マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理され」るものであるところ,当該「更新トランザクション」は,所定の命令によって実現されていることは自明であり,本願発明の「第1の動作を示す命令」に対応するものといえ,引用発明と本願発明とは,“第1の動作を示す命令を前記ログファイルに書き込むステップ”を有する点で一致する。
一方,引用発明の「データベースのデータベースレコードは,例えば,ディスクレコードからなり(テープなどの磁気媒体にも記憶可能であり,あるいは,ランダムアクセスメモリに記録することも可能である),前記データベースは,顧客レコード,電話番号,航空機フライト予約スケジュールなどを含」むものであり,当該「顧客レコード,電話番号,航空機フライト予約スケジュールなどを含」む「データベースのデータベースレコード」は,本願発明の「第1の項目の集合」に対応するものといえる。また,引用発明の「更新トランザクション」は,「データベースレコード」の更新,すなわち修正をともなうものであることが技術常識であることから,本願発明の「前記第1の動作は、前記第1の項目の集合を修正する第1の要求を処理」に対応する処理が行われるものと認められる。そして引用発明は,「マスタデータベースプロセッサによって実行される各更新トランザクションの記録がジャーナルあるいはログとしてマスタデータベースプロセッサによって管理され」るところ,以上を総合すると,引用発明と本願発明とは,下記の点(相違点3)で相違するものの,“第1の動作を示す命令を前記ログファイルに書き込むステップであって,前記第1の動作は,前記第1の項目の集合を修正する第1の要求を処理する,ステップ”を有する点で一致する。

(6)引用発明は,「スレーブプロセッサが停止中に実行されたトランザクションのジャーナル(ログ)を用いて,その故障したスレーブプロセッサが実行できなかったトランザクションを再作成し,各スレーブプロセッサは,最後に完了した最近のトランザクションの識別を追跡(記録)」するものであるところ,当該「故障したスレーブプロセッサが実行できなかったトランザクション」の「再作成」にあたっては,「マスタデータベースプロセッサ内に」「保持され」る「ジャーナル(ログ)」が「スレーブプロセッサ」に送信されることは自明であり,上記(3)の認定を踏まえると,本願発明の「前記第2のコンピューティングノードによって前記第2の索引に対して実施された最後の命令の記録に少なくとも部分的に基づいて、前記第1の動作を示す命令を前記第2のコンピューティングノードに送信するステップ」とは,“前記第2のコンピューティングノードによって最後の命令の記録に少なくとも部分的に基づいて,前記第1の動作を示す命令を前記第2のコンピューティングノードに送信するステップ”を有する点で共通する。
また引用発明は,「この最終完了トランザクションの記録から,前記マスタプロセッサおよび故障したプロセッサは,前記マスタプロセッサ内のジャーナルに記録されている完了トランザクションを用いて,自己を他のプロセッサに再同期させる」ものであって,「前記マスタデータベース及び前記スレーブデータベースは同じデータを含」むものでもあるところ,当該「再同期させる」ことは,本願発明の「前記第1の動作と同等の第2の動作を実施」することに相当するといえることから,以上総合して,引用発明と本願発明とは,下記の点(相違点4)で相違するものの,“前記第2のコンピューティングノードによって最後の命令の記録に少なくとも部分的に基づいて,前記第1の動作を示す命令を前記第2のコンピューティングノードに送信するステップであって,前記第2のコンピューティングノードは,前記第1の動作を示す命令に少なくとも部分的に基づいて,前記第1の動作と同等の第2の動作を実施する,ステップ”を有する点で一致する。

(7)引用発明の「マスタプロセッサ及びスレーブ(パティシパント)プロセッサはクォーラムメンバーであ」ることから,上記(2)及び(3)の認定事項を踏まえると,引用発明と本願発明とは,下記の点(相違点5)で相違するものの,“前記第1のコンピューティングノードおよび前記第2のコンピューティングノードは、クォーラムメンバーである”点で一致する。

(8)以上,(1)〜(7)の検討から,引用発明と本願発明とは,次の一致点及び相違点を有する。

〈一致点〉
分散型データベース管理システムであって,前記システムは,
1つ以上の第1の記憶デバイスを含む第1のコンピューティングノードであって,前記1つ以上の第1の記憶デバイスには,ログファイルが記憶されている,第1のコンピューティングノードと,
メモリと1つ以上の第2の記憶デバイスとを含む第2のコンピューティングノードと,
コンピュータ可読命令が記憶されている1つ以上のメモリと,
を具え,
前記コンピュータ可読命令は,実行時に,前記システムに,少なくとも,
第1の動作を示す命令を前記ログファイルに書き込むステップであって,前記第1の動作は,前記第1の項目の集合を修正する第1の要求を処理する,ステップと,
前記第2のコンピューティングノードによって最後の命令の記録に少なくとも部分的に基づいて,前記第1の動作を示す命令を前記第2のコンピューティングノードに送信するステップであって,前記第2のコンピューティングノードは,前記第1の動作を示す命令に少なくとも部分的に基づいて,前記第1の動作と同等の第2の動作を実施する,ステップと
を行わせ,
前記第1のコンピューティングノードおよび前記第2のコンピューティングノードは、クォーラムメンバーである
システム。

〈相違点1〉
本願発明の「1つ以上の第1の記憶デバイス」には,「1つ以上のエントリの第1の索引」が記憶されており,「前記第1の索引中の前記1つ以上のエントリは、第1の項目の集合内の複数の項目を参照する」ものであるのに対し,引用発明の「マスタデータベースプロセッサ」に,索引が記憶されていることについての特定がされていない点。

〈相違点2〉
本願発明の「1つ以上の第2の記憶デバイスには第2の索引」が記憶されており、「前記第2の索引が、前記第2のコンピューティングノードに記憶されている前記第1の項目の集合の少なくともサブセットを参照する」ものであるのに対し,引用発明の「スレーブ(パティシパント)プロセッサ」に,索引が記憶されていることについての特定がされていない点。

〈相違点3〉
本願発明の「第1の動作」が,「前記第1の索引中の前記1つ以上のエントリの関連する修正を決定するステップに基づいて、前記第1の索引に対して実施される」ものであるのに対し,引用発明は,「マスタデータベースプロセッサ」に,索引が記憶されていることについての特定がなく,当該索引に対して実施される点についても特定がされていない点。

〈相違点4〉
本願発明の「最後の命令の記録」が,「前記第1のコンピューティングノードから受信され」てなされるものであるとともに,当該「最後の命令」が「第2のコンピューティングノードによって前記第2の索引に対して実施された」ものであり,「前記第2の動作は、前記第1の索引中の前記1つ以上のエントリに対応する前記第2の索引中の1つ以上のエントリを修正する」ものであるのに対し,引用発明の「スレーブ(パティシパント)プロセッサ」に,索引が記憶されていることについての特定がなく,当該索引に対して修正をするものである点についても特定がなされていない点。

〈相違点5〉
本願発明は,「前記第1のコンピューティングノードおよび前記第2のコンピューティングノードが、クライアントアプリケーションによって発行される読み出し要求または書き込み要求を実施した場合には、前記読み出し要求または書き込み要求の結果が、前記第1のコンピューティングノードから返送される」ものであるのに対し,引用発明はそのような特定がなされていない点。

3 判断

上記相違点につき検討する。

(1)相違点1〜4について
相違点1〜4は,引用発明において,本願発明の「第1のコンピューティングノード」及び「第2のコンピューティングノード」に相当する,マスタプロセッサ及びスレーブプロセッサにおいて,索引,すなわちインデクスが記憶されていないこと,及び当該インデクスに対する更新の明示がないことに帰着する。
一方,引用例2記載事項において示されるとおり,「データベースシステムの技術に関し,」「実行系サーバ」及び「待機系サーバ」に,それぞれ,「実行系DB」及び「待機系DB」とともに「実行系インデクスデータ」及び「待機系インデクスデータ」を格納することは,当該技術分野において周知の技術事項に過ぎず,引用発明においても,明示は無いものの,インデクスデータ,すなわち本願発明の「第1の索引」及び「第2の索引」に相当する構成を有することは自明である。
さらに,引用例2記載事項において示されるとおり,「実行系DBデータ11aと実行系インデクスログデータ15aとの組を送信することによって,実行系DBデータ11aに対して行われた変更が,待機系DBデータ11bに対しても反映されることにより,実行系DB10aと待機系DB10bとのデータの同期が実現できる」ことも技術常識であり,このことは,「実行系DBデータ」を変更すると「待機系DBデータ」にもその変更が反映されるとともに,インデクスデータの更新も行われることを示している。
そして,引用発明と引用例2記載事項とは,データベースシステムに関する技術分野において共通するものであるから,引用発明において,「1つ以上の第1の記憶デバイス」に「1つ以上のエントリの第1の索引」を記憶し,「前記第1の索引中の前記1つ以上のエントリは、第1の項目の集合内の複数の項目を参照する」ものであるようにすること(相違点1),「1つ以上の第2の記憶デバイスには第2の索引」を記憶し,「前記第2の索引が、前記第2のコンピューティングノードに記憶されている前記第1の項目の集合の少なくともサブセットを参照する」ものであるようにすること(相違点2),「前記第1の索引中の前記1つ以上のエントリの関連する修正を決定するステップに基づいて、前記第1の索引に対して実施される」「第1の動作」を実施すること(相違点3),及び,「第1のコンピューティングノードから」「最後の命令」を「受信」して「記録」するとともに,当該「最後の命令」を「第2のコンピューティングノードによって前記第2の索引に対して実施された」ものとし,「前記第2の動作」を「前記第1の索引中の前記1つ以上のエントリに対応する前記第2の索引中の1つ以上のエントリを修正する」ものとすること(相違点4)は,引用例2記載事項に接した当業者であれば,当然になし得る程度のことに過ぎない。
したがって,相違点1〜4は,いずれも格別なものではない。

(2)相違点5について
引用例3記載事項に示すように,クォーラムメンバーの投票結果を,リーダーによって返送すること,すなわち本願発明の「第1のコンピューティングノード」に相当するデバイスが,要求に対する結果を返送することは,当該技術分野において周知の技術事項に過ぎず,引用発明は,「マスタプロセッサ及びスレーブ(パティシパント)プロセッサはクォーラムメンバーであ」ることから,引用発明においても,相違点5に係る構成,すなわち,「前記第1のコンピューティングノードおよび前記第2のコンピューティングノードが、クライアントアプリケーションによって発行される読み出し要求または書き込み要求を実施した場合には、前記読み出し要求または書き込み要求の結果が、前記第1のコンピューティングノードから返送される」よう構成することも,当業者にとって容易である。
したがって,相違点5も格別なものではない。

(3)むすび
以上検討したとおり,相違点1〜5はいずれも格別なものではなく,またそのことによる効果も,当業者であれば普通に想起し得る程度のことに過ぎない。
したがって,本願発明は,引用発明並びに引用例2及び3に記載された周知技術に基づいて当業者が容易になし得たものである。

第6 むすび

以上のとおり,本願は,特許請求の範囲の記載が特許法36条6項1号に規定する要件を満たしていないから,特許を受けることができない。
また,本願発明は,引用発明並びに引用例2及び3に記載された周知技術に基づいて当業者が容易に発明をすることができたものであるから,特許法29条2項の規定により特許を受けることができない。
したがって,その余の請求項に係る発明について論及するまでもなく,本願は拒絶すべきものである。

よって,結論のとおり審決する。
 
別掲 (行政事件訴訟法第46条に基づく教示) この審決に対する訴えは、この審決の謄本の送達があった日から30日(附加期間がある場合は、その日数を附加します。)以内に、特許庁長官を被告として、提起することができます。

審判長 田中 秀人
出訴期間として在外者に対し90日を附加する。
 
審理終結日 2021-11-12 
結審通知日 2021-11-17 
審決日 2021-11-30 
出願番号 P2018-207253
審決分類 P 1 8・ 121- WZ (G06F)
P 1 8・ 537- WZ (G06F)
最終処分 02   不成立
特許庁審判長 田中 秀人
特許庁審判官 金子 秀彦
山崎 慎一
発明の名称 索引更新パイプライン  
代理人 永島 秀郎  
代理人 上島 類  
代理人 森田 拓  
代理人 アインゼル・フェリックス=ラインハルト  
代理人 二宮 浩康  
代理人 前川 純一  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ