210 likes | 328 Views
出世魚に関係するファイル. ヒープ ヒープ設定ファイル プログラムファイル クラスヘッダ、クラスインプリメンテーション、 アプリケーション Makefile 出世魚 ヘッダ、ライブラリ、ワカシサーバ. gpml 実行環境. kei. ヒープ ヒープ設定ファイル プログラムファイル Makefile 出世魚. / home/db/s8/gpml. gpml ファイルの場所. ヒープ : / home/db/s8/gpml/db ヒープ設定ファイル : / home/db/s8/gpml/dbconfig
E N D
出世魚に関係するファイル • ヒープ • ヒープ設定ファイル • プログラムファイル • クラスヘッダ、クラスインプリメンテーション、アプリケーション • Makefile • 出世魚 • ヘッダ、ライブラリ、ワカシサーバ
gpml 実行環境 kei ヒープ ヒープ設定ファイル プログラムファイル Makefile 出世魚 /home/db/s8/gpml
gpml ファイルの場所 • ヒープ :/home/db/s8/gpml/db • ヒープ設定ファイル :/home/db/s8/gpml/dbconfig • プログラムファイル :/home/db/s8/gpml • Makefile :/home/db/s8/gpml/Makefile • 出世魚 • ヘッダ :/home/db/s8/include • ライブラリ :/home/db/s8/lib • ワカシサーバ :/home/db/s8/perver/pserver /home/db/s8/tserver/tserver
プログラムファイルとMakefile インプリメンテーション (メソッド等) アプリケーション (extent生成) 出世魚プログラム (ヘッダとライブラリ) ヘッダ schema.h schema.C extent_creation.C gpml_loading.C Makefile オブジェクトファイル 実行ファイル
Makefileの書き方のヒント classプログラムを追加したいとき CLIBS=の行に追加 testプログラムやアプリケーションを追加したいとき PROGS=の行に追加 # CLIBS: C++ class program CLIBS=schema.C # SRCS: C or C++ program # *.c: c program, *.cc, *.C: c++ program SRCS= # INTERFACE: interface of 'SRCS' programs HDRS= # test programs and applications # *.c: c program, *.cc, *.C: c++ program PROGS=extent_creation.C gpml_loading.C
Makefile • PROGSmain() を含む *.c, *.cc, *.C ファイル • CLIBSクラス定義を含む *.c, *.cc, *.C ファイル • SRCS それ以外の *.c, *.cc, *.C ファイルで、PROGS のコンパイル/リンクに必要ファイル • HDRSヘッダファイルのうち、CLIBS, SRCS で書かれたファイル名と basename が一致しないもの
C++プログラムのコンパイルの方法 gpmlディレクトリをコピーして作業するとき 例:/home/db/s8/gpml2を作ってgpmlの内容をコピーした時 % make clean % make depend classプログラムを追加、変更した場合 (mainの無いプログラムファイル) % make libs 実行ファイルを作成する場合 (mainの有るプログラムファイル) 例:extent_creation.C % make extent_creation
gpml.ht gpml.nt gpml.tt gpml.lot gpml.vgh0 gpml.pgh1 gpml.pgh2 genheap (ヒープ生成プログラム) ワカシサーバ 通信 ヒープ生成 ファイル 読み込み ヒープ設定ファイル /home/db/s8/gpml/db/
作業手順 keiへログイン 作業ディレクトリに移動 サーバ(再)起動 ヒープ生成 プログラムコンパイル 作り直したい Yes No サーバ再起動 実行
ワカシサーバの起動と停止 • tserver、pserverの起動 それぞれ端末を開いて % /home/db/s8/tserver/tserver % /home/db/s8/pserver/pserver • tserver、pserverの停止 それぞれ起動した端末で Ctrl-c
どの時にサーバを動かす必要があるか ×プログラムのコンパイル ○ヒープ生成 ○プログラム実行
ヒープ生成スクリプトとパラメータ ヒープ生成スクリプト(ファイル名:genheap)の実行 サーバ起動して % setenv INADA_DBDIR /home/db/s8/gpml/db % cd /home/db/s8/gpml/db.script % ./genheap dbconfigのファイルを読み込んでheap生成
ヒープ設定ファイル ヒープ設定ファイル(ファイル名dbconfig)の主なパラメータ DBNAME データベース名 SYSTEM_HEAPS_PRIMARY プライマリサイト名 user heap information id ヒープ番号 size ヒープサイズ max objects ヒープに格納予定の最大オブジェクト数
ヒープ設定ファイルの詳細(1/2) • WHOMEベースとなるディレクトリ • DBNAMEデータベース名 • INADA_DBDIRヒープ格納ディレクトリヒープは分散可能(USER_HEAPでサイト名を指定)だが、ディレクトリは同じになる • SYSTEM_HEAP_PRIMARY4つのシステムヒープファイル(HT, NT, TT, LOT)を格納すべきサイト名
ヒープ設定ファイルの詳細(2/2) • NUM_NT_ENTRYName Table のエントリ数 • NUM_TT_ENTRYType Table のエントリ数 • NUM_LOT_ENTRYLarge Object の最大数 • USER_HEAP 1ヒープごとに1行 id : ヒープ番号,0から順に付けること p/v: p はpersistent, v はvolatile site: 当該ヒープを置くサイト名 size: ヒープサイズ max object: ヒープに格納予定の最大オブジェクト数
ヒープ設定ファイル記述例(1/2) # configuration file for database # ShusseUo Directory (search for dbuty, hputy in ShusseUo) WHOME /home/db/s8 # database name DBNAME gpml # database file directory INADA_DBDIR /home/db/s8/gpml/db
ヒープ設定ファイル記述例(2/2) # system heap information # primary site name SYSTEM_HEAPS_PRIMARY kei # number of Name Table entries NUM_NT_ENTRY 1000 # number of Type Table entries NUM_TT_ENTRY 1000 # number of Large Object Table entries NUM_LOT_ENTRY 30 # user heap information # id p/v site size max objects USER_HEAP 0 v kei 60000 58000 USER_HEAP 1 p kei 32000 100000 USER_HEAP 2 p kei 4400 2000 # EOF
作業手順(1/2) ・keiにログイン % ssh kei ・作業ディレクトリに移動 % cd /home/db/s8/gpml ・サーバ(再)起動 % kterm&; kterm& それぞれの端末で % /home/db/s8/pserver/pserver % /home/db/s8/tserver/tserver ・ヒープ作成 % cd db.script % setenv INADA_DBDIR /home/db/s8/gpml/db % ./genheap
手順(2/2) ・プログラムコンパイル(プログラム変更した場合に限る) % cd .. % make libs % make extent_creation ・サーバ再起動 サーバが起動している端末で Ctrl-c % /home/db/s8/pserver/pserver % /home/db/s8/tserver/tserver ・実行 % ./extent_creation
OQLコンパイラ実行手順(1/2) ・keiにログイン % ssh kei → /home/db/utoku/s8/gpml/db.script/dbconfig の「SYSTEM_HEAP_PRIMARY」の行に記述されたサイト ・作業ディレクトリに移動 % cd /home/db/utoku/s8/OQL/gpml-oql ・設定 % setenv INADA_DBDIR /home/db/utoku/s8/gpml/db % setenv LD_LIBRARY_PATH /home/db/utoku/s8/lib % set path = (/home/db/s8/metadata $path) ・サーバ(再)起動 % kterm&; kterm& それぞれの端末で % /home/db/utoku/s8/pserver/pserver % /home/db/utoku/s8/tserver/tserver
OQLコンパイラ実行手順(2/2) ・ヒープ作成とスキーマ情報格納 % rm –f consttable.dat % ./dbinit % (データベース名を聞いてくるので) gpml と入力 これは,ヒープ生成に続いて,ODLプリプロセッサを使って,スキーマ情報をスキーマレポジトリに格納するまでの一連の動作を行うシェルスクリプト ・OQLコンパイラ実行 % ./oql <number> /home/db/utoku/s8/OQL/compiler/OQLmain ***.C を実行