2008-01-01から1年間の記事一覧

fopen関係のメモ

C

fopenしたファイルを横から削除(rm)した場合、fprintf/fflush/fclose等の関数はそれを関知(エラーに)せず、通常通りの戻り値を返す。つまりプログラムからみると関数呼び出しが成功してるので書き込みできていると誤認している。errnoも0のままになっている…

Connector/J 5.1とServer Side Prepared Statement

ここ数日「MySQL + Connector/J(JDBCドライバ) + プリペアードステートメント」の話題がちらほら出ています。正確に把握はしていないですがSQLインジェクション対策→PreparedStatementという流れできた話のようです。 徳丸浩の日記 - JavaとMySQLの組み合わ…

senna-java-0.02 ログ制御機能の設計

senna-javaにDB APIを実装するに先立ってsenna.log制御機能が欲しいと思い、まずログ制御機能を追加することに。Sennaクラスに追加すべきか新しくクラスを作るべきか悩んだ末、新しく作ることに。 /var/senna/logがあるとsen_log_defaultでsenna.logが出力さ…

MySQL/Tritonn - SELinuxにご注意を(回避方法あり)

いつの頃からかは知りませんが、Linux(CentOSとか)をインストールするとデフォルトでSELinuxが有効(Enfocing)になっていました。GUIインストーラ作業時にDisabledにするか、あるいは/etc/selinux/configでSELINUX=disabledにしておけばいいのですが、そのま…

JNIでHelloWorld!

JNIはJavaプログラムからC/C++で記述されたライブラリのAPIを呼び出すためのインタフェースです。ずいぶん昔からある仕様ですが、あまりなじみが無いので触ってみた。イメージ的にはELF形式のjavaプログラムから共有ライブラリに対してdlopenで動的にリンク…

mysqldにおけるスロークエリログ判定実装

スロークエリログはどのように計測され、出力されているのかをまとめてみました。 測定方法 THDクラスのset_time関数で計測開始、end_time関数で計測終了。 計測開始ポイント mysqld --bootstrapを使用している場合はmysql_parse関数の直前 ネットワーク経由…

Tritonn: configure --enable-abortをやめて自動判別にすべきか

すごく細かい話なんですが。というかここ最近ずっとBlogを書いていなかったけれども、また書きたくなってきた。しかも細かい話。備忘録的な。Senna 1.1.4では、 "--enable-abort"でビルドされたらsen_index_set_abort_callbackがlibsennaに存在する そうでな…

configure --enable-abort

senna 1.1.4で取り込まれたokuさんによるKILLパッチについてのメモ。 configure.ac # abort AC_MSG_CHECKING([whether enable abort]) AC_ARG_ENABLE(abort, [AC_HELP_STRING([--enable-abort], [enable query abortion. [default=no]])], , [enable_abort="…

tritonn-1.0.12 残タスク

tritonn-1.0.11のquick fix版として1.0.11aを出したかったのですが、日が経ってしまったので、いくつか追加で修正等を行って1.0.12としてリリースする予定です。完了したもの sql_yacc.yyのshift/reduce数を調整し、bisonエラー回避 USING句を2重に使用した…

Sun Tech Days 2008 in Tokyoのライトニングトークにでます

明日から始まる Sun Tech Days 2008 in Tokyoの2日目(12/3)、OSSコミュニティ枠のライトニングトークに出させていただくことになりました。 http://jp.sun.com/company/events/techdays/day2detail.html#2S2 MySQL系イベントというよりももう少し一般よりの…

バージョン文字列からバージョンID番号を作る方法

MySQLのconfigure.inが参考になる。 # Set all version vars based on $VERSION. How do we do this more elegant ? # Remember that regexps needs to quote [ and ] since this is run through m4 # We take some made up examples # # VERSION 5.1.40sp1-…

Tritonn 1.0.11 リリース

間隙を縫うようにソースだけリリースしました。 現在、Tritonn 1.0.11はソースコード&パッチのみの配布となっています。バイナリ配布はこの後段階的に行っていく予定です。アップデート 対応MySQLのバージョンをver5.0.67にアップデートしました バグ修正 2i…

Tritonnのメモリ使用量解説

ドキュメントを追加しました。 http://qwik.jp/tritonn/reference.html#40500899443a755bcd5eb474491ad596 32bitOS 論理空間枯渇エラーに遭遇する人が少なくなれば良いなと思うこのごろです。

仮想メモリと物理メモリとスワップ領域

あとでまた説明するとき用のメモ。 全プロセスの仮想メモリの合計値を v_size とする サーバに搭載された物理メモリの大きさを p_size とする スワップ領域の大きさを s_size とする (kernelのメモリ使用量は無視)このとき 状態1: v_size p_size p_size + s_…

MySQL Connector/C++ previewリリース

これまでC++用クライアントAPIとしてはMySQL++というC APIのwrapper型ドライバがありましたが、新たにJDBC 3.0 APIを模倣したC++用クライアントAPIがリリースされるようになるようです。(今日のところはdevelopment preview release)Connector/C++の現在の…

