# 失敗から学ぶRDBの正しい歩き方 - https://amzn.to/4e0CqfH
# 失敗から学ぶRDBの正しい歩き方 - https://amzn.to/4e0CqfH
こんにちは。スマートバンクのサーバーサイドエンジニアをやっておりますid:moznionです。 すっかり秋めいてきましたね。秋といえばMySQL*1、ということで今回は先日解消した「MySQLのロックに起因するブロックタイムアウト」のトラブルシューティングついて記していきたいと思います。 事の発端 ある時を境にSentryに ActiveRecord::LockWaitTimeout というエラーがしばしば報告されるようになっていました。 SentryにActiveRecord::LockWaitTimeoutが上がってきている様子 Mysql2::Error::TimeoutError: Lock wait timeout exceeded という文言から、MySQL上でロックを取っている他のクエリにブロックされ、そのブロックが長時間に渡ったため自クエリがタイムアウトしてabortしてし
AI在庫管理の開発チームでバックエンドエンジニアをしている沖です。今回は、AI在庫管理の医薬品検索において、MySQLの全文検索機能を使った話を紹介しようと思います。 この記事は秋の技術特集 2024の 8 記事目です。 今までの医薬品検索では満足できないユーザーがいた なぜMySQLの全文検索機能を採用したのか 全文検索機能を導入する 全文検索インデックスを付与したテーブルを作成する パーサー 照合順序と正規化 全文検索インデックスを使用して検索する データを最適な状態に保つために おわりに 今までの医薬品検索では満足できないユーザーがいた AI在庫管理には、医薬品の在庫一覧画面など、医薬品名で絞り込む画面がたくさんあります。この絞り込み機能を実現するために、これまではSQLのLIKE検索を利用していました。 LIKE検索は、使い慣れたSQLを用いて部分一致検索を実現できる便利な方法です
あなたのパフォーマンスを倍にする Frontend Ops はいかがですか.md あなたのプロジェクトに Frontend Ops を。 [経営者の方へ] ウェブサイトが遅くなっていませんか?機能追加が遅くなっていませんか? 私 @mizchi は Node.js とフロントエンドのエキスパートです。もし私を知らなければ、御社のフロントエンド担当に mizchi とは誰か聞いてみてください。それが一番早いと思います。 Frontend Ops の専門家として御社のプロダクトの改善にご協力します。 Frontend Ops は、ウェブサイトのロード時間を改善したり、開発者の基盤に手を入れることで一日に何度機能を追加できるかという指標に貢献するロールです。その結果としてUXを改善し、ビジネスを前進させます。 成果報酬で、費用はざっくり 100万円*達成率 となります。(詳細は後述) 弁護士作成
LinkedInの記事をめぐっているうちに見つけた、マイクロアーキテクチャに関する面白い事例。 CPUのマイクロアーキテクチャのさらに奥深くまで理解が必要な問題を解決するために、どのようなツールをつかってどのように解決したかの話。 netflixtechblog.com Netflix内でのワークロード最適化のため、AWSのインスタンスサイズを移行(16 vCPUから48 vCPU)し、CPUがボトルネックとなるワークロードの性能向上を図った。 このインスタンスの移行により、性能をほぼ直線的に増加させることを想定し、スループットがおよそ3倍になると予想した。 しかし、結果としてこの移行で想定する性能は達成できなかった。 https://netflixtechblog.com/seeing-through-hardware-counters-a-journey-to-threefold-pe
寝ても寝ても眠い。結果、日中の眠気に耐えられず、仕事のパフォーマンスが下がってしまう……。そんな悩みを抱えている人も少なくないでしょう。 皆さんはちゃんと「休めて」いますか? スキルアップやキャリアアップに励むなかで、ついおざなりにしがちなのが「休むこと」です。「20代の努力が30代のキャリアを作る!」とはよく言われるものの、働き過ぎて体を壊してしまったら元も子もありません。 「自分に合った休み方を模索したり、休みの捉え方を考え直したりすることで働き方がガラッと変わります」 そう語るのは、20年にわたり休み方を研究し続けてきた片野秀樹さん。片野さんは日本のビジネスパーソンの休みに対するリテラシーの低さに警鐘を鳴らしながら、「正しい休みの取り方」を発信してきました。そんな仕事の集大成となる著書『休養学:あなたを疲れから救う』(東洋経済新報社)では、「疲れたらコーヒーを飲む」「甘いもので自分に
データベースアップグレード後の性能劣化、イヤですよね。 去る2023年某日、弊社ではAmazon Aurora MySQL 互換エディション 2 (MySQL 5.7 互換) から Aurora MySQL 互換エディション 3 (MySQL 8.0 互換) にアップグレードしました。当時の背景やアップグレードに関する知見は以下の記事をぜひ読んでみてください。 blog.smartbank.co.jp ソフトウェアバージョンアップをするとき、旧バージョンが抱えていた問題の解決などの恩恵を我々は期待します。しかし時には予期せぬデグレーションに遭遇することもあります。我々のMySQL 8.0へのアップグレード前後においてもいくつかの問題に遭遇しました。 本記事ではそんな問題の一つ、MySQL 8.0のオプティマイザが選択したセミジョイン最適化が性能劣化を引き起こした事例と解決方法について紹介し
「Developers Summit 2024 Summer」での発表資料です。
アリスは驚きと興奮を抑えきれませんでした。彼女はすぐに新しいコードを試し、その速さに目を見張りました。今まで数時間かかっていた計算が、ほんの数分で終わったのです。 翌日、アリスはこの発見を友人たちに話しました。友人たちも同じように魔法の本を使い、彼らのコードを高速化しました。こうして、プログラミング王国全体で「JITの魔法の本」が広まりました。 やがて、アリスは王国のプログラミング大会で優勝し、JITの魔法の本の力をさらに広めることになりました。彼女は「JITの守護者」として称えられ、プログラミング王国はかつてない繁栄を迎えました。 アリスはいつも心に誓いました。どんなに強力なツールも、それを使う人々の努力と情熱があってこそ、本当の力を発揮するのだと。彼女の言葉は次世代のプログラマーたちに伝わり、JITの魔法の本は永遠に受け継がれていくのでした。 前回のあらすじ。 Python count
こんにちは!DBREの福間(fkm_y)です。先月、弊社でデータベースの技術顧問をして頂いてる三谷(mita2)さんに開発本部向けの「MySQL SQLチューニング」勉強会を実施していただきました。 今回はMySQLの得意不得意なことの説明やSQLチューニングの流れ、具体的な事例を元にした対応例、また最近話題のHTAPな製品も紹介していただきとても参考になったのでポイントをおさえてレポートをお伝えします! 開催背景 本編 MySQL の得意なこと、苦手なこと データベースのチューニング手段と特徴 SQLチューニングの流れ インデックス SQLチューニング例 インデックスフルスキャンとカバーリングインデックス ソート まとめ 当日の資料 さいごに 過去開催されたデータベース勉強会レポート 開催背景 弊社では三谷さんによるデータベース勉強会を定期的に開催しています。数年前にも同じテーマで勉強会
SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBのCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基本的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre
はじめに こんにちは、令和トラベルでバックエンドエンジニアをしている飯沼です。 MySQLでは、UUID (v4)などのランダム性の高いIDをプライマリキーに設定すると、パフォーマンスが低下すると言われています。私自身もこの問題については認識しておりアンチパターンとして避けて来ましたが、イマイチ理由を理解できず何度も調べていたので自分の理解を整理しました。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 UUIDをプライマリキーにするユースケース そもそもUUIDをプライマリキーにするユースケースはどのようなものがあるのでしょうか? いくつかの観点から考えてみます。 パフォーマンス観点 大量の同時書き込みが発生するような状況でauto incrementを利用してIDを発
東京・乃木坂から、「真面目に楽しく」をキーワードにした教育でビジネスパーソンを支援する株式会社ヒップスターゲートの主催イベントに、組織マネジメントの専門家で『遊ばせる技術 チームの成果をワンランク上げる仕組み』 の著者である神谷俊氏が登壇。「社員の自律を促す『新・マネジメント術』とは?」をテーマに、子どもから学べる自律レベルを高めるヒントや、刺激も挑戦も「ちょうどいい」がポイントになることなどを語りました。 子どもに学ぶ、自律レベルを高めるヒント 神谷俊氏(以下、神谷):では、どうやって自律レベルを高めていけばいいのか。セルフマネジメントからセルフリーダーシップに展開していけばいいのか。 ポイントは「遊び」です。先ほど高い自律レベルは遊んでいる状態に近いという話をしました。子どもたちが遊んでいる様子を見ると、自律レベルを高めるヒントが見えてきます。 例えば赤ちゃん。ハイハイしている赤ちゃん
コンサルタントをやっていた時、「この人、コンサルタント向いてないよなあ」という人が何人も中途で転職してきた記憶がある。 例えば「本を1か月に10冊読む」という課題をやらない人。 いつも時間ギリギリにしか行動せず、重要な会合に遅刻する人。 自社の「目標」の達成度合いを気にせず、お客さんの成果にも無関心な人。 別の仕事や、前の会社では許されたかもしれないが、たいてい「コンサルタント」としてはうまくいかない。 私が在籍していたコンサルティング会社は、上のような「問題行動」には非常に厳しく、該当者には「コンサルタントとしての活躍は難しい」と、はっきりと告げていた。 「勤勉さ」は身につかない こうした事例を何度も見るにつけ、私は 「勤勉さ」 「時間を守る」 「目標遵守」 などの行動特性は、たとえ厳しく注意をしても、ほとんど身につかないか、改善したとしても、結局一時的なものにとどまる、という事を知った
はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々なツールや処理系が開発されています。 この記事ではMITの研究者らが開発したPythonを高速化するツール「Codon」について紹介します。 この記事を3行でまとめると: 高性能で簡単に扱えるPythonコンパイラ「Codon」 Pythonとの互換性がありながら、CやC++に匹敵する高速化を実現 実際にPythonコードが100倍速くなることを検証 Codonとは Codonは高性能なPythonコンパイラです。実行時のオーバーヘッドなしにPythonコードをネイティブなマシンコードにコンパイルし、シングルスレッドで10-100倍以上の高速化が実現できます。Codonの開発はGithub上で行われており、2021
Google Chrome、メモリの大食い、やめるってよ2023.02.20 19:00134,659 三浦一紀 これは期待大。 多機能で使いやすいWebブラウザ「Google Chrome」が、最新バージョン「Chrome 110」で、「メモリセーバー」と「省エネモード」を搭載。 順次アップデートが行なわれています。 メモリとバッテリーを節約「メモリセーバー」は、アクティブではないタブのメモリを解放して、アクティブなタブや他のアプリのために使用する機能。 「省エネモード」は、バックグラウンドアクティビティと視覚効果を制限して、バッテリーを節約する機能です。 僕のChromeにもやってきた!ということで、自分のGoogle Chromeを見てみたら、最新のChrome 110のアップデートが来ていたので、早速アップデートしました。 Image: 三浦一紀設定画面で「パフォーマンス」という項
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く