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

何かするスクリプト

なにかするスクリプトのひな形 XXXX.NNNNNNみたいなファイルの処理で使う。 #!/usr/bin/perl # # Usage: # # Remark: Don't use "RESET MASTER" use warnings; use strict; use Sys::Syslog; my $hist = '/usr/local/mysql/data/hist.dat'; # Save the file …

keepalived ソースコードリーディング 1

使うならソースくらい読まないと。今回の目標は「MISC_CHECKがどのように行われるか(timeout関連をきちっと知るため)」 ダウンロード ここからダウンロードする。 構造 ソースを展開して構造をみる。 $ pwd /usr/local/src/keepalived-1.2.9 $ du 0 ./bin 8 …

LVS+keepalived の設定 4

備忘録として、DSRによるLVSとkeepalivedの設定を段階的に書く。前提は以下とする。 LVSの転送方式はDSR ネットワークは単一セグメントで超簡単なもの OSはCentOS6.5 今回はMySQLスレーブの死活監視+管理について。システム構成はLVS+keepalivedの設定 3を…

LVS+keepalived の設定 3

備忘録として、DSRによるLVSとkeepalivedの設定を段階的に書く。前提は以下とする。 LVSの転送方式はDSR ネットワークは単一セグメントで超簡単なもの OSはCentOS6.5 今回はkeepalivedを冗長化(2台構成)にする。 ネットワーク構成 今回は以下の構成。 LVS1…

LVS+keepalived の設定 2

備忘録として、DSRによるLVSとkeepalivedの設定を段階的に書く。前提は以下とする。 LVSの転送方式はDSR ネットワークは単一セグメントで超簡単なもの OSはCentOS6.5 今回はkeepalivedを導入する。 ネットワーク構成 今回は前回と同じ、以下の構成。 LVSはet…

LVS+keepalived の設定 1

備忘録として、DSRによるLVSとkeepalivedの設定を段階的に書く。 前提は以下のとおり: LVSの転送方式はDSR ネットワークは単一セグメントで超簡単なもの OSはCentOS6.5 今回はDSRのLVSでMySQL:Slaveの負荷分散の練習。 以降の予定は: keepalived導入 LVS+k…

erlang #2 gen_serverで素数リストを求める

erlang #1 素数リストを求めるでつくったサーバを"Erlang World gen_server"を参考にしてgen_server化してみる。 init()の使い方がイマイチわからないまま。 # cat gprime.erl -module(gprime). -behaviour(gen_server). -export([start/0]). -export([get/1…

erlang #1 素数リストを求める

急に思い立ってerlangで素数リストを求めるプログラムを書いた。 エラトステネスのふるい まずは基本的なプログラミング。関数prime()は再帰的にsqrt(N)回実行する。 # cat prime1.erl -module(prime1). -export([getl/1, checkp/1]). %% Nまでの素数リスト…

MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較用スクリプト群

こちらの実験を手元で再試行できるように、スクリプト群と実験方法を示す。 ここで示した例以外にも、こちらでMariaDB vs MysSQLのオプティマイザ機能比較があるので、各自試してみるとよいと思う。 https://mariadb.com/kb/en/optimizer-switch/ スクリプト…

長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較

https://mariadb.com/kb/en/optimizer-switch/にあるように、MariaDBのオプティマイザはかなり改良されている。 では、MariaDBのオプティマイザ/エクゼキュータはどの程度優秀か、4つのSELECT文の実行を通してMySQLと(ついでにPostgreSQLと)比較してみる。 …

MySQLのCOMMIT時におけるfsyncの実行タイミング

バージョン5.6で"innodb_flush_log_at_trx_commit=1"の挙動が変わった的な話があったので、こっちで軽く調べ、さらに追加調査したので結果を書く。 目的と結論 目的 簡単に書くと、5.6でバイナリログのグループコミットが入ってREDOログとバイナリログの書込…

長年の議論に終止符 -- MySQLとMariaDBの違い一覧

(2014.12.3追記:このblogの内容は、以下の書籍にも反映させた。) SQLレベルの差異 MariaDB5.5とMySQL5.5ではSQLレベルでの違いはほとんどなかった。autoincrementの最大値の扱いくらい。 ただし、MariaDB10.0でREGEXPがマルチバイト対応になったので、アプ…

PostgreSQL 9.3リリース記念  FDWで本当のデッドロックにはまってみよう

2013年9月9日、いきなりPostgreSQL9.3がリリースされた。 それを記念してFDWを使って本当のデッドロック状態をつくって遊んでみようと思う。 準備 サーバを2台準備する。サーバはtest1とtest2とする。

MySQL5.6のordered_commit()とHA_IGNORE_DURABILITYとinnodb_flush_log_at_trx_commit

『MySQL 5.6 ではinnodb_flush_log_at_trx_commitの意味が MySQL 5.5 と違う』で、論理飛躍*1や間違い*2があったので、結論が正しいかどうかチェックしてみた。 なお、flushというかfsync()の呼び出しについて、および上記の記事に対する結論はこちらに書い…

PostgreSQLの共有バッファ(shared_buffer)とMySQLのバッファプール(buffer_pool)のメカニズム比較

PostgreSQLとMySQLのバッファについて。 PostgreSQLのバッファマネージャ 詳細はこちらをみて頂くとして、PostgreSQLのバッファマネージャは、2005年リリースのバージョン8.1で大幅に変わった。以下の表をみて頂くとわかるようにページ置換アルゴリズム…

"Introduction Of Reliable Distributed Programming" Review

3年ほど前に(後述するライブラリを目的に)読んだ"Introduction Of Reliable Distributed Programming"を、復習も兼ねてレビュー。 注意:すでに2nd Edition "Introduction to Reliable and Secure Distributed Programming" が出ているが、このレビューは1st…