https://offers.connpass.com/event/304025/ 発表資料です
Connection Management: WeScale efficiently manages connections to your database, reducing the overhead on your application and improving performance. WeScale relieves you of the worry of the max_connection problem in your database. Read Write Split: WeScale simplify application logic by automatically routing read queries to read-only nodes and write queries to the primary node. This is achieved by
gem の概要 database_rewinder という gem があります。 これを使うとテストケースを実行するたびに DB の中身が初期化されて、しかも超速いというすごい gem です。 弊社でもヘビーユースさせていただいていたのですが、あるプロダクトの自動テストにおいて適切にデータが初期化されないケースがあり、 Flaky test の原因となっていました。 今回ご紹介する mysql_rewinder は、この問題を解決するために database_rewinder の代替を目指して開発した gem です。 使用例 Ruby on Rails / RSpec と組み合わせる場合、以下のように利用します。 RSpec.configure do |config| # MysqlRewinder の初期設定 config.before(:suite) do db_configs = A
👋 We’re Knock. We provide a set of simple APIs developers use to introduce notifications into their products, without needing to build and maintain a notification system in-house. Tl;dr: We recently upgraded from Postgres 11.9 to 15.3 with zero downtime by using logical replication, a suite of support scripts, and tools in Elixir & Erlang’s BEAM virtual machine. This post will go into far too muc
この記事は新野淳一氏のブログ「Publickey」に掲載された「GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる」(2023年12月12日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。 米GitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby on Railsで構築されており、同社はつねにRubyとRuby on Railsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上
GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる GitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby on Railsで構築されており、同社はつねにRubyとRuby on Railsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上のMySQL 5.7を、GitHub.comのサービスレベルを維持したまま1年以上かけてMySQL 8.0にアップグレードしたことをブログで明らかにしました。 Up
こんにちは! Tech KAYAC Advent Calendar 2023 11日目を担当する荒賀(@ken39arg)です。 在籍期間15年と弊社の中でかなり古参になってしまった私ですが、アドベントカレンダーを年に2本書くのは初めてです。1 今回の内容は、今年7月に無事に成功したお仕事の話で、完了したらブログに書くように言われていたものです。 が、どうしても筆が進まず、のらりくらりと逃げていたのですが、良い年越しをするためにいい加減書いておくか〜という内容です。 TL;DR Rails + PostgreSQL + Apartment という構成のサービスで下記の1行の設定変更コミットを取り込んだ結果・・・ $ git log -n1 -p 64b39f258e9adde2e55752e4f1d5b6be12bcb216 commit 64b39f258e9adde2e55752e4f
この記事は MySQLのカレンダー | Advent Calendar 2023 の10日目の記事です。昨日は meijik さんの 最新のSQL標準(SQL:2023)とFirebird/MySQL/PostgreSQL | キムラデービーブログ でした。 TL;DRdockerhub のMySQLイメージはもうメンテナンスしていないっぽい ややこしいのだけれど、 docker pull mysql で取得するのは「Docker社がビルドしたMySQLイメージ」で、 docker pull mysql/mysql-server で取得するのが「Oracle社がビルドしたMySQLイメージ」だった引っ越したのは後者のみMySQL Server Community Edition - Repository Detail 5.7は5.7.16と5.7.33だけ、8.0は8.0.22とそれ以降し
EngineeringUpgrading GitHub.com to MySQL 8.0GitHub uses MySQL to store vast amounts of relational data. This is the story of how we seamlessly upgraded our production fleet to MySQL 8.0. Over 15 years ago, GitHub started as a Ruby on Rails application with a single MySQL database. Since then, GitHub has evolved its MySQL architecture to meet the scaling and resiliency needs of the platform—includi
日本PostgreSQLユーザ会(以下、JPUG)から来ました @soudai1025 です。 この記事は PostgreSQL Advent Calendar 2023 シリーズ 1 の 5 日目の記事です。 www.postgresql.jp PostgreSQLユーザ会って? JPUGはNPO法人です。 目的もちゃんと明記されています。 本会は日本におけるPostgreSQLの普及と発展を主な目的とします。具体的には以下の活動を行います。 1. PostgreSQLの研究開発および普及促進 2. PostgreSQLに関する情報の公開 3. 会員相互および外部との技術的・人間的交流 www.postgresql.jp NPO法人だと何が違うの? 1番大きなところはお金の管理を透明性を持って管理していることです。 後述する活動費を協賛会員様*1の協賛会費から捻出して管理しています。 ど
この記事はNTTコムウェア Advent Calendar 2023の4日目の記事です。 こんにちは、NTTコムウェアの平塚です。今月は2023冬 Chill Seasonで手に馴染むブキを探しているところです。 大規模言語モデルが持っていない最新情報や企業内情報を補うためのRAG(Retrieval Augmented Generation、検索拡張生成)というアーキテクチャーがあります。ごく簡単に説明すると、外部データベースを用意してそこで検索した結果を大規模言語モデルに説明させるというものです。以下はRAGのイメージ図です。 現在多くの企業さまがRAGの検証に取り組んでいるところかと思います。今回RAGを用いてPostgreSQLに詳しいアシスタントAIを試作したので、気づいたところをいくつ か共有いたします。 まとめ PostgreSQLアシスタントAIはある程度使えるものになりそ
※この記事はMySQL Advent Calendar 2023の4日目です。 MySQL 8.0シリーズでは正式版になってから多数の新機能が追加されるというリリースモデルであった。正式版になってから追加された新機能の中に、GIPK(Generated Invisible Primary Key)というものがある。これはなんとMySQL 8.0.30で追加された機能だ。MySQL 8.0が正式版になってから、なんと4年と3ヶ月後のことである。そんな感じでMySQL 8.0の新機能は正式リリース後にも増え続け、途方もない規模になっている。このブログでは一度に紹介するのは諦め、少しずつ気の向いたものから紹介していこうと思う。今回はその第一弾として、GIPKについて解説しよう。 GIPKとは GIPKとは、その名前が示すように、自動的に生成される不可視の主キーである。主キーを持たないテーブルに対
この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの
MySQL 8.0.35 includes a fix for bug 109595 and with that fix the QPS is almost 4X larger on the read+write benchmark steps compared to MySQL 8.0.34. Thank you to MySQL for fixing this quickly. I reported the bug in January of 2023. I have been aware of the performance problem for years, but didn't spend time debugging it until this year. I assume this problem was limited to InnoDB because I did no
この記事は クラウドワークス Advent Calendar 2023 シリーズ2 2日目の記事です。 こんにちは。crowdworks.jp SRE チーム 田中(@kangaechu)です。 年末といえば大掃除ですね。 皆さんのデータベースにも使っていないインデックスが溜まっていませんか? お掃除してきれいな新年を迎えましょう。 手順 1. MySQLで使っていないインデックスの一覧を取得 未使用のインデックスは sys.unused_indexes ビューで確認できます。 dev.mysql.com しかし、このビューの元データである performance_schema テーブルは起動時から終了時までのデータしか保持していません。 Tables in the Performance Schema are in-memory tables that use no persistent
私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar
こんにちは、CTOの森です。iimonは今回が初のアドベントカレンダー参加です! 本記事はiimonアドベントカレンダー1日目の記事となります。 はじめに 検証した環境 MySQL/mecabのインストール 大量のデータを入れる 1レコードのINSERTにかかった時間 検索してみる 検索文字列が「出来事」の場合 インデックスなし N-gram(bi-gram) IN NATURAL LANGUAGE MODE IN BOOLEAN MODE MeCab IN NATURAL LANGUAGE MODE IN BOOLEAN MODE 検索文字列が「チューリングはロンドンのリッチモンドに住み」の場合 まとめ 参照したサイト 最後に はじめに 今回はMySQLで全文検索機能を使う際のパフォーマンスについて書こうと思います! 全文検索をちゃんと使うのであればElasticsearchやSolrな
データアナリティクス事業本部のueharaです。 dbt、最近勢いがありますね。 「ちょっとdbtを触ってみたい」 「けど開発環境はあんまり汚したくない...」 このように思っている方も多いのではないでしょうか。 今回は、Dockerを利用してdbtをPostgreSQLと一緒に簡単セットアップする方法をご紹介したいと思います。 ※Dockerが既に実行できる環境を想定しておりますので、準備がまだの方はインストール案内ページなどを参考に、ご準備お願いします。 はじめに 今回はDocker Composeを利用して、以下の環境を立ち上げます。 ファイルの準備 今回作成するファイルの構成は以下の通りです。 「dbt」は空のフォルダを作成して下さい。 . ├ dbt (空のフォルダ) ├ compose.yml ├ Dockerfile ├ profiles.yml.tmpl └ require
AIに描いてもらったストレージで作ったレース会場 はじめに この記事はデータベース・システム系 Advent Calendar 2023の一日目の投稿である。今年読んだ論文(今年書かれた論文とは限らない)の中で驚きや納得があって良かったなぁと思った論文をいくつか紹介していきたいと思う。 論文の本文そのものは機械翻訳なりチャットAIなりに叩き込めば誰でも内容の抽出はできるので、こちらのブログ内では何故これが良いと思ったかについて僕の主観に基づいて書いていく。僕の解釈が厳密に正しいことは一切保障しないし、気になって読んでみたら全然内容違うやんけ!と驚くところまでがセットくらいの気軽なつもりで読んで欲しい。 最初に紹介する論文は「When Database Meets New Storage Devices: Understanding and Exposing Performance Mism
こんなWebサービスをリリースしたので、技術的な話をまとめておこうと思います。 元々このサービスは、趣味の延長線のような感じで開発を始めました。競合にあたるnoteやはてなブログなどのサービスが確固たる地位を築いているということもあり、「お金にはならないだろうけど、自分の趣味を詰め込んだものにしよう」というゆるい気持ちで開発を続けています(楽しい)。 選定の方針 趣味と言っても文章投稿サービスなので、ユーザーが少数であったとしても長期間運営しなければなりません。そのため、ユーザー数が少なければランニングコストが数千円/月以下、ユーザー数が増えたときは段階的にコストが上がるように選定を行いました。 アプリケーション フルスタックNext.jsアプリケーションをCloud Runにデプロイしています。各APIエンドポイントはNext.jsのAPI Routesで生やしています。 Next.js
[速報]AWS、読み込み性能も書き込み性能もスケールする「Amazon Aurora Limitless Database」プレビューを発表。AWS re:Invent 2023 Amazon Web Services(AWS)は、ラスベガスで開催中のイベント「AWS re:Invent 2023」で、新機能を備えたデータベースサービス「Amazon Aurora Limitless Database」のプレビューを発表しました。 Amazon AuroraはMySQLやPostgreSQLなどのリレーショナルデータベースをマネージドサービスとして提供するサービスです。 これまでAmazon Auroraでは、リードレプリカを増やすことで読み込み性能をスケールさせることは可能でしたが、書き込み性能に関してはマスターデータベースを稼働させているインスタンスのみに書き込みを行うため、このインス
ISUCON13に参加した。 我々のアプローチ、当日の話なんかはチームメイトが書くだろうから自分はざっくり、ここまで1年間チームを組んでくれたチームメイトとの歩みについて書いて行こうと思う。 とはいえ、気になる人もいるかもしれないから置いておく。 github.com チームの始まり 2022/07/23 ISUCON12に出場した自分と @tetsuzawa はFailでscore無しとなり予選敗退した。 新卒1年目の@tetsuzawaが「来年も出ましょう。準備、できることは全部やるんで。」と言って来年も出るか。ってことが決まった。 二人で出たチームの課題は自律したガンガンコードを書けるGoのプロフェッショナルが足りないこと。 だからその日のうちに、ISUCON 12では出題側に回っていて、絶対来年のチームが決まっていない @mackee_w を誘った。 そして当日の反省会をしていた田
弊社で利用しているMySQLのバージョンをMySQL5.7からMySQL8にアップグレードを行いました。その際に Blue/Green Deploymentsを使って実施する際にに調べた事をまとめて紹介したいと思います。 Blue/Green Deploymentsとは 制限事項 公式情報 検証した方々の情報 実際に検証をしてみてわかったこと 検証を踏まえて、実施する際にチェックする箇所 まとめ Blue/Green Deploymentsとは 現状の本番環境(Blue)を別に新しい本番環境(Green)を構築した上で接続先を切り替えるなどして新しい本番環境をリリースする運用方法です。 利点として システムのダウンタイムを短くできる ロールバックが容易 が挙げられます。 Amazon RDS Blue/Green Deploymentsの仕組みとしては、本稼働環境(以下Blue環境)と本稼
オラクル、標準のPostgreSQLより最大3倍速い「OCI Database with PostgreSQL」を正式サービスとして提供開始 オラクルはOracle Cloud上でPostgreSQLをマネージドサービスとして提供する「OCI Database with PostgreSQL」の正式サービス化を発表しました。 同社はデータベースに最適化されたストレージ(DbOS:Database Optimized Storage)を用いることでトランザクション処理エンジンがストレージ層から切り離されており、これにより標準の PostgreSQL 構成と比較して最大3倍の性能向上が実現されているとのことです。 DbOSは、異なるアベイラビリティドメインに分散配置されたストレージで構成された仮想的な共有ブロックストレージです。ストレージ間でクオラムベースのレプリケーションが行われています。
Years ago I wrote about my trouble with a job queue in Postgres, in which table bloat caused by long-running queries slowed down the workers’ capacity to lock jobs as they hunted across millions of dead tuples trying to find a live one. A job queue in a database can have sharp edges, but I’d understated in that writeup the benefits that came with it. When used well, transactions and background job
コアテクノロジーグループの山田です。 先日、新しいSQLフォーマッターであるuroboroSQL-fmtをリリースしました 🎉 このツールは弊社が公開しているPostgreSQL向けのSQLコーディング規約に基づき、SQL文をフォーマットするツールです。 弊社でのSQLフォーマッター開発の取り組み元々弊社ではuroboroSQL Formatter(以下uroboroSQL Formatterを旧版、uroboroSQL-fmtを新版と呼ぶ)というSQLフォーマッターを公開していました。旧版は 字句解析して得られたトークンを基にフォーマットするという設計になっていたため、SELECT句のエイリアス補完といった文法を考慮する必要のある機能の追加が困難Pythonで書かれておりVSCodeの拡張機能として動作させるのが難しいという課題を抱えており、それを解消するため新たなSQLフォーマッター
Oracle recently made their quarterly releases with MySQL 8.0.35 and MySQL 8.2. This blog post is a quick look at the release notes to see what these new versions bring to the community. You’ll want to keep an eye on the deprecations in particular because some long-accepted behavior, including wildcards, will change eventually. We get 83 and 50 bug fixes, respectively. We also get 17 and 33 depreca
はじめに こんにちは。スタンバイで求人データ管理に関するバックエンドエンジニアをしている池田です。 スタンバイはWEB上に存在する大量の求人を一括検索できるサービスを提供しており、その求人票のマスタのデータは Amazon Aurora を使って運用しております。 以下の記事で説明をしておりますが、2021年に求人取込直後の求人情報を構造化データとして保存するために Amazon Aurora を採用しました。 スタンバイの求人情報取込の仕組みを作り直した話 〜序章〜 DBエンジンとして Aurora ( MySQL 5.7 ) を利用しております。 ストレージエンジンとしてInnoDBを利用しております。 しかし作り直しから時が経ち、求人票の増加や各種機能の追加等によって Aurora のデータ量は想定上の速さで増加していき、それに比例する形でインフラコストも増加し続けていました。 今回
ゲーム業界のデータベース事情。大量のシャーディングで複雑化する負荷分散、メンテナンスで止めないとスケールアップ・ダウンができないなどの課題。解決方法は?[PR] 日常的に多数の同時アクセスが発生し、大量のデータが蓄積されるオンラインゲームのバックエンドは、データベースにとってもっとも過酷な環境の1つだといえます。 このバックエンドデータベースとしてよく使われているのがMySQLデータベースです。しかしその使われ方は一般的なMySQLとは異なり、データベースを細かく分割して多数のサーバに負荷を分散するシャーディングと呼ばれる仕組みを構築するなど、複雑なシステム構築と運用が行われているのが現実です。 そこで急速に注目度を高めているのが、MySQL互換でありつつ分散データベースの機能を備え、シンプルなクラスタ構成で高い負荷に耐える、いわゆる「NewSQL」と呼ばれる分野の代表的なデータベースの1
今回はALTER TABLEステートメント実行時の注意点について紹介します。 MySQLを運用していると、サービスの仕様変更や新機能のために既存のテーブルに対してテーブル定義を変更することが多いと思います。その際によく起こる問題や注意点に説明します。 ALTER TABLEステートメント まずは、簡単にALTER TABLE ステートメントについて紹介します。テーブル定義を変更するにはALTER TABLEステートメントを利用します。MySQL 5.6以降からInnoDBのテーブルにおいて、オンラインDDLが可能になっています。本連載においても第30回 InnoDBオンラインDDLについてにて紹介しています。 オンラインDDLでは、DDL実行に最小限の時間のロックを取得することで、そのDDLと並列で実行されるDMLの待機も最小限になります。そのため、サービス無停止でALTER TABLEス
「ダブルチェックを頑張る」でごまかさない、スクウェア・エニックスのサーバ設定漏れ防止策:たくさんのサーバを一気に構築できる“自律構築の仕組み”とは(1/3 ページ) スクウェア・エニックスは膨大な数のゲームを提供している。当然、それらを支えるインフラも大量で、運用管理にかかる手間も大きい。「Cloud Operator Days Tokyo 2023」のセミナーを基に、大量サーバの最適な管理法を紹介する。 変化の激しい現在のビジネス環境において、アプリケーションやサービスもその変化に素早く対応する必要がある。もちろん、それを支えるインフラについても同様だ。クラウドサービスやIaC(Infrastructure as Code)などを活用し、効率的にインフラを管理している企業も多いだろう。 ただ、ある意味でインフラは生き物だ。作った当初は問題なくても、管理する対象が増えたり、長期間運用してい
AWS News Blog Amazon Aurora MySQL zero-ETL integration with Amazon Redshift is now generally available “Data is at the center of every application, process, and business decision,” wrote Swami Sivasubramanian, VP of Database, Analytics, and Machine Learning at AWS, and I couldn’t agree more. A common pattern customers use today is to build data pipelines to move data from Amazon Aurora to Amazon R
はじめに 『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。 CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。 今回、「書籍と元コンテンツの対応表」を作成しました。 書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。 すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基本的で面白い内容なので、一見の価値はあると思います。 書籍と元コンテンツの対応表 No. 目次 CodeZine連載 ミック氏ウェブサイト テーブル定義 サポートページ
こんにちは。フォージビジョンの藤川と申します。 2023年9月初めに、AWSよりAmazon RDS for MySQL 5.7の標準サポート終了に関する内容と延長サポートに関する内容の通知がありました。以下は、2023/9/13時点のAWS公式サイトの情報です。 メール本文にも記載がありましたが、各々の情報は以下のAWS公式サイトに記載があります。 Amazon RDS for MySQL 5.7の標準サポート終了 2023/9/13時点では、表示言語を英語にすることで、標準サポート終了日の最新の情報や延長サポートの内容を確認することができました。 docs.aws.amazon.com Amazon AuroraとAmazon RDSがMySQLとPostgreSQLデータベースの延長サポートを発表 aws.amazon.com データベースのメジャーバージョンのアップデートについては
はじめに こんにちは!私がつとめている CastingONE という会社の SaaS には、テーブル形式のデータ一覧ページがあります。この一覧ページですが、最近データ数が増えれば増えるほど、じわじわとパフォーマンスが悪くなっていってました…。そこで今回は、そのリストデータ取得におけるパフォーマンス改善を行なった時の、パフォーマンス計測方法や検討内容、最終的な結果をまとめてみました。 対象読者 バックエンドのパフォーマンス改善の方法や改善の流れに興味がある方 ちなみに私がこの改善を行なった時のスペックですが、パフォーマンス改善については初心者寄りでした。「パフォーマンス改善って何それ美味しいの?」というレベル感だった当初、「達人が教える Web パフォーマンスチューニング 〜ISUCON から学ぶ高速化の実践」という本には基礎を知るところから大変お世話になったので、ご興味のある方はぜひ読んで
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く