こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝食付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/
ソースコードを公開したソフトウェアで収益を得ている会社をまとめる。いわゆる「オープンソースソフトウェア(OSS)」という有名な言葉を使わなかったのは、OSS の定義に当てはまらない、またはその可能性があるものが含まれているため。 この記事では "OSS" の定義に当てはまらないものも含め、主要な事業を構成するソフトウェアを一定のライセンスの下で公開している会社をまとめていく。このようにソースコードを公開して利用者やフィードバックを集めるビジネスモデルは open core とか COSS: Commercial Open Source Software と呼ばれているようだ。 企業が「ソースコードが公開されているソフトウェア」を利用するメリットとしては、主に以下の2つがあると考えられる。 コア機能の開発に集中できる 自社のビジネスの核となるソフトウェアの開発に集中し、それ以外の機能的・非機
こんにちは、19のSysAd班の翠(sappi_red)です。普段はtraQのフロントエンドの保守を行ったりしています。 こんばんは、19のSysAd班のtemmaです。普段は普段どおりのことをしています。この記事の面白い部分はすべて僕が書いています。面白くないところは翠君が書いています。 この記事では、日々パフォーマンスに頭を悩ませる開発者の方のために、ワンタッチで劇遅SQLを200倍高速でキュートなSQLに劇的ビフォーアフターする方法を紹介します。 「おいおいおい、遅くしたくて記事を読み始めたのに話が違うじゃないか💢」と思ってるそこのあなた👈 早くできるということは遅くもできるんですね。 TL;DR ここにテーブルがあります。 CREATE TABLE messages ( id CHAR(36) NOT NULL PRIMARY KEY, text TEXT COLLATE ut
ログ分析勉強会は、日々の業務に役立てられる「ログ分析」についての情報交換を目的として活動しています。オンライン開催となった今回、AWSに詳しい山口氏がWebサービスのパフォーマンス改善に必要なログ分析について、日々の業務から得た知見を共有しました。後半は、サーバーサイドから見たログ分析について。 サーバ情報を可視化して負荷状況を見る続いて、サーバの負荷状況を見るところですね。リソースの情報をコマンドで取得してサーバ情報を可視化しましょうというところです。 よく使うのは、1つ目はhtopですね。htopでプロセスごとにどれくらいのメモリやCPUを使っているかを取っていくのがあります。リクエストが多いときにこれを取っていって、どこが重たくなっているかを見るというのがいいかなと思っています。 例えばアプリケーションサーバと同梱されているものだったりとかすると、アプリケーションサーバの負荷がいきな
HashiCorp が OSI オープンソース・ライセンス のソフトウェア (以降 OSS) 製品を Mozilla Public License 2.0 (以降 MPL) から Business Source License 1.1 (以降 BUSL) にライセンス変更して話題になっています。 自社は主力製品はクローズドソース、それ以外は Apache License 2.0 で OSS として公開という戦略をとっていることもあり、 BUSL について自分の考えを雑に書いておこうと思います。 法律の専門家ではないので、間違いもあると思います。きっちり理解したい人は弁護士に相談しましょう。
Amazon Web Services(AWS)は、オープンソースとして開発されているリレーショナルデータベース「MariaDB」の最上位スポンサーとなるダイアモンドスポンサーになったことを明らかにしました。 AWS is now the first diamond sponsor of the MariaDB Foundation @mariadb_org AWS engineers are significant contributors to the #opensource databases that our managed services are built on and that our customers depend on. Read more: https://t.co/VWzxIQzdPK #AWSCloud pic.twitter.com/97va28nHKl —
こんにちは。プロダクト本部Growth部でエンジニアをしている id:ruru8net です。 前回はこちらの記事を書かせていただきました。 tech.classi.jp 今日は前述したSRE留学中にやったことの中の「Amazon Auroraの監査ログをCloudWatch Logsを経由せずS3に保存する」を紹介したいと思います。 前提 前掲の記事にもある通り、弊社のAWSにかかっているコストを調査したところCloudWatch Logsの特にAmazon RDSの監査ログの保存にコストがかかっていることがわかりました。今回は弊社で最も使用しているAmazon AuroraのMySQLのみを対象として、監査ログをCloudWatch Logsを経由せずS3に保存する仕組みを作成しました。 作成した仕組み こちらのオープンソースの仕組みを参考に構築、またLambdaのソースを使いました。
Horrible leadership, racism, sexism, abuse, and violations of countless labor laws in both the U.S. and internationally could only lead to one possible outcome. The lawsuits are piling up and the employees are going to take the hit. Payroll is going to be missed. For those that don’t know, MariaDB.com is the commercial for-profit entity while MariaDB.org is the non-profit entity that holds the own
この記事では、MySQL/MariaDB のバグを修正するための典型的な手順を、具体例を通して解説する。次の MariaDB のバグを例として取り上げるが、基本的なデバッグの手順は MySQL でもまったく同様である。 MDEV-24868: Server crashes in optimize_schema_tables_memory_usage after select from information_schema.innodb_sys_columns なお、MySQL/MariaDB のデバッグ方法についての包括的な解説を与えるのは、この記事のスコープ外である。デバッグ手法の詳細を知りたい場合は、以下の一連の記事を参照してほしい。 Debugging MySQL/MariaDB (1): Build and Test Debugging MySQL/MariaDB (2): DBU
普段は基本的にMariaDBの動向は全く追って無いです。 でも先日、MariaDB 10.5 のfsync()発行が少なく性能が良いのは何故なのかちょっと見てほしいと言われて、 mariadb-10.5.9.tar.gz をざっと見たらあっという間に原因特定。 「fsync()を待つべきなのに待ってないから」 只の不正と判明。 動作としては、 innodb_flush_log_at_trx_commit = 1 でも innodb_flush_log_at_trx_commit = 2 でも 並列度が上がると多くのトランザクションが innodb_flush_log_at_trx_commit = 0 の動作と同等となってしまうようです。 待たないのだから速いに決まってる。こんな不正なものと比較されるのは腹立たしいです。 指定のLSNまでのwriteやflushを終わらせる log_wri
MySQLから派生したリレーショナルデータベースであるMariaDBの開発を主導するMariaDB社が、投資会社「K1 Investment Management, LLC」(以下、K1)に買収され、同社の100%子会社になることを発表しました。 MariaDB社はニューヨーク証券取引所の上場企業ですが、買収により上場廃止となります(ちなみにオープンソースの開発コミュニティとしては、MariaDB社とは別にMariaDB Foundationが存在しています)。 We are excited to announce that today, MariaDB joins the K1 Investment portfolio and appoints new leadership to drive the next phase of #MariaDB #database growth. Rea
GMOアドマーケティングのT.Kです。 MariaDBでAUTO_INCREMENTの値が戻る現象に遭遇したので、紹介したいと思います。 発生条件はパーティションを使っているテーブルに対して、並列トランザクションでINSERTを行い、片方のトランザクションで払い出したAUTO_INCREMENTの値を使わなかった場合です。 検証環境 OS: CentOS 7 DB: MariaDB 10.4.13 各種設定はデフォルト値 再現手順 テーブル CREATE TABLE `hoge_report` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `hoge_id` INT(10) NOT NULL , `request` INT(10) NOT NULL, `report_date` date NOT NULL, PRIMARY KEY
この記事は、:christmas_tree:GMOペパボエンジニア Advent Calendar 2023 の20日目の記事です。 先日、ニッチなバグに遭遇したので、そのことについて書こうと思います。 発端 私が所属しているチームには、以下のような GitHub Actions を利用したワークフローが存在します。(簡略化しています。) チェックアウト。 リポジトリ管理下にあるダンプファイルを mysql:8-debian イメージで起動しているコンテナの MySQL にリストア。 MySQL を利用してギョーミー1な処理を行い、結果を取得。この際、データベースの内容も更新される。 mysqldump コマンドでデータベースのダンプファイルを取得。 ダンプファイル含め、成果物をコミット。 その他あれこれして終了。 上記のとおり、データベースサーバを恒常的に用意するのではなく、ダンプファイ
最近、ANDPADでデータベース周りの技術顧問をさせて頂いています。ANDPADのエンジニアの皆さんから「データベースのロックまわりを詳しく知りたい!」というお話を受けて、先日、ロック周りの社内勉強会を開催しました。 SQLでは一般的なプログラミング言語と違って、ロックの制御を明示的に記述しません。ロックは暗黙的に(自動的に)データベースが必要なロックを獲得します。データベースのロックが わかりにくい・むずかしい と言われることが多いのはこういった背景があると思います。 MySQL のロック範囲は実行計画で変わる 更新対象の行がロックされるのは予測が付く方が多いと思います。 しかし、MySQL(InnoDB)では更新対象でなくても行がロックされることがあります。 このようなサンプルデータを使って説明します。 mysql> CREATE TABLE `lockt` ( -> `pk` big
オープンソースのデータベース管理システムを開発するMariaDBが、投資会社であるAngel Pond Holdings Corporationから1億400万ドル(約120億円)の資金を調達し、ニューヨーク取引証券所(NYSE)への上場を果たしたと報じられています。この上場によって、MariaDBの企業価値はおよそ6億7200万ドル(約770億円)になると見積もられました。 MariaDB Corporation Ab to Become a Publicly Traded Company via Combination with Angel Pond Holdings Corporation | MariaDB https://mariadb.com/newsroom/press-releases/mariadb-corporation-ab-to-become-a-publicly-
MariaDB 11.4 がGAになり、SSLが自動で有効になるようになりました。合わせてMariaDB Connector/Cも3.4からデフォルトでSSLを利用し、かつサーバーの証明書を検証するようになりました。 これにより、MariaDB Connector/C 3.4以降のライブラリを利用してMySQLや古いMariaDBに接続する場合に、SSLで接続できないとか、証明書の検証に失敗するといった問題が発生するようになりました。 これらをリンクしたPythonのmysqlclientやRubyのmysql2のようなクライアントライブラリには続々と問題報告が上がってきています。 この問題に対処するいくつかの方法を紹介します。まずはConnectorをリンクしたライブラリの利用者ができることから。 MariaDB Connector/C 3.3を使う ~/.my.cnf 等が利用されるな
皆さんはスロークエリログを活用していますでしょうか。今回はこの連載でも第7回 スロークエリーログを使って遅いクエリを収集するや第113回 anemoeaterを使ってスローログを可視化してみるで紹介させていただいた、スロークエリログ関連のお話となります。 今回は、mysqldumpslowという、スロークエリログをもっと便利にするコマンドラインツールについて紹介していきます。mysqldumpslowという字面を見ると、mysqldumpでじっくりと時間をかけてダンプファイルを取ってきてくれると思い浮かべるかもしれませんが、全くの別物なので注意しましょう。 検証環境 今回の検証環境は、第125回 phpMyAdminでDockerで建てたMySQLにアクセスするで記載したdocker-composeを利用して作成します。手元で簡単に試せるように、githubの筆者のレポジトリにサンプルコー
いつも mocri をご利用いただきまして、誠にありがとうございます。 2020年6月5日 22時50分頃より発生し、2020年6月11日 10時45分頃に復旧しました障害(以下、本障害といいます)により、一部のご利用者様におきまして、「一部プロフィール情報の消失」または「登録情報全体の消失」が発生し、復旧不可能であることが判明致しました。 本障害の詳細等について、下記のとおりご報告致します。本障害により多大なるご不便とご迷惑をお掛けしますこと、深くお詫び申し上げます。 ◆本障害の影響を受けるご利用者様 ※以下の「ログアウト」には、端末の初期化や、機種変更時にアプリのログイン情報を引き継いでいない場合も含まれます。 Twitter 連携をされているか、または Apple ID でご登録いただいている場合で、本障害発生後にログアウトまたはアプリ削除をされた方 1. に該当する方 を御覧くださ
MySQLからフォークしたオープンソースデータベースとして知られるMariaDBを開発するMariaDB社が、ニューヨーク証券取引所への株式公開を行い、上場企業になることを発表しました。 株式公開は2022年下半期に完了する予定です。 #MariaDB intends to become a publicly listed company on the @NYSE in partnership with NYSE-listed Angel Pond Holdings Corporation! The combined company — MariaDB plc — will be led by our CEO Michael Howard. More on the news: https://t.co/AqdmheutXD pic.twitter.com/MRNAahNOr8 — Mari
MySQL/MariaDB をデバッグする実践的方法を解説する。この記事ではデバッグを行うための準備を行い、具体的なデバッグの方法については (2) 以降の記事で説明する予定である。なお、一連の記事すべてにおいて MySQL 8.0.24 および MariaDB 10.5.9 を前提として解説する。 Building MySQL/MariaDB MySQL/MariaDB のそれぞれについて、ビルドする方法を簡単にまとめておく。以下の記述は筆者の開発環境 (Vagrant Box bento/ubuntu-20.04) を前提としたものである。 MySQL Boost 同梱版のソースを公式からダウンロードし展開する。GitHub から取得すると Boost のバージョンを合わせるのがかなり面倒なので、Boost 同梱版を使うのが吉である。 wget https://dev.mysql.co
3x3の領域で再帰的に分割する「Geo3x3」のいいところは、単純な前方一致で絞り込めるところ。 例えば、東京タワーのGeo3x3 E9139659937288 は、東京都港区あたりのメッシュ E913965 で始まります。 周辺を含めるときは1桁削って1から9を足すだけ。地球上、どの場所でも使えます。 緯度経度を持つ多量のデータから検索すると言えばデータベース。 select文でおなじみSQL(エスキューエル)は、主にデータベースからデータを取得するためのクエリー言語として使いますが、プログラムを組み込むことができるので、プログラミング言語でもあります。 ただし、標準化がちょっと遅かったせいで、データベースによって方言があります。 オープンソースでフリーで使える有名2大データベース、PostgreSQLとMariaDB(MySQL互換)に対応しました。 「Geo3x3 対応言語、58!」
オープンソースのリレーショナルデータベース管理システム「MySQL」。その派生版である「MariaDB」とともに高速かつ無料で利用できることから高い人気を集めています。 本日紹介する「awesome-mysql-performance」は、それらデータベースシステムのパフォーマンスを最適化するための情報をまとめたリンク集です。 MySQLやMariaDBを単にインストールして使用するための方法を説明した情報はインターネット上に多数存在しますが、より深い見識が必要となるパフォーマンス改善のための情報はあまり多くはありません。 データベースサーバーを運用してみてパフォーマンスの低下に悩まされている方必見の情報といえそうです。 サーバーの設定からInnoDBの最適化 同リンク数には以下の情報が含まれています。 Ten MySQL performance tuning settings after
GMOアドマーケティングのT.Kです。 特定のバージョンをインストールする手順を紹介します。 MariaDB ナレッジベースの[MariaDB Package Repository setup script]に詳細が載っているので、詳しく知りたい場合はそちらを参照してください。 背景 開発環境の構築時にMariaDBのリリースシリーズまでしか指定されていなかったので、そのシリーズの最新バージョンをインストールしてました。 バージョン違いにより、開発環境では発生しなかった問題が本番リリース時に発生しました。 実行環境 OS: CentOS 7 手順 リポジトリ構成ファイルを作成 mariadb_repo_setupを使い、 --mariadb-server-version オプションでインストールしたいバージョンを指定します。 今回は10.5.1を指定しました。 $ curl -LsS ht
Ubuntu18.04+MariaDBでいろいろやらかした話投稿者: zaturendo 投稿日: 2018年12月19日2018年12月19日 プロローグ 人生というのは失敗の連続だ。 失敗というもので、人は成長していく。要は、何度も繰り返さないことだ。 そして、今日もまた一つ失敗を積み重ねるのであった。 ノートPCに Ubuntu18.04 LTS 日本語REMIX版をインストールして、10日ほどになる。 こちらにインストールしている LibreOffice から mariadb に接続してみたくなったので、いつものようにPCを起動し、端末を起動して sudo apt update して、sudo apt upgrade とお決まりのコマンドを打ってシステムを更新。 本来デスクトップ用のソフトウェア管理ツールもあるのだけれど、そんなものいるかとばかりコマンドをドヤ顔でうつ。 スタタタ・
概要 こんにちは。 さくらインターネット株式会社 クラウド事業本部 SRE室の菅原大和(@drumato)です。 本記事では、先日「さくらのクラウド Labプロダクト」としてリリースされた、「エンハンスドデータベース」のMariaDB版について、その背景や目的、設計や仕組みについてかんたんに紹介します。また後半では、SREsの私が現段階の運用をどう改善し、どう今後の方針を組み立てているのかについて共有します。 リリース内容についてはこちらのニュースページをご覧ください。 https://cloud.sakura.ad.jp/news/2023/05/18/enhanceddb-mariadb-lab-release/ 本記事全体を通して、MariaDB版エンハンスドデータベースの利用方法等については解説しません。よろしければ以下の公式マニュアルをご覧ください。 https://manual
これは MySQL Advent Calendar 2020 の2日目の記事である。 MySQL についての記事を期待した方には申し訳ないが、MariaDB のコードベースの相当部分は MySQL と共通なので、MariaDB も MySQL の仲間ということで許してほしい。実際、テストやデバッグに関する記述は MySQL でも通用するはずだ。 はじめに この記事の⽬的は、MariaDB の開発経験が無い者が初めて MariaDB にコントリビュートする際の指針を⽰すことにある。基本的なことは Contributing Code に書いてあるので、公式ドキュメントに書かれていない暗黙的な知識を記事の主眼とする。 MariaDB の内部構造について解説することはしない。Expert MySQL が参考になるのでそちらを見てほしい。また、Disk-oriented DB の一般論については、C
Ricardo Sueiras for AWS Posted on Jan 16, 2023 • Edited on Jan 23, 2023 • Originally published at blog.beachgeek.co.uk January 16th, 2023 - Instalment #141 Welcome Welcome to the AWS open source newsletter of 2023, edition #141. This week we have more new projects for you to practice your four freedoms, including "distributed-compute-on-aws-with-cross-regional-dask", a solution to simplify distrib
Linux上でWebサーバーを運営している場合、PHPやMariaDBといったミドルウェアの定期的な更新は、セキュリティ対策として必須の作業の一つです。 そこでここではRedHat系Linuxで稼働しているWebサーバー(Nginx)を例に、PHPやMariaDBといったミドルウェアをアップデート(更新)する手順を紹介します。 MariaDBのアップデート以下で紹介しているアップデート手順は、MariaDBをバージョン5系から10系にアップデートした際の手順ですが、同系のバージョンアップもおおむね同じ手順で実施できます。 repoファイルの作成まず、以下のサイトへアクセスして、自分のプラットフォーム応じたリポジトリ情報を生成します。 MariaDB - repository generator つぎに、Linuxにログインして生成したリポジトリ情報をrepoファイルとして、所定の場所「/e
AWS Database Blog Improve query performance using Optimized Reads on Amazon RDS for MySQL and Amazon RDS for MariaDB Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale MySQL and MariaDB deployments in the cloud. Developers are often required to run complex queries in MySQL and MariaDB environments to create a dashboard or run simple ad hoc reports. Furtherm
重い腰を上げて Debugging MySQL/MariaDB シリーズの第4弾を書いている。今回は rr debugger を使用したデバッグについて説明する。Intel または AMD の CPU を搭載した物理マシンに Linux (kernel 3.11+) をネイティブインストールした環境を前提とする。 rr debugger rr は Pernoscoによって開発されているデバッガーである。rr は gdb と同じ感覚で使えるが、次に挙げる gdb にはないすばらしい特徴を備えている。 プログラムの実行を記録し、バグを何度でも決定的に再現することができる。 ブレークポイントやウォッチポイントまで逆実行 (reverse execution) できる。 これらの特徴の何がすばらしいのか?想像してほしい。散発的なバグ(再現したりしなかったりするバグ)を GDB でデバッグするのは苦
phpMyAdminでwebインターフェイスからMariaDBを操作できます。 〇phpMyAdminの画面 〇インストール方法 以下の手順を実行します。 1. firewallでhttpの80番ポートを開けます sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload 2. MariaDBをインストール sudo dnf -y install mariadb mariadb-server sudo systemctl enable mariadb.service sudo systemctl start mariadb.service sudo mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;" ※パスワードは
This isn’t a question, but more of a share. I am running OwnCloud 10 on a Raspberry Pi and think I have come up with an ideal Mysql/MariaDB configuration for the limited hardware which I decided I should share in case anyone is looking for any pointers. Please note the OwnCloud usage may vary substantially and so this configuration might not necessarialy be the best for your use. In my installatio
MariaDB Server では,バージョン 10.2 以降 JSON データ型 が追加され,MySQL の JSON データ型との互換性のために LONGTEXT データ型 への alias となっています。 今回は MariaDB Server における JSON データの基本的な扱い方を解説致します。 実行環境 MariaDB Server 10.3.14 CentOS 7.6.1810 サンプルテーブルの作成 今回は衣類を販売する店舗における在庫管理テーブルのようなものを作成してみます。 このテーブルには,品名(name),単価(price),在庫数(stock)等,テーブル内のすべての行に存在するデータがあり,従来どおりスキーマで定義されています。 これに対して,品目ごとに異なる意味を持つ属性(色,長さ,サイズ等)を JSON データ型の attr 列で定義してあります。 CR
この記事は Debugging MySQL/MariaDB (1): Build and Test の続編である。(1) で行った準備を基礎として、DBUG マクロおよびトレースファイルを用いて MySQL/MariaDB をデバッグする方法を説明する。(1) で述べた通り、MySQL 8.0.24 および MariaDB 10.5.9 を前提として解説する。 この記事を書くにあたり、書籍 Expert MySQL を大いに参考にした。これほどにニッチな本を買いてくれた Charles Bell 氏に感謝したい。 DBUG Macros MySQL/MariaDB のコードをひと目見れば、その随所で DBUG_XXX なるマクロが使われていることに気づくだろう。これらのマクロは、MySQL/MariaDB をデバッグする上で重要な役割を果たす。この節では、DBUG_XXX マクロの中でも特
Featured Partner Articles Cloud cost optimization best practices Read moreHow to choose a cloud provider Read moreDigitalOcean vs. AWS Lightsail: Which Cloud Platform is Right for You? Read more
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く