JP2007213235A - ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 - Google Patents
ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 Download PDFInfo
- Publication number
- JP2007213235A JP2007213235A JP2006031354A JP2006031354A JP2007213235A JP 2007213235 A JP2007213235 A JP 2007213235A JP 2006031354 A JP2006031354 A JP 2006031354A JP 2006031354 A JP2006031354 A JP 2006031354A JP 2007213235 A JP2007213235 A JP 2007213235A
- Authority
- JP
- Japan
- Prior art keywords
- component
- component object
- name
- inquiry
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】効率的なキャッシュ管理を行うことを目的とする。
【解決手段】オブジェクトからの問い合わせを受け、キャッシュ保持手段に、問い合わせに係るオブジェクトに係る情報が登録されていない場合、問い合わせに係るオブジェクトのオブジェクト名を用いてネームサービス装置に問い合わせを行い、問い合わせ結果として受け取ったオブジェクト名、及びオブジェクト識別情報をキャッシュ保持手段に登録すると共に、オブジェクト名に基づいて、被参照コンポーネント保持手段より取得した参照オブジェクト数を用いて、オブジェクトの残参照回数の初期値をキャッシュ保持手段に登録し、オブジェクト識別情報を問い合わせ元のオブジェクトに通知することによって上記課題を解決する。
【選択図】図2
【解決手段】オブジェクトからの問い合わせを受け、キャッシュ保持手段に、問い合わせに係るオブジェクトに係る情報が登録されていない場合、問い合わせに係るオブジェクトのオブジェクト名を用いてネームサービス装置に問い合わせを行い、問い合わせ結果として受け取ったオブジェクト名、及びオブジェクト識別情報をキャッシュ保持手段に登録すると共に、オブジェクト名に基づいて、被参照コンポーネント保持手段より取得した参照オブジェクト数を用いて、オブジェクトの残参照回数の初期値をキャッシュ保持手段に登録し、オブジェクト識別情報を問い合わせ元のオブジェクトに通知することによって上記課題を解決する。
【選択図】図2
Description
本発明は、ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法に関する。
従来、一般的なネットワーク上の分散したコンポーネントオブジェクト(コンポ)について、ネームサービスは、コンポ名と、handle(マシン名、IPアドレス、ポート番号等)との対応関係を管理していた。
コンポ名をキーにネームサービスに問い合わせを行うと、handleを得ることができ、クライアントは、handleに対してサービスを要求することができる。
DNS(ネームサーバ)の様にネットワークが膨大で、複数のネームサーバを階層化させ、ネームサービスを管理している場合は、クライアントからの問い合わせを自サーバで解決できない時、他サーバに問い合わせを転送する。そして、他サーバの返答を受けた自サーバは、返答をクライアントに返すと共に、自サーバのキャッシュテーブルに返答を保存する。以降、同じ問い合わせを受け取ると、自サーバは、キャッシュテーブルのデータをクライアントに返すといった仕組みになっていた。
しかし、どのデータがどのネームサーバでキャッシュされているかを管理し、元データが変更された際の更新を随時確実に反映させることは困難である。このため元データを保持しているサーバは、データ毎にキャッシュ有効期限(TTL:Time To Live)という属性を付加している。
TTLを用いることでキャッシュ有効期限になると、元データを参照してキャッシュしたサーバ側で責任を持って、元データを保持しているサーバからデータを再取得する。よって、随時ではないにしろ、TTLに示された時間内に更新を反映させることが可能になっていた。
しかし、組み込みシステム機器に要求されるメモリ制限については、DNSでは考慮されていなかった。
ネームサービスではないが、特許文献1には、RPC(Remote Procedure Call)の実行方法を対象に、キャッシュのリフレッシュ回数の削減、使用するメモリ占有時間の削減方法が開示されている。
特許文献1では、クライアント(1台)、サーバ(複数)、ネストサーバ(1台)の3階層以上の階層構造を前提としている。そして、クライアントから複数のサーバに対し同じRPCを実行する際、RPC要求メッセージ内にネストサーバ内のRPCが呼ばれる回数を指定(プログラミング)しておく。複数のサーバから1台のネストサーバに対し、複数の同じRPC要求が来るので、最初のRPCのみ実行し実行結果返すと共にネストサーバでキャッシュし、以降のRPC要求については引数が全て一致したなら、キャッシュされている実行結果を返す。特許文献1では、予め定められた呼ばれる回数に達したら、即キャッシュクリアを行うことで、キャッシュのリフレッシュ回数の削減、メモリ占有時間削減を可能としている。
また、特許文献2では、キャッシュテーブルに常に最新データを保持するような仕組みが提案されている。
特許文献2は、分散オブジェクトの管理方法において、各サーバ間で問い合わせた情報を各サーバ内にキャッシュし、元データ更新に際し効率的に最新の情報を維持する方法である。キャッシュの更新方法については、問い合わせがあったデータが実在するサーバに変更があった場合、該当データの存在するキャッシュテーブルを保持しているマシンに、能動的にデータを送信してキャッシュテーブルを更新する。
しかしながら、上記の方法では、以下のような問題点があった。
a) 特許文献1については、対象がクライアント(1台)、サーバ(複数)、ネストサーバ(1台)の3階層以上の階層構造という限定された環境が前提である問題があった。また、多重化されたRPCの実行には、ユーザプログラミングによるRPC実行回数の指定が必要であるといった制限がある問題があった。
b) 特許文献2については、サーバへの問い合わせ負荷の削減には効果があるが、問い合わせがあったデータが実在するサーバは、該当データの存在するキャッシュテーブルを保持しているマシンを常に把握しておく必要がある問題があった。
c) また、特許文献1、及び特許文献2は、キャッシュの使用するメモリの削減(メモリの上限指定等)は、考慮されていない問題があった。
本発明は上記の問題点に鑑みなされたもので、効率的なキャッシュ管理を行うことを目的とする。
そこで、上記問題を解決するため、本発明は、コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置であって、コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、を有し、前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とする。
係る構成とすることにより、ネームサービスキャッシュ装置は、キャッシュ保持手段に問い合わせ要求に係る情報が登録されていない場合は、ネームサービス装置より情報を取得し、登録する。また、それと共に、ネームサービスキャッシュ装置は、参照コンポーネントオブジェクト数を用いて、情報のキャッシュに係る残参照回数の初期値をキャッシュ保持手段に登録する。そして、ネームサービスキャッシュ装置は、問い合わせ要求に係る情報を要求元に通知する。よって、効率的なキャッシュ管理を行うことができる。
また、上記問題を解決するため、本発明は、ネームサービスキャッシュ方法、プログラム、及び記憶媒体としてもよい。
本発明によれば、効率的なキャッシュ管理を行うことができる。
以下、本発明の実施例について図面に基づいて説明する。
図1は、マシンのハードウェア構成の一例を示す図である。後述するマシンの機能又は後述するフローチャートは、プログラムがハードディスク等の外部補助記憶装置16より記憶装置(RAM)13にロードされ、中央処理装置(CPU)12によって実行されることにより実現される。また、マシンがネームサービスキャッシュ装置の場合、プログラムと共に、後述するマニフェスト、キャッシュ管理テーブル、被参照コンポテーブル等も外部補助記憶装置16に格納されている。
入力装置11は、操作者が必要な操作をするための装置であり、一般にはキーボードやポインティングデバイス(マウス)等を示している。表示装置15は、画面等を表示する装置であり、一般にはCRT(Cathode Ray Tube)や液晶表示装置等を示している。なお、入力装置11や、表示装置15は、マシンのハードウェア構成として必ずしも必要なハードウェアではない。
I/Oインタフェース装置17は、マシンを、ネットワークやプリンタ等の外部装置に接続するインタフェース装置である。I/Oバス14は、上述した各ユニット間を接続するバス(アドレスバス、又はデータバス、又は制御バス)である。
図2は、システム構成の一例を示す図である。マシン1(100)、マシン2(700)、及びマシン3(600)がイーサネット(登録商標)等のネットワーク120を介し存在する。
マシン1(100)には、プロセス1−1(150)、及びプロセス1−2(160)が存在する。プロセス1−1(150)には、コンポA151、コンポB152、及びコンポC153が存在する。プロセス1−2(160)には、コンポD161、及びコンポE162が存在する。マシン2(700)には、プロセス2−1(710)が存在する。プロセス2−1(710)には、コンポF711、及びコンポG712が存在する。
プロセス毎に、コンポの依存関係(あるコンポは、他のどのコンポを参照(使用)しているか)を記述したマニフェスト(マニフェスト情報)が存在する。プロセス1−1(150)、プロセス1−2(160)、プロセス2−1(710)には、それぞれマニフェスト1−1(170)、マニフェスト1−2(190)、マニフェスト2−1(720)が対応している。
マシン3(600)には、PNS(ポートネームサービス)610が存在する。PNS610は、コンポ名と、handleと、を対応付けて管理する。
次に、ネームサービスキャッシュ装置の立ち上がり動作順序に従って、処理を説明する。
立ち上がり動作順序は、大きく1),2),3),4)の4段階に分けられる。
立ち上がり動作順序は、大きく1),2),3),4)の4段階に分けられる。
1) マニフェストの読み込み(プロセス毎マニフェストの集計を被参照コンポテーブル300に登録)
マシン毎にライフサイクル管理機構200、800が起動される。
マシン1(100)について見ると、ライフサイクル管理機構200は、マニフェスト1−1(170)、及びマニフェスト1−2(190)を読み込み、被参照コンポ別集計101、及び102を行い、合計結果を被参照コンポテーブル300に保存(103)する。
被参照コンポテーブル300において、例えば、コンポB152の参照コンポ数は3なので、3回だけ他のコンポから参照(使用)される事を示している。
マシン毎にライフサイクル管理機構200、800が起動される。
マシン1(100)について見ると、ライフサイクル管理機構200は、マニフェスト1−1(170)、及びマニフェスト1−2(190)を読み込み、被参照コンポ別集計101、及び102を行い、合計結果を被参照コンポテーブル300に保存(103)する。
被参照コンポテーブル300において、例えば、コンポB152の参照コンポ数は3なので、3回だけ他のコンポから参照(使用)される事を示している。
2) プロセス初期化(プロセス毎の各コンポをマシン3(600)のPNS610にコンポ登録)
ライフサイクル管理機構200、800によりプロセス毎に初期化105、106、703を行う。このことにより、各プロセスに含まれるコンポ(A151,B152,C153,D161,E162,F711,G712)は、マシン3(600)のPNS610に対し、コンポ登録(107,704,705,他のコンポは省略)を行う。そして、マシン3においてコンポ毎にhandleが割り当てられる。
ライフサイクル管理機構200、800によりプロセス毎に初期化105、106、703を行う。このことにより、各プロセスに含まれるコンポ(A151,B152,C153,D161,E162,F711,G712)は、マシン3(600)のPNS610に対し、コンポ登録(107,704,705,他のコンポは省略)を行う。そして、マシン3においてコンポ毎にhandleが割り当てられる。
3) プロセス起動(プロセス毎に起動された各参照コンポをキャッシュ管理テーブル500に保存)
ライフサイクル管理機構200、800により各プロセスが起動105、106、703されると、各コンポは参照(使用)したいコンポについてコンポ問い合わせ機構400(マシン2(700)では省略)に問い合わせ要求を行う。
以降、マシン1(100)について見ると、コンポD161がコンポB152についてコンポ問い合わせ機構400に対して問い合わせ(109)を行っている。
コンポ問い合わせ機構400は、キャッシュ管理テーブル500にコンポB152があるか否か検索する(110)。初回はヒットしない(111)ので、コンポ問い合わせ機構400は、マシン3(600)のPNS610にコンポB152を検索しに行き、検索結果を取得する(112,113)。
そして、コンポ問い合わせ機構400は、被参照コンポテーブル300のコンポB152のエントリについて「参照コンポ数[3個]−1」の値が1以上か否かを判定する。コンポ問い合わせ機構400は、1以上であると判定すると、キャッシュ管理テーブル500に該当コンポB152の検索結果のエントリ(handle,残参照カウンタ=参照コンポ数−1=2)を追加する(114,115)。最後に、コンポ問い合わせ機構400は、検索結果(handle)をコンポD161に返す(116)。
マシン2(700)でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
ライフサイクル管理機構200、800により各プロセスが起動105、106、703されると、各コンポは参照(使用)したいコンポについてコンポ問い合わせ機構400(マシン2(700)では省略)に問い合わせ要求を行う。
以降、マシン1(100)について見ると、コンポD161がコンポB152についてコンポ問い合わせ機構400に対して問い合わせ(109)を行っている。
コンポ問い合わせ機構400は、キャッシュ管理テーブル500にコンポB152があるか否か検索する(110)。初回はヒットしない(111)ので、コンポ問い合わせ機構400は、マシン3(600)のPNS610にコンポB152を検索しに行き、検索結果を取得する(112,113)。
そして、コンポ問い合わせ機構400は、被参照コンポテーブル300のコンポB152のエントリについて「参照コンポ数[3個]−1」の値が1以上か否かを判定する。コンポ問い合わせ機構400は、1以上であると判定すると、キャッシュ管理テーブル500に該当コンポB152の検索結果のエントリ(handle,残参照カウンタ=参照コンポ数−1=2)を追加する(114,115)。最後に、コンポ問い合わせ機構400は、検索結果(handle)をコンポD161に返す(116)。
マシン2(700)でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
4) キャッシュ動作(マシン毎にキャッシュ管理テーブル500の各コンポ情報を参照、削除)
マシン1(100)内で、再び同一のコンポB152についての問い合わせが、コンポ問い合わせ機構400にあった場合、コンポ問い合わせ機構400は、キャッシュ管理テーブル500内を検索し(110,111)、情報(handle)を、問い合わせ元コンポA151又はコンポC153に返し、残参照カウンタを1、デクリメントする。
残参照カウンタが0になったときは、コンポ問い合わせ機構400は、該当コンポB152のエントリをキャッシュ管理テーブル500から削除する。
マシン2(700)でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
マシン1(100)内で、再び同一のコンポB152についての問い合わせが、コンポ問い合わせ機構400にあった場合、コンポ問い合わせ機構400は、キャッシュ管理テーブル500内を検索し(110,111)、情報(handle)を、問い合わせ元コンポA151又はコンポC153に返し、残参照カウンタを1、デクリメントする。
残参照カウンタが0になったときは、コンポ問い合わせ機構400は、該当コンポB152のエントリをキャッシュ管理テーブル500から削除する。
マシン2(700)でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
以上の処理の結果、コンポ情報は、PNS610に対してコンポ登録107後、初回の問い合わせ109時にキャッシュされる(114)。その後、同コンポに対する問い合わせ(110,111)が残参照カウンタに示される回数された後で直ぐに、キャッシュから削除される。
これにより、キャッシュのリフレッシュはコンポ登録後1回に削減される。また、使用するメモリの占有時間を最小限にとどめる事でメモリの削減が可能となる。
図3は、図2に示したマニフェスト1−1(170)、マニフェスト1−2(190)を示す図である。
マニフェスト1−1(170)は、図2のプロセス1−1(150)に含まれるコンポA151、コンポB152、及びコンポC153が参照する(使用する)コンポの情報を保持している。
マニフェスト1−1(170)は、図2のプロセス1−1(150)に含まれるコンポA151、コンポB152、及びコンポC153が参照する(使用する)コンポの情報を保持している。
図3において、マニフェスト1−1(170)は、コンポA173は、コンポB174、及びコンポF175を参照する(使用する)ことを被参照コンポ172カラムに示す。同様に、コンポB176はコンポF177を参照する(使用する)ことを被参照コンポ172カラムに示す。同様に、コンポC178は、コンポB179、コンポE180、及びコンポD181を参照する(使用する)ことを被参照コンポ172カラムに示す。
マニフェスト1−2(190)は、図2中のプロセス1−2(160)に含まれるコンポD161、及びコンポE162が参照する(使用する)コンポの情報を保持している。
図3において、マニフェスト1−2(190)は、コンポD193は、コンポB194を参照する(使用する)ことを被参照コンポ192カラムに示す。同様に、コンポE195は、コンポD196を参照する(使用する)ことを被参照コンポ192カラムに示す。
図3のマニフェスト1−1(170)の被参照コンポ172カラムにおいて、コンポF175、及び177は、マシン2(700)上に存在している。このように、自身のマシン1(100)内に存在しないコンポについても参照する(使用する)場合は、マニフェストに記述することが可能である。
図4は、図2に示した被参照コンポテーブル300を示す図である。被参照コンポテーブル300は、マシン毎に存在する。
マシン1(100)においては、例えばライフサイクル機構200が立ち上がり時に、マニフェスト1−1(170)の被参照コンポ172カラム、及びマニフェスト1−2(190)の被参照コンポ192カラムに含まれるコンポをコンポ毎計数する。
被参照コンポテーブル300は、計数した値をname301毎に参照コンポ数302に保存した物である。例えば、図4において、被参照コンポテーブル300内の、コンポB305の参照コンポ数302は、3(306)であり、3回だけ他のコンポから参照(使用)される事を示している。
図5は、プロセスの初期化、起動処理の一例を示すフローチャートである。以下、マシン1(100)における動作を、ステップを追って説明する。
ライフサイクル管理機構200は、システムの立ち上がり時、マシン内で集計していないマニフェストが存在するか否かを判断する(ステップ201)。まだ、集計していないマニフェスト(170又は190)が存在すれば、ライフサイクル管理機構200は、被参照コンポ(172又は192)カラムを読み込んで、被参照テーブル300のname301毎に参照コンポ数302に加算する(ステップ202)。そして、ライフサイクル管理機構200は、再びステップ201に戻る。
ステップ201においてマシン内で集計していないマニフェストが存在しなければ、ライフサイクル管理機構200は、初期化していないプロセスが存在するか否かを判断する(ステップ203)。
まだ、初期化していないプロセスがあれば、ライフサイクル管理機構200は、プロセスの初期化を行い(ステップ204)、再びステップ203に戻る。なお、プロセスが初期化されると、プロセスに含まれるコンポも初期化されるものとする。初期化されたコンポ(A151,B152,C153,D161,E162)は、マシン3(600)のPNS610に、コンポ登録する。PNS610は、該当コンポname611のエントリを追加して、対応するhandle612を割り当てる。なお、PNS610の詳細は、後述する図8で説明する。
ステップ203において初期化していないプロセスがなければ、ライフサイクル管理機構200は、起動していないプロセスが存在するか否かを判断する(ステップ205)。
まだ、起動していないプロセスが存在すれば、ライフサイクル管理機構200は、プロセスを起動し、再びステップ205に戻る。なお、プロセスが起動されると、プロセスに含まれるコンポも起動されるものとする。起動されたコンポ(A151,B152,C153,D161,E162)は、参照(使用)したいコンポについてコンポ問い合わせ機構400に問い合わせを行う(ステップ206)。ステップ205において起動していないプロセスが無ければ、ライフサイクル管理機構200は、図5に示す処理を終了する。
図6は、コンポ問い合わせ機構400における処理の一例を示すフローチャートである。なお、図6中の点線で表された部分は、実施例2でのみ使用し、実施例1では使用しない。
コンポ問い合わせ機構400は、ライフサイクル管理機構200により起動されたコンポ(A151,B152,C153,D161,E162)から、参照(使用)したいコンポについて問い合わせを受け付けることで起動される。
以下マシン1(100)における動作を、ステップを追って説明する。コンポ問い合わせ機構400は起動されて最初に、キャッシュ管理テーブル500のname501カラムに参照(使用)したいコンポ(=該当コンポ)が存在するか否かを判断する(ステップ401)。なお、キャッシュ管理テーブル500の詳細は、後述する図7で説明する。
キャッシュ管理テーブル500のname501カラムに参照(使用)したいコンポが存在すると判断した場合、コンポ問い合わせ機構400は、キャッシュ管理テーブル500のname501カラム中の該当コンポに対応するhandle502を取得する。そして、コンポ問い合わせ機構400は、取得したhandle502を問い合わせ元コンポに返す(ステップ402)。
続いて、コンポ問い合わせ機構400は、キャッシュ管理テーブル500のname501カラム中の該当コンポに対応する残参照カウンタ503を1、デクリメントする(ステップ403)。
続いて、コンポ問い合わせ機構400は、キャッシュ管理テーブル500のname501カラム中の該当コンポに対応する残参照カウンタ503が0と等しいか判断する(ステップ404)。該当コンポに対応する残参照カウンタ503が0と等しいと判断した場合、コンポ問い合わせ機構400は、キャッシュ管理テーブル500から該当コンポname501のエントリ(行)を削除して(ステップ405)、図6に示す処理を終了する。
ステップ404において、該当コンポに対応する残参照カウンタ503が0でないと判断した場合、コンポ問い合わせ機構400は、図6に示す処理を終了する。
ステップ401においてキャッシュ管理テーブル500のname501カラムに参照(使用)したいコンポ(=該当コンポ)がないと判断した場合、コンポ問い合わせ機構400は、マシン3(600)のPNS610に検索要求を送信する。そして、コンポ問い合わせ機構400は、PNS610より、name611カラム中の該当コンポに対応するhandle612を得る(ステップ406)。
続いて、コンポ問い合わせ機構400は、被参照コンポテーブル300のname301カラム中の該当コンポに対応する参照コンポ数302の値を得る(ステップ407)。続いて、コンポ問い合わせ機構400は、ステップ407で得た参照コンポ数302の値−1が1以上の値になるか否か判断する(ステップ408)。
ステップ408において1以上の値になると判断すると、コンポ問い合わせ機構400は、キャッシュ管理テーブル500に、該当コンポname501のエントリ(行)を追加し、対応するhandle502にステップ406で得た値を代入する。そして、コンポ問い合わせ機構400は、対応する残参照カウンタ503にステップ407で得た値−1を代入する(ステップ409)。ステップ408において1以上の値にならないと判断すると、コンポ問い合わせ機構400は、ステップ409を実行しない。
コンポ問い合わせ機構400は、ステップ406で得た値handle612を問い合わせ元コンポに返す(ステップ410)。
図7は、図2に示したキャッシュ管理テーブル500を示す図である。
キャッシュ管理テーブル500は、マシン毎に存在し、PNS610に問い合わせた結果がキャッシュされる。マシン1(100)においては、例えばコンポ問い合わせ機構400が、マシン3(600)のPNS610のname611カラム中の該当コンポに対応するhandle612を得る。そして、コンポ問い合わせ機構400が、キャッシュ管理テーブル500に、該当コンポname501と、handle502と、残参照カウンタ503と、が対応付けたエントリを追加する。
キャッシュ管理テーブル500は、マシン毎に存在し、PNS610に問い合わせた結果がキャッシュされる。マシン1(100)においては、例えばコンポ問い合わせ機構400が、マシン3(600)のPNS610のname611カラム中の該当コンポに対応するhandle612を得る。そして、コンポ問い合わせ機構400が、キャッシュ管理テーブル500に、該当コンポname501と、handle502と、残参照カウンタ503と、が対応付けたエントリを追加する。
エントリ追加の際の残参照カウンタ503の初期値は、被参照コンポテーブル300のname301カラム中の該当コンポに対応する参照コンポ数302の値−1である。
例えば、キャッシュ管理テーブル500において、コンポB504の残参照カウンタ503は、2(506)である。これは、被参照コンポテーブル300におけるコンポB305の参照コンポ数302の値が3(306)であり、その値から1を引くことで初期値2がセットされている。以降、コンポ問い合わせ機構400から、参照(使用)したいコンポの問い合わせがあれば、該当コンポ名をキーにname501を検索し、対応するhandle502を返す毎に、残参照カウンタ503は1、デクリメントされる。そして、該当コンポに対応する残参照カウンタ503が0と等しい場合、キャッシュ管理テーブル500から該当コンポname501のエントリ(行)が削除される。
図8は、図2に示したPNS(ポートネームサービス)610(又はPNS610が保持するテーブル)を示す図である。PNS610は、マシン3に存在し、コンポ名name611と、handle612との対応を管理する。
コンポからコンポ登録の要求があれば、マシン3(600)のPNS610は、コンポ登録処理を行い、該当コンポname611のエントリを追加して、対応するhandle612を割り当てる。
以降、コンポ問い合わせ機構400から、参照(使用)したいコンポの問い合わせがあれば、PNS610は、該当コンポ名をキーにname611を検索し、対応するhandle612を返す。
実施例2では、実施例1の方法を用いて、図2に示したコンポB152からコンポ問い合わせ機構400に対する、コンポB登録時キャッシュ108のイベントを追加した例を示す。
更に、図6に示したコンポ問い合わせ機構400における、点線で表記したステップ411,412,413の処理を追加し、ステップ401を削除し、ステップ408と、ステップ409との処理を変更する(ステップ408改、ステップ409改とする)。
更に、図6に示したコンポ問い合わせ機構400における、点線で表記したステップ411,412,413の処理を追加し、ステップ401を削除し、ステップ408と、ステップ409との処理を変更する(ステップ408改、ステップ409改とする)。
以下、図6用いて、マシン1(100)における動作を、ステップを追って説明する。
コンポ問い合わせ機構400は、起動されて最初に、コンポからの要求が、コンポからの問い合わせか、又はコンポ登録時キャッシュ108かを判断する(ステップ411)。コンポ問い合わせ機構400は、コンポからの要求が、コンポ登録時キャッシュ108であると判断すると、登録要求元のコンポを該当コンポとする(ステップ412)。
続いて、コンポ問い合わせ機構400は、マシン3(600)のPNS610に検索要求を送信する。そして、コンポ問い合わせ機構400は、PNS610より、name611カラム中の該当コンポに対応するhandle612を得る(ステップ406)。
続いて、コンポ問い合わせ機構400は、被参照コンポテーブル300のname301カラム中の該当コンポに対応する参照コンポ数302の値を得る(ステップ407)。
続いて、コンポ問い合わせ機構400は、ステップ407で得た参照コンポ数302の値が1以上か否かを判断する(ステップ408改)。
ステップ408改において1以上の値であると判断すると、コンポ問い合わせ機構400は、キャッシュ管理テーブル500に、該当コンポname501のエントリ(行)を追加し、対応するhandle502にステップ406で得た値を代入する。そして、コンポ問い合わせ機構400は、対応する残参照カウンタ503にステップ407で得た値を代入する(ステップ409改)。ステップ408改において1以上の値でないと判断すると、コンポ問い合わせ機構400は、ステップ409改を実行しない。
コンポ問い合わせ機構400は、ステップ411においてコンポからの問い合わせと判断したか否かを判断し、コンポからの問い合わせと判断していないと判断すると、図6に示す処理を終了する。
以上のようにコンポ問い合わせ機構400の処理を変更することで、問い合わせ時ではなく各コンポの初期化時に該当コンポをPNS610に登録する。また該当コンポ自身が存在するマシン1(100)のキャッシュ管理テーブル500に、該当コンポのエントリを追加することが可能となる。
これにより、問い合わせがあったデータが実在するサーバ(PNS610に相当)は、該当データの存在するキャッシュ管理テーブル500を保持しているマシンを常に把握しておく必要がない。組み込みシステム機器等に搭載されるPNS(ポートネームサービス)に問い合わせを行うネームサービスキャッシュ装置について、PNSに対する問い合わせの効率化が可能となる。
実施例3では、実施例1の方法を用いて、図2に示したライフサイクル管理機構200における、キャッシュ管理テーブル500からのメモリ空き容量チェック104のための読み込み処理を追加した例を示す。
更に、図5に示したライフサイクル管理機構200における、ステップ206の処理を変更し、ステップ206改とする。
更に、図5に示したライフサイクル管理機構200における、ステップ206の処理を変更し、ステップ206改とする。
以下、図5を用いて、マシン1(100)における動作を、ステップを追って説明する。
ライフサイクル管理機構200は、起動されると、ステップ201からステップ205までの処理を実施例1と同様に実行する。
ステップ205において、まだ起動していないプロセスが存在すると判断すると、ライフサイクル管理機構200は、キャッシュ管理テーブル500のメモリ容量をチェックする。ライフサイクル管理機構200は、キャッシュ管理テーブル500のメモリ容量が予め定められた閾値より大きいと判断すると、前記メモリ容量が前記閾値以下になるまで待った後、まだ起動していないプロセスを起動し、再びステップ205に戻る。起動されたコンポ(A151,B152,C153,D161,E162)は、参照(使用)したいコンポについてコンポ問い合わせ機構400に問い合わせを行う(ステップ206改)。ステップ205において起動していないプロセスが無ければ、ライフサイクル管理機構200は、図5に示す処理を終了する。
以上のように、ライフサイクル管理機構200の処理を変更し、キャッシュ管理テーブル500のメモリ使用量が閾値以下になるまで、新たなプロセス及びプロセスに含まれるコンポの起動を待たせるようにする。
これにより、組み込みシステム機器等に搭載されるPNS(ポートネームサービス)に問い合わせを行うネームサービスキャッシュ装置について、キャッシュの使用するメモリの削減(メモリの上限指定)が可能となる。
以上、説明した様に、上述した実施例によれば、効率的なキャッシュ管理を行うことができる。
また、組み込みシステム機器等に搭載されるPNS(ポートネームサービス)に問い合わせを行うネームサービスキャッシュ装置において、PNSに対するキャッシュのリフレッシュ回数の削減、キャッシュの使用するメモリ占有時間の削減、キャッシュの使用するメモリの削減(メモリの上限指定等)、PNSに対する問い合わせの効率化も可能となる。
また、組み込みシステム機器等に搭載されるPNS(ポートネームサービス)に問い合わせを行うネームサービスキャッシュ装置において、PNSに対するキャッシュのリフレッシュ回数の削減、キャッシュの使用するメモリ占有時間の削減、キャッシュの使用するメモリの削減(メモリの上限指定等)、PNSに対する問い合わせの効率化も可能となる。
これにより、本実施形態を組み込みシステム機器製品に搭載することで、性能が向上すると同時に少メモリ化を達成することが出来るため、省電力化及び低コスト化を実現できる。
また、本実施形態を実装するために、専用のハードウェアを新規に開発する必要はなく、既存の組み込み機器内のOSに簡単に組込むことが可能であるので、既存システムであっても低コストで性能を向上させることができる。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
11 入力装置
12 中央処理装置
13 記憶装置
15 表示装置
16 外部補助記憶装置
17 IO I/F装置
12 中央処理装置
13 記憶装置
15 表示装置
16 外部補助記憶装置
17 IO I/F装置
Claims (8)
- コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置であって、
コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、
コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、
を有し、
前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とするネームサービスキャッシュ装置。 - 前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていた場合、前記問い合わせに係るコンポーネントオブジェクトの前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知すると共に、前記問い合わせに係るコンポーネントオブジェクトの残参照回数を1、デクリメントすることを特徴とする請求項1に記載のネームサービスキャッシュ装置。
- 前記問い合わせ対応手段は、前記問い合わせに係るコンポーネントオブジェクトの残参照回数を1、デクリメントした結果、前記残参照回数が0になった場合、前記キャッシュ保持手段に登録されている前記問い合わせに係るコンポーネントオブジェクトに係る情報を削除することを特徴とする請求項2に記載のネームサービスキャッシュ装置。
- 前記問い合わせ対応手段は、コンポーネントオブジェクトからの、前記ネームサービス装置への登録通知に応じた処理も更に行い、
前記問い合わせ手段は、コンポーネントオブジェクトからの前記登録通知を受け、前記コンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録することを特徴とする請求項1乃至3の何れか1項に記載のネームサービスキャッシュ装置。 - ネームサービスキャッシュ装置内のプロセス、及びプロセスに含まれるコンポーネントオブジェクトの起動を管理するライフサイクル管理手段を更に有し、
前記ライフサイクル管理手段は、前記キャッシュ保持手段に係るメモリ使用状況を確認し、前記メモリ使用状況が予め定められた閾値以上の場合は、前記メモリ使用情報が前記閾値より小さくなるまで前記プロセス、及び前記プロセスに含まれるコンポーネントオブジェクトを起動しないことを特徴とする請求項1乃至4の何れか1項に記載のネームサービスキャッシュ装置。 - コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置におけるネームサービスキャッシュ方法であって、
前記ネームサービス装置は、
コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、
コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、
を有し、
前記問い合わせ対応手段が、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とするネームサービスキャッシュ方法。 - 請求項6に記載のネームサービスキャッシュ方法をコンピュータに実行させることを特徴とするプログラム。
- 請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006031354A JP2007213235A (ja) | 2006-02-08 | 2006-02-08 | ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006031354A JP2007213235A (ja) | 2006-02-08 | 2006-02-08 | ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007213235A true JP2007213235A (ja) | 2007-08-23 |
Family
ID=38491625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006031354A Pending JP2007213235A (ja) | 2006-02-08 | 2006-02-08 | ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007213235A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116496A (ja) * | 2007-11-05 | 2009-05-28 | Hitachi Ltd | ディレクトリサーバ装置、ディレクトリサーバプログラム、ディレクトリサービスシステム、およびディレクトリサービス管理方法 |
JP2013531296A (ja) * | 2010-06-24 | 2013-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ハイブリッド・メモリ・サーバにおけるデータ・アクセス管理 |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
JP2019008645A (ja) * | 2017-06-27 | 2019-01-17 | ソフトバンク株式会社 | サーバ装置、サーバ装置がIoTデバイスと通信する方法、コンピュータプログラム、通信システムおよびIoTデバイス |
-
2006
- 2006-02-08 JP JP2006031354A patent/JP2007213235A/ja active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116496A (ja) * | 2007-11-05 | 2009-05-28 | Hitachi Ltd | ディレクトリサーバ装置、ディレクトリサーバプログラム、ディレクトリサービスシステム、およびディレクトリサービス管理方法 |
US9857987B2 (en) | 2010-06-24 | 2018-01-02 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US8914528B2 (en) | 2010-06-24 | 2014-12-16 | International Business Machines Corporation | Multiplexing users and enabling virtualization on a hybrid system |
US9952774B2 (en) | 2010-06-24 | 2018-04-24 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US9933949B2 (en) | 2010-06-24 | 2018-04-03 | International Business Machines Corporation | Data access management in a hybrid memory server |
US9069977B2 (en) | 2010-06-24 | 2015-06-30 | International Business Machines Corporation | Hybrid server with heterogeneous memory |
US9418235B2 (en) | 2010-06-24 | 2016-08-16 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US9542322B2 (en) | 2010-06-24 | 2017-01-10 | International Business Machines Corporation | Data access management in a hybrid memory server |
JP2013531296A (ja) * | 2010-06-24 | 2013-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ハイブリッド・メモリ・サーバにおけるデータ・アクセス管理 |
US10831375B2 (en) | 2010-06-24 | 2020-11-10 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
US10222999B2 (en) | 2010-06-24 | 2019-03-05 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10228863B2 (en) | 2010-06-24 | 2019-03-12 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10235051B2 (en) | 2010-06-24 | 2019-03-19 | International Business Machines Corporation | Data access management in a hybrid memory server |
US10452276B2 (en) | 2010-06-24 | 2019-10-22 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10585593B2 (en) | 2010-06-24 | 2020-03-10 | International Business Machines Corporation | Data access management in a hybrid memory server |
US10592118B2 (en) | 2010-06-24 | 2020-03-17 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
JP2019008645A (ja) * | 2017-06-27 | 2019-01-17 | ソフトバンク株式会社 | サーバ装置、サーバ装置がIoTデバイスと通信する方法、コンピュータプログラム、通信システムおよびIoTデバイス |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
US9646045B2 (en) | Transaction processing system, method and program | |
JP4578160B2 (ja) | キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し | |
KR101203306B1 (ko) | 데이터 변경 통지 | |
EP2545458B1 (en) | Method and memory cache data center | |
RU2373567C2 (ru) | Общая модель зависимости для аннулирования элементов кэша | |
KR100532337B1 (ko) | 데이터 캐싱 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
US20120047107A1 (en) | System and method for implementing on demand cloud database | |
US8572130B2 (en) | Replacement policy for resource container | |
KR20110128846A (ko) | 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델 | |
JP2005235171A (ja) | 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置 | |
US11687595B2 (en) | System and method for searching backups | |
US9652383B2 (en) | Managing a collection of data | |
US11500755B1 (en) | Database performance degradation detection and prevention | |
US20090165011A1 (en) | Resource management method, information processing system, information processing apparatus, and program | |
CN101414295A (zh) | 数据库的升级方法 | |
JP5235483B2 (ja) | データベースと仮想テーブルの整合性を維持する方法および装置。 | |
JP2007213235A (ja) | ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法 | |
US10261949B2 (en) | Packed row representation for efficient network serialization with direct column indexing in a network switch | |
US10642745B2 (en) | Key invalidation in cache systems | |
US20100251237A1 (en) | Managing orphaned requests in a multi-server environment | |
JPH10133860A (ja) | Os配布・更新方法 | |
CN111026564A (zh) | 命名服务的处理方法和系统 | |
US20120323874A1 (en) | Resource-specific control blocks for database cache | |
JP2006127123A (ja) | アプリケーションサーバ、データベースサーバ、ウェブ検索システム、検索結果取得方法、検索結果応答方法、検索結果取得プログラムおよび検索結果応答プログラム |