Drizzle Lightweight SQL Database for Cloud and Web

まだ詳細は良く分かっていませんが、Brian Akerが中心となってMySQLのソースからforkしたプロダクト"Drizzle"を立ち上げたようです。MontyのBlogで紹介されていたのを見て気づきました。 http://monty-says.blogspot.com/2008/07/what-if.html Brian自身も記…

MySQLデータベース構築バイブル

共著として執筆に参加させていただいた『MySQLデータベース構築バイブル』が7/19に発売になります。MySQLデータベース構築バイブル作者: 志村和彦,松信嘉範,池田徹郎出版社/メーカー: 毎日コミュニケーションズ発売日: 2008/07/19メディア: 単行本(ソフトカ…

初めてEmacs Lispを自分で書いてみた

めっちゃtiny codeですが。。 (defun myisam2mosql () "replacing myisam macro/symbol name to mosql's one" (interactive) (beginning-of-buffer) (replace-string "myisam" "mosql") (beginning-of-buffer) (replace-string "mi_" "mo_") (beginning-of-b…

Wassrはじめました

Wassr(ワッサー)はじめてみました。idは例によってmirです。見かけたらよろしくおねがいしまする。 http://wassr.jp/user/mir

MoSQL ストレージエンジンの開発をはじめました

MySQL日本ユーザ会日本MySQLユーザ会から許可をいただいて"MoSQL"の名前でストレージエンジン開発を始めました。現行のTritonn(MySQL本体+patch+libsenna+libmecab、MyISAM + Senna Index APIベース)をPluggable Storage Engine化したものを目指します。リリ…

Pluggable Storage Engineでは-fno-rttiをつける

いまSkeleton Engineみたいなのを0から独自に作っているのですが、嵌ったのでメモ。C++にはRTTI(Run Time Type Information、実行時型情報)という便利な機能があるそうなのですが、これを有効(G++ではデフォルト)にしたままビルドすると、Pluggable Storage …

Pluggable Storage Engineの --with-mysql の実装

Brianが書いたコードはこんな感じだったのだけど、 AC_MSG_CHECKING(for mysql source code) AC_ARG_WITH(mysql, [[ --with-mysql[=mysql src directory] Source requir to build engine.]], [ if test -d "$withval/sql"; then MYSQL_SRC="$i/mysql_config"…

Yet Another Skeleton Engine を作ってみた (YASE 0.1リリース)

Brianが作った"Skeleton Storage Engine"というのが既に存在するので車輪の再発明なのですが、勉強がてらスクラッチで作ってみました。Yet Another hogehoge ってのに何となく憧れがあっただけだったりもするのですがw一応、BrianのSkeleton Engineよりもコ…

Senna APIまとめ

QL APIとDB APIについて。(今後追加改変が行われる可能性もあります) QL API senna.hにてシグネチャ定義。 関数名 説明 sen_db_create データベースを作成する sen_db_open データベースを開く sen_db_close データベースを閉じる sen_ctx_open 同一プロセ…

HTTP Proxyサーバの立て方

Apacheを既にどこかで使っている場合、httpd.confを弄るだけでforward proxyができたのでメモ。Apacheが入っていないけどインストールしてもOKならyumとかでいれればよろし。 sudo yum -y install httpdhttpd.confを開き、コメントアウトを外して以下を有効…

MySQL Cluster 性能検証記事(Diskベース)

今月のDB Magazineに同僚が書いたMySQL Clusterの記事が載っています。DB Magazine (マガジン) 2008年 08月号 [雑誌]出版社/メーカー: 翔泳社発売日: 2008/06/24メディア: 雑誌この商品を含むブログ (3件) を見るMySQL 5.1で新たに導入されたDiskベースのMyS…

Tritonn 1.0.10リリース(Windows版含む)

Tritonn 1.0.10をリリースしましたよ!Windows版(win32,winx64どっちも)あるよ。詳しくはこちら→ http://qwik.jp/tritonn/

今日から始めるSenna QL API

Senna QL API(Senna Query Language API)を使ったプログラムを書くための下調べとして、簡単なサンプルプログラムを書いてみました。以下、ソースとコメントをあわせてご覧下さい。SennaQLを文字列そのまま投げる感じが伺えると思います。 #include <stdio.h> #includ</stdio.h>…

Senna rev827で追加されたsen_lex_set_mecab_args関数

Senna開発者の方がさっそくmecab_new関数呼び出し時の引数を事前に指定するためのAPIを作ってくださいました!Senna内部でのMeCabの初期化はlib/lex.cにてSOLE_MECAB_CONFIRMマクロを通じて行われていました。以前は"-Owakati"が固定で指定されていたのです…

Senna 新API incoming

今、senna-devメーリングリストで話題の新APIですが、そしてもしかするとmecab情報を指定可能なAPIも作られるとか。。。そうなるとTritonn tarball/zip版バイナリを作る際に見つかった「prefix以外の場所にインストールした場合にmecab辞書が見つからなくな…