ts4

10.1K posts

ts4

ts4

@ts4th

わりとMySQLでごはんたべてます。すきなものはResource Monitoring と disk i/o 公開したスライドはこちら https://t.co/G3k9JWUFiH https://t.co/DB6UZQtE2L

Entrou em Şubat 2012
222 Seguindo485 Seguidores
ts4
ts4@ts4th·
@sunbains @nippondanji スピンロックから少し話題が逸れてしまいますが、私はスピンロックが問題になるような状況であれば、スピンロックのパラメータ以前に、innodb_thread_concurrencyなどで同時実行スレッド数を調整可能になっていることがより良い設計であると認識しています。
日本語
0
0
0
93
Sunny Bains @TiDB
Sunny Bains @TiDB@sunbains·
It will impact all spin locks in theory, especially ones that hold it long enough where the OS scheduler interrupts the holder. The problematics part is long enough, I think InnoDB doesn’t use pure spin locks but spins before waiting and is probably less impacted by this change. Even without this change if a spin lock holder does a syscall and is blocked or preempted it will cause a similar problem. The performance collapse happens because of a scenario called Lock-Holder Preemption: 1.Postgres Process A acquires a spinlock to update a shared memory area. 2.The Linux 7.0 Kernel decides Process A has used its time slice and "preempts" it (pauses it) while it is still holding that lock. 3.Postgres Processes B, C, and D all try to get that same lock. Since Process A is paused and can't release it, the other processes just sit there "spinning" and wasting CPU cycles. 4.Because there are many cores (e.g., 96 on a Graviton4), you end up with dozens of CPUs doing 100% "useless" work waiting for a paused process to be woken back up by the kernel. The real underlying problem is due to cache coherency if they are spinning and checking the same variable. There are solutions to son on local variables Herlihy discusses them in his book.
English
1
6
16
534
Mikiya Okuno
Mikiya Okuno@nippondanji·
MySQL/InnoDBでは30回ぐらいスピンして、それでロックが取れたらラッキー、取れなかったら諦めてOSのロックを使うという2段階の実装になってるんだけど、どうもポスグレのスピンロックは全然思想が違うらしい。
Mikiya Okuno@nippondanji

MySQLも普通にスピンロック使ってるし何でPGだけ騒がれてるんだろうと思ったけど、PGの方がかなりアグレッシブにスピンしてるから問題が大きいってことかな。

