tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

Re: [WIP] Effective storage of duplicates in B-tree index. のメーリスを眺めてみた

https://www.postgresql.org/message-id/flat/56AB6D30.2040900%40postgrespro.ru#80cf7838f6285d5eb71475ac606fa5a7 からパフォーマンス影響に関してどれくらい言及されるたのかを中心に眺めてみた メモそのままです(番号に意味はない) 感想 ここに出てくる…

goland on ubuntuでctrl + [ がescとして認識されないとき

.ideavimrcに設定を書いても効かなくて困った 結局設定したshortcut key自体がvim (ideavim)のものとして使われていなかった。 ショートカットをどのpluginもしくはnativeの設定に対して使うか自体を設定する必要がある。 結論 Settings > Editor > Vim Emul…

簡単なcreate table文をパースする

簡単なcreate table文をパースする 5.7のcreate table文でparserを作る https://dev.mysql.com/doc/refman/5.7/en/create-table.html syntax 原文 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_o…

sysbenchでMySQLのベンチマークをしていく

sysbenchでMySQLのパフォーマンス比較をして結果を集計する作業を自動で継続的にやるためのツールを作ってる。 ある程度大枠はできたので、より使いやすい方法を模索中。GUIは面倒だから作りたくない、、、、 まずはMySQL 8.0以上のみを対象にすることにして…

コンパイラ入門実践 その1

最近調子が良いけど、やはり定期的なアウトプットをしたほうが良さそう。 ということで現状を書いておく。コンパイラ学習の調子は良くないw 現状 Computer Science Library9のコンパイラ入門を読みつつbison, flexで簡単な言語のコンパイラを作ってみている…

MySQLでcustom.cnfが指定できない

docker上のmysql環境が作れない、、、 customなmy.cnfを読ませたくて、 /path/to/test/1/custom.cnf を用意して、それを/etc/mysql/conf.dにmountさせようとするも失敗、、、 docker run --name mysql80 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:…

MySQLをgdbでステップ実行できる環境がほしい

実行中のものにattachすることで関数くらいはわかるものの、その時の状態をcuiだけで確認するのは結構厳しい。 dockerでdebug-buildしたものにgdbserver経由でステップ実行する環境を作れそうな気がするので奮闘している。 github.com これそのままでは動か…

MySQLのクエリパーサー部分を抜き出したい

yaccファイルはあるんだけど、lexどうなっているのかわからなくて困っていた。 どうも字句解析は自前でやっている様子。 stop slave until ...の挙動を調べたいこともあって、step実行できる環境を作ることにした。 https://www.cnblogs.com/nocode/archive/…

組んだPCは実験用Centosサーバにする予定

bootableusbが起動しない(途中で落ちる)問題 メモリスロットの指し方が悪かったのか、メモリを1枚刺しにするとインストールが成功した。 すでにubuntu desktopをインストール済みのSSDで起動するとメモリを4枚刺しでも問題なく全て認識され、メモリを使って…

orchestrator調査

MySQLのHA構成管理ツールであるorchestrator調べてる master - slave構成をサンプルで作っていじってみている。 docsディレクトリにドキュメントが多くて良い。 github.com 日本語記事に従ってサクッと作るのに良かった qiita.com

flex & bisonを動かしてみた

flex & bisonのsample 1-5を写経して動かしてみた。 <exp> ::= <factor> | <exp> + <factor> <factor> ::= NUMBER | <factor> * NUMBER これで動くのよくわかってなくて、昔やった感じだと()が入っちゃってるけど、↓ <expression> ::= <term> [ ('+'|'-') <term> ]* <term> ::= <factor> [ ('*'|'/') <factor> ]* <factor> ::= <number> | '(' <expression> ')' こういうやつじゃな</expression></number></factor></factor></factor></term></term></term></expression></factor></factor></factor></exp></factor></exp>…

言語実装パターン読んだ

言語実装パターン再帰下降構文解析のパターン3までを読んだ。 この本だと再帰的下向き構文解析。LL(k)で字句解析、構文解析するのが基本な気がするのだけれどLL(1)の説明が多いのは基礎的な仕組みの説明を死体からなのだろうか? 手を動かしてみないとよくわ…

コンパイラ学習その3, 本の続き

コンパイラの構成と最適化を読み進めた。 疲れてきてるのかLL文法の定義が全然頭に入ってこなくて今日はここまで。 "コンパイラの構成と最適化"では文法として以下の3つとその応用があればそれを説明している。 それぞれの解析手法として演算子順位解析手法…

コンパイラ学習続き

Ruiさんのコンパイラ本作成中のページの現時点部分はいくつか実装し、内容はわかったので、circle ciでテストを回すようにしたりしていた。circle ci使ったことないけど、結構便利(雑)。 今後の方針 コンパイラの学習をどうするのか決めた. まずはC++でCの言…

なんかコンパイラ作ってみたくなってしまった

部分的にで良いので、コンパイラを作って見ようと思っている。 忘年会で久しぶりに会った大学の同期が業務でコンパイラの最適化をやり始めたらしく、一緒になにか作ってみようということになった。 どれくらいやるかわからないけど、CコンパイラをC++で書く…

一回途絶えたらすっかり週間がなくなっていた

完全に書くのを忘れていた。 書いていく。 - performance_schemaのinstrumentsを分類ごとに有効化無効化した場合の調査 - query_rewriteプラグイン使ってみる などしていた。 それぞれ本ブログに書くのでそっちで。

詳解MySQL5.7, 3章読んだ

当然今日1時間の分ではないが、3章optimizerを読み終えた。 一通り読んだだけで、optimizer_traceの実験や3.5.4 サブクエリの実行計画の改善あたりはもう少し手を動かして見る必要がある。 optimizer_traceも実行計画が狂う件一通り追ったことはあるけど、結…

MySQLのプロトコル紹介の資料作り

作った。 結構怪しいところがあるけど、社内で発表の機会があるので、いずれどこかで。 まだステートもって処理できてないし、年内には終わらせないといい加減時間かけすぎてる。。。 プロジェクトは並行させずに短期間でどこまで完成度上げられるかが勝負だ…

詳解MySQL5.7 p48まで

疑問 repli_semi_syncの開始にmasterの再起動が必要ではないか? (p40あたり) dynamicに変更可能 https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_rpl_semi_sync_master_enabled innodb_support_xa https://dev.mysql.com/doc…

詳解MySQL5.7 読書メモ

2. レプリケーション 調査 master thread確認 コードから? mysqldumpの--master-data=2及び他のオプションについて https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html#option_mysqldump_master-data default: 1 1: change master to ...ステートメン…

Transactional Information Systems続き

3.4 この節での我々のゴールはscheduleの正しさの判断(correctness criteria)を考案することである。 すべてのschedule, Sに対して、そうした判断σを以下のように考える。 このとき0, 1はfalse, trueをそれぞれ意味している。 従って、正しいスケジュール(co…

Transactional Information Systems続き(chap 3.3)

3.3 Syntax of Histories and Schedules この節ではschedulerがオンラインで正しいスケジューリングをどう判断するかを議論するにあたって、スケジュールの記法を明確にする。 P65下から9行目, Here we try to respect ... のrespectが訳せない。 まず、トラ…

Transactional 続き

細かくまとめていかないとまずい 3.1 Goal and Overview この章ではトランザクションのページモデルにおいて並行処理のcorrectnessについて議論する。 This study will reveal a variety of aspects: techniques for proving concurrency control algorithms…

MQRのベンチマークについて考えてた

パフォーマンス計測・改善を繰り返している。 効果が大きいけど検討が必要な部分をどうするかが問題 pcapレベルの話としてスナップショットの長さを固定、queryが取れる程度にする ether frame ~ tcpのpayload抜きで80byte前後、MySQL header (5byte) + クエ…

Transactional Information Systems再開

以前の続き、Chapter 2から読み始める。 今度の勉強会までにChapter5まで終わらないと行けないことを考えると一日5ページすすめることが必須だった、、、 p65まで読み終わったけど、p66のdefinition 3.1で詰まって厳しい。 このへんの記号と意味を調べ直さな…

CMU database続き

3の36分くらいまで。 先生テンション上がってきて早口過ぎてつらい。字幕もついてこないし、同じこと何度も言ってないでゆっくり丁寧に言ってほしいw どうにも時間がないので、1講義終わったらまとめ書く

CMU database講義その2とMySQLパケット解析の進捗

CMU講義 RDBにアクセスするときの基本、SQLの解説、殆どのRDB製品はANSI SQL92を基本としているけど、製品ごとに方言や仕様に沿ってない部分がかなりある。 ANSI SQLは2016まで来ているけど、これらに従っている製品は殆ど無いとのこと。 集計関数、window関…

CMUの講義見ていく

CMUのデータベースの講義(15-445/15-645, Fall 2018)を見ることにした。 Andy Pavlo Assistant Professor(助教)による授業でDatabaseの基本的な構成に関して説明し、後半はC++で実装もする様子。 今回は1回と2回を見てみた。2回目は目も取らずに聞いたの失敗…

そもそも高負荷のMySQLでパケットを完全にキャプチャできるのか?

tcpdumpでMySQLのserevr/client間のパケットをとろうとしてもdropped by kernelがちょいちょい出てしまう。 現状いろいろ工夫してもdropするときはdropするという状態で困っているが、ここまでやったことを整理しておく。 不要な名前解決をやめる -n, -nnで…

ステートを持つとしてどうパースするのか

ステートを持って、packetをパースすることにした。 server greetingを受けてるまでのip:portの組からのパケットは全部破棄するとして、ステートマシンは独自に作らないとならない。 実際MySQL serverがやるようにパースすればよいが、高負荷環境ではtcpdump…