2006-08-01から1ヶ月間の記事一覧

物欲の塊なのです

"Askビデオさん、動画デジカメ欲しい!"ダブルクォーテーションで囲わないとだめぽです。

ドイツのベンチマークコンテンストで優勝したらしいNews

http://www.mysqlperformanceblog.com/2006/08/29/mysql-wins-ct-database-contest/JavaPetStoreならぬDell DVD Storeというのがあるのだけれども、ドイツの雑誌が企画したベンチマークコンテストでMySQLが他のRDBMSをおさえて優勝したとのこと。 Most inter…

めもめも

書いて置かなかったために忘れたので、メモ最速ミラーの発見 yum install yum-fastestmirroremacsをCUIモードで起動する。 emacs -nw

register指定子

引用from: http://www.geocities.jp/ky_webid/c/051.html registerを付けた変数には、高速にアクセスできるようにコンパイラに要求を出します。要求を出すだけであって、コンパイラがそれに従うかどうかは分かりませんし、どのような方法で高速アクセスを実…

Native関数呼び出しの仕組み

JOIN::exec()からuとsで追いかけてたら訳分からなくなったので、とりあえずlpad関数にbを仕込んで実行し、btしてみますた。 #0 Item_func_lpad::func_name (this=0x8add0e0) at item_strfunc.h:532 #1 0x0812fb2b in Item_func::agg_arg_charsets (this=0x8a…

Rawディバイス対応について

InnoDBってRawディバイス対応なんですね(たぶん)。バッファにしてもファイルにしても、領域確保の際にかならずアクセス単位(Pageサイズとかセクタサイズとか)1個分余分に取得して、alignしてます。Oracleはパラメータか何かで設定して使うとか聞いた記憶が…

起動プロセス(2) innobase_init関数

とりあえずha_initからこの関数が呼ばれます。 1. innodb_buffer_pool_size/innodb_log_file_sizeのチェック。32bit-systemでは4GB超にできない。 2. データファイル、ログファイルの位置、buf_poolサイズ他の各種設定情報を取得する。 3. innobase_start_or…

起動プロセス(3) innobase_start_or_create_for_mysql関数

InnoDBの初期処理の大まかな流れはこの関数に記述されております。 1. 設定情報の取得処理はここでも続いている。 2. innodb_buffer_pool_sizeの大きさによって、srv_max_n_threadsという変数の値を50000,10000,1000の3段階に分けて設定している。 "WIN"ある…

起動プロセス(4) srv_boot関数

innobase_start_or_create_for_mysql関数の最初の方で呼び出される。 以下の関数を呼び出すだけ。1. srv_normalize_init_values関数を呼び出す。 2. srv_general_init関数を呼び出す。 3. srv_init関数を呼び出す。 ■srv_normalize_init_values関数 この関数…

起動プロセス(5) buf_pool_init関数

innobase_start_or_create_for_mysql関数の中で呼び出される。バッファプールがどうなっているのかは、この関数を読めば分かる。 buf0buf.cにて。buf_poolを初期化する。max_size、curr_size、n_framesの値はinnodb_buffer_pool_sizeをPageサイズで割った値…

起動プロセス(6) log_init関数

innobase_start_or_create_for_mysql関数の中で呼び出される。 log0log.cにて。ログバッファを初期化する。742行目。最初にログのための制御構造体を初期化。log_tのサイズは732バイト。 log_sys = mem_alloc(sizeof(log_t));757行目。innodb_log_buffer_siz…

起動プロセス(7) open_or_create_data_files関数

innobase_start_or_create_for_mysql関数の中で呼び出される。 データファイルは最大で1000個まで。1. srv_n_data_files(データファイルの個数)の数だけ、for文で必要に応じて複数回os_file_create関数を呼び出す。ここでは以下のフラグを渡している。この時…

起動プロセス(8) その他

innobase_start_or_create_for_mysql関数では最後にopen_or_create_log_file関数を呼び出す。innobase_init関数に復帰した後、また最後にhash_init関数を呼んで、起動プロセスは完了。 ■open_or_create_log_file関数ログファイルの数の分だけこの関数は呼び…

tmp_table in THDオブジェクト

本題に戻る前に、友人から依頼されて1件、ソース解析ちゅう。TEMPORARY TABLEに関する不具合の疑いについての調査。とりあえずTHDを漁る。 (gdb) p sizeof(THD) $2 = 5168でかいよー。dddのData Windowに収まりきらん。THD->tmp_tableってのがあるのだが、s…

起動プロセス(1) mainからinnobase_initまで

というわけで、InnoDBの起動プロセスの説明を試みるエントリの連載を開始しちゃいます!!!11本当にちゃんと説明できるかどうかの責任はもちませんw 解釈間違いがあるかもしれませんw ということをお断りしつつ、れっつすたあと。対象バージョンは、5.0…

memsetとbzero

Manpage of MEMSET http://www.linux.or.jp/JM/html/LDP_man-pages/man3/memset.3.htmlManpage of BZERO http://www.linux.or.jp/JM/html/LDP_man-pages/man3/bzero.3.html以下の2つは処理内容に違いはあるのでしょうか? memset(hoge, '\0', fuga); bzero(h…

マルチスレッドデバッグ

gdb

SIGSEGVで落ちた(>< Breakpoint 2, io_handler_thread (arg=0x85ed42c) at srv0start.c:439 (gdb) u (gdb) p segment $1 = 3 (gdb) n [Switching to Thread 1113217968 (LWP 12415)] Breakpoint 2, io_handler_thread (arg=0x85ed428) at srv0start.c:439…

サーバ変数とステータス変数

本件とは関係ないけど、昨日はsennaの開発者の方のお話をいろいろ伺うことができて楽しかったす。ラーメンも相変わらず旨し。で、"SHOW VARIABLES"、"SHOW STATUS"で見れる変数の話。どこかにメモっておいた筈が見当たらないので多分メモらなかったんだろう…

buf_poolとblock

最近、ツール使って図を作ってばかり。dddようやく慣れてきた。下図はinnobase_init中のbuf_poolとblockのデータ表示。 元本:http://ikda.net/resource/mysql/ib_buf_block.GIF

--tui

gdb

これいい鴨。 ssh環境でのdebugが俄然やりやすくなりそう。ローカルでddd使うべしという話もありますが。 p *(buf_pool->mutex)で調べたアドレスをbして動かしてたらプロセス落ちた。んんん〜。 dddでtab補完つかったらddd落ちた(>< しかもエラーメッセー…

beta

少し前の話題になるけど、URLを貼っておきますね。ftp://developers.soliddb.com/pub/しばしinnodbから手が離せないので、個人的に触るのはもうちょい後になると思われ。といいつつサイズ概算だけ。ファイル数 find | egrep '^.*\.(c|cc|h)$' | wc -l 542行…

main関数 with KCachegrind

クリックしても拡大しないようなのでこちらに等倍のをUPしました。 http://ikda.net/resource/mysql/mysql_main_callgraph.png これ楽しいですね〜 > id:tasukuchan様 メモ この図の表示にはdotが使える必要あり。 graphvizとかを入れておくとOKっぽい。

buffer poolとか

buf0buf.cのソースファイル先頭コメントをとりあえず訳してみますた。たぶん理解不十分で誤訳してる個所もあるとおもいまふ。突っ込み大歓迎っす。以下、原文の引用および自分の訳文を載せます。 Performance improvement: ------------------------ Thread …

mixiマザーズ上場予定@9月中旬

スラド経由のCNETより http://japan.cnet.com/news/biz/story/0,2000056020,20200687,00.htm 2006年3月期の売上高が18億9300万円、経常利益が9億1200万円、純利益が5億7600万円 上場時の想定公募価格をもとにした株式時価総額は約1090億円 主幹事証券会社は…

HPがDebianを公式サポート

またまたスラド経由のPC Worldより。 http://www.pcworld.com/article/id,126717-c,linux/article.html面白くなってきましたね〜。HP.jpはいかがされるのでしょうか?

5.1 Partitions

http://dev.mysql.com/tech-resources/articles/mysql_5.1_partitions.htmlPeterGによる、MySQL 5.1で導入されるパーティション機能についての豊富な説明が行われている記事。PeterGと言えば、、、MySQLのアーキテクトの一人で、特に文字コード関係について…

pluggable engine

http://krow.livejournal.com/443637.html mysql> CREATE TABLE `a` ( -> `a` text -> ) ENGINE=TABLE_FUNCTIONS DEFAULT CHARSET=latin1 CONNECTION='/ usr/lib/libhello.so' ; Query OK, 0 rows affected (0.04 sec) mysql> select * from a; +-----------…

野村総研、企業システム向けOSSをレーティングした「NRIオープンソースマップ」を作成

http://release.nikkei.co.jp/detail.cfm?relID=137805&lindID=1これ某K山さんのところの部隊かなー? 「NRIオープンソースマップ」とは、企業システムで採用された実績がある、また、NRIが注目している計24のOSSを、2006年6月に公開されて…

Doxygen

Doxygenでソース解析を行って、その結果のHTMLファイルをikda.net鯖とかに置いたら便利かなと思い、Doxygenを入れることにしました。http://www.stack.nl/~dimitri/doxygen/index.htmlGoogleで関数名や構造体名で検索すると、ヒットするページってDoxygenに…

最近買った本の紹介

Linuxのブートプロセスをみる (UNIXMAGAZINE COLLECTION)作者: 白崎博生出版社/メーカー: アスキー発売日: 2004/04/16メディア: 単行本購入: 2人 クリック: 52回この商品を含むブログ (26件) を見るCPUの各ピンの説明まで書いてあるのは衝撃。マイクロプロセ…