日本語
2
56
225
46.1K
ts4
ts4@ts4th·
むかしむかし labs.gree.jp/blog/2015/12/1… でInnoDBのスピンロックに言及し labs.gree.jp/blog/2018/07/1… で、スピンロックやmutexの前段階でスレッドの並列度を調整する仕組みがあることに言及しました。 MySQLあるいはMySQL互換を謳うものは、innodb_thread_concurrencyやthread pool、Aurora MySQL独自実装のロックマネージャーといったものがあれば、スピンロックより前の段階で並列度はある程度調整できると考えています。
日本語
0
5
12
773
ts4
ts4@ts4th·
@mita2 たいせつなことだとおもったのでかきました!
日本語
0
0
1
58
ts4
ts4@ts4th·
@_awache ちょっとだけマジレスすると、「チョットワカル Row-Based Replication」シリーズは読んでたら途中でしんどくなるかもしれないので、気になった記事を読んでもらえればよいですよ
日本語
1
0
1
28
ts4
ts4@ts4th·
@_awache だからたまにはわたしのblogも読んでNE!!!
日本語
1
0
1
21
あわっち
あわっち@_awache·
@ts4th mutex や OS 待機はコストが高いので、まず軽く spin で様子を見て、すぐ取れるならそのまま取得するために spin lock を使っている と理解しました (雑w)
日本語
1
0
0
42
ts4
ts4@ts4th·
今回の資料の中で、@wrcsus4 さんの db tech showcaseの資料や、@fujii_masao さんのインタビュー記事などを紹介させていただきました。
日本語
0
0
3
139
ts4
ts4@ts4th·
書きました。 今回、「データベースを異なる環境や互換性のあるマネージドサービスなどに移行する際、どういうことを考えてるか、幅広い層に向けて話してください」的なことを言われて書いたので、わりとゆるふわな内容かと思います。 labs.gree.jp/blog/2026/03/2…
日本語
1
4
8
935
ts4
ts4@ts4th·
@yoku0825 おめでとうございます!
日本語
1
0
1
6.7K
yoku0825
yoku0825@yoku0825·
"さくらのクラウドについて、すべての技術要件を満たしたことを確認できたので、2026年3月27日以降本番環境の提供が可能となります。" ガバメントクラウド|デジタル庁 digital.go.jp/policies/gov_c…
日本語
1
109
483
186.7K
ts4
ts4@ts4th·
@kazeburo おめでとうございます!
日本語
1
0
1
497
Masahiro Nagano / 長野雅広
さくらインターネットのさくらのクラウドが、ガバメントクラウドのすべての技術要件を満たし、正式にサービスの提供が可能となりました。 2023年11月に仮認定を頂いてから本当に多くの皆様に協力いただきました。ありがとうございます。 これはスタートでもあり、お客様の課題を解決し、信頼性の高いサービス提供に今後も取り組んで参ります。よろしくお願いします。 digital.go.jp/policies/gov_c…
Masahiro Nagano / 長野雅広 tweet media
日本語
2
122
535
38.5K
ts4
ts4@ts4th·
@kuwa_tw ここは対戦型SNSらしいので、、、
日本語
1
0
1
61
akuwano
akuwano@kuwa_tw·
@ts4th こわいお、、、
日本語
1
0
0
135
akuwano
akuwano@kuwa_tw·
なんかやべえボタンきてる
akuwano tweet media
日本語
1
0
4
1.6K
ts4
ts4@ts4th·
祝日なのでvscodeでMySQLのソースコードを眺めていたら、そういや 8.3.0 から C++20 になってたんだなと思い出したときの顔をしている。 github.com/mysql/mysql-se…
日本語
0
0
0
113
ts4
ts4@ts4th·
現代においてはまずMacか何かでMySQLをビルドして vscode で IntelliSense 使える状態にしつつ、vscode で Codex IDE extension いれてプロンプトで訊きながら読んでいくと、MySQLのソースコードリーディングがとっつきやすくなるかもしれませんね(今更感 「innodb の sync array について解説してください。また、それらを実装しているソースコードを提示してください。」とか「innodb_sync_array_size と innodb_thread_concurrency の違いを並べて整理してください」とか日本語で訊きつつ、該当するソースコードの箇所にジャンプしたりできますし。MySQLは一度ビルドしないとヘッダファイルが揃わないですが、ビルドすればIntelliSense利くからコード読みやすいですしね。
:tom__bo:@tom__bo

パフォーマンス関連の話題を始めとして、困りがちな内部挙動の話はsejima(@ts4th)さんのブログに書かれている..! labs.gree.jp/blog/author/se… #MySQLアンカンファレンス

日本語
0
0
2
275
ts4 retweetou
Findy メディア編集部
Findy メディア編集部@findy_englab·
トランザクションを「本気で使いこなす」ための必須知識 PostgreSQLのコミッターを務める、@fujii_masao さんに、「なんとなく」使いがちなトランザクションやロックの仕組みについて、アプリ開発者が押さえておくべき知識を詳しく解説していただきました! findy-code.io/media/articles…
日本語
0
14
27
3.3K
ts4
ts4@ts4th·
ニッポンのサラリーマンにとって、平日のこの時間は参加のハードル高いですぞ…! 午前2時って、 フミキリに望遠鏡を担いで行くような時間じゃないですか…!! blogs.oracle.com/mysql-jp/%e7%a…
日本語
0
3
9
708
ts4 retweetou
YAMAMOTO Masaya
YAMAMOTO Masaya@pandax381·
こちらの件で拙著『ゼロからのTCP/IPプロトコルスタック自作入門』にもご注目いただいただようで、Amazonでのランキングが急上昇してました!ありがとうございます。 amazon.co.jp/dp/4839981248/ 手前味噌で恐縮ですが、詳解TCP/IPはプロトコルスタック自作後に読んだ方が解像度が格段に上がりますよ。
YAMAMOTO Masaya tweet media
YAMAMOTO Masaya@pandax381

もう新品を入手するのが困難な『詳解TCP/IP』シリーズ。その中でも「Vol.2 実装」は4.4BSD-LiteのTCP/IPスタック全コード(約15,000行)を詳細に解説している良書ですが電子版も存在しません。なぜか手元にデッドストックが100冊近くあるので、大学のサークルなどで需要があれば差し上げます。

日本語
1
19
126
11.4K