タグ

ブックマーク / yakst.com (86)

  • MySQLの高可用性構成の展望2017年版 | Yakst

    MySQL高可用性オプションについて3つパートで説明された記事。この記事では最初のパートThe Elders(長老たち)の技術を紹介している。 MySQLに比較的新参の人に向けて書かれており、「レプリケーション」「共有ストレージ」「NDB Cluster」の技術について、メリットとデメリットを説明している。 このブログでは、さまざまなMySQL高可用性オプションについて考察します。 ダイナミックなMySQLエコシステムは、MySQLを中心に構築された多くの技術を急速に進化させています。これは、MySQLの高可用性(HA)の側面に関連する技術に特に当てはまるでしょう。 私が2009年にPerconaに入社したとき、こういったHAの技術のいくつかは非常に人気がありましたが、それ以来ほとんどは忘れられています。その同じ期間で、新しい技術が登場しました。読者にいくつかの視点を提供しながら、出来れば

    MySQLの高可用性構成の展望2017年版 | Yakst
    mapk0y
    mapk0y 2017/07/04
    ステートメントベースのレプリケーションの場合、auto_increment の値を保持するテーブルのロックが必要でマスターに影響あるのは知らなかった
  • CPU使用率は間違っている | Yakst

    Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが

    CPU使用率は間違っている | Yakst
  • MySQL 8.0 : クエリーキャッシュのサポート終了 | Yakst

    役に立つ場面もある一方、スケーラビリティー上問題があるとされてきたMySQLのクエリーキャッシュが、MySQL 8.0で廃止されることになる。その背景と理由。 免責事項 この記事はMorgan Tocker氏によるMySQL Server Blogの投稿「MySQL 8.0: Retiring Support for the Query Cache」(2017/5/30)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 Reneが昨日、ProxySQLのブログにこう書きました。 MySQLのクエリーキャッシュはパフォーマンスを改善するためにあるが、それは重大なスケーラビリティー上の問題を抱えていて、深刻なボトルネックに簡単になってしまいかねない。 これは、MySQLチーム内でも確かに長い間言われてきたことです。今日の記事の題に入る前に、少しイントロダクションを書かせて

    MySQL 8.0 : クエリーキャッシュのサポート終了 | Yakst
    mapk0y
    mapk0y 2017/06/05
  • mysqlpumpユーティリティー | Yakst

    MySQLの論理バックアップ生成ツール「mysqldump」の後継にあたる「mysqlpump」の特徴と使い方についての解説。 この記事では、mysqlpumpコマンドの使い方を見てみようと思います。 mysqlpumpは論理バックアップを取得するツールです(実ファイルではなく、データをSQLとしてバックアップするという意味)。このツールは MySQL5.7.8 で追加され、データベースをダンプする、もしくはダンプしたファイルを別のDBサーバに転送/インポートする目的に使用できます(インポート先はMySQLに限定されません)。 使用方法はmysqldumpと基的に同じですが、いくつか新しい機能が含まれています。多くのオプションが変わらず使用できますが、mysqldumpとの互換性に縛られることがないよう、一から開発されています。 主な新しい機能 ダンプ処理を高速化するために、データベース

    mysqlpumpユーティリティー | Yakst
    mapk0y
    mapk0y 2017/05/18
  • MySQLのレプリケーション手法の違い | Yakst

    ソリューションエンジニアチームに所属する筆者が、今では様々な手法が存在するレプリケーション機能について、改めて特徴や注意点を解説しつつ、レプリケーションのよくある「誤解」に対してもお答えしています。 このブログ記事では、MySQL(および Percona Server)環境におけるレプリケーション手法に関して改めて考察を行いたいと思います。あわせて、時折見受けられるレプリケーションの間違った考え方についても考えてみます。 私がソリューションエンジニアとして働き始めてからというもの、沢山の情報が公開されているにも関わらず、レプリケーションに対する「誤解」や「不完全な理解」が無くならないことを日々感じていました。 そもそもレプリケーションとは何か? レプリケーションは、1つのデータベースにデータを蓄積するだけでなく、別のデータベースにデータを複製し、転送することを保証してくれる機能です (複製

    MySQLのレプリケーション手法の違い | Yakst
    mapk0y
    mapk0y 2017/03/09
  • Windowsのドライバーの日付が全部2006年6月21日なのはなぜ?更新されていないの? | Yakst

    バージョン番号が変わるのに日付が全部同じという不思議な仕組みのWindowsのドライバー。そこには秘密が。 なぜWindowsのドライバーの日付が2006年6月21日なのか?ドライバーをアップデートしたことないの?単なるなまけ者集団? もっと重要なことに、2006年6月21日という日付は、Storage Spacesのように2006年に存在すらしていなかったドライバーにも適用されているのです!また開発部門がタイムマシンを使ったのでしょうか? Windowsのすべてのドライバーの日付は2006年6月21日に設定されています。バージョン番号は時とともに増えていきますが、タイムスタンプは変わらないままです。 私の同僚Zacがこう説明しています。ある特定のハードウェアのために使うドライバーを探す時、システムは色々な基準に基づいてドライバーをランク付けします。ドライバーがハードウェアIDとぴったり一

    Windowsのドライバーの日付が全部2006年6月21日なのはなぜ?更新されていないの? | Yakst
  • GitLabのデータ消失に対するアドバイス | Yakst

    GitLabのデータベースが消失してしまった事故に関して、PostgreSQLのコミッターであり、PostgreSQLに関するコンサルティング会社2ndQuadrantのCTOでもあるSimon Riggs氏からの分析とアドバイス。 GitLabのみなさん、PostgreSQL 9.6とレプリケーション機能、バックアップの仕組みを使ってくれてありがとう。 今回、GitLabのデータベースが消えてしまったのは残念です。 https://about.gitlab.com/2017/02/01/gitlab-dot-com-database-incident/ 振り返りの分析に対するコメントができるように、こういった情報を公開してくれてどうもありがとう。 レプリケーションの遅延を監視していたのはいいことですし、私としてはとてもうれしいです。4GBのレプリケーション遅延は問題ないこともありますし、

  • 寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst

    これまでのMySQLでよく問題になった、絵文字や日語の文字の照合やソート順序の問題に関して、来たるMySQL 8.0では大幅な改善が加えられる予定になっている。この問題の概要と今後の改善方針について、MySQL開発チームからの解説。 免責事項 この記事はManyi Lu氏によるMySQL Server Blogの投稿「Sushi = Beer ?! An introduction of UTF8 support in MySQL 8.0」(2017/1/13)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 8.0での私たちの計画として、utf8のサポートを大幅に改善します。utf8サポート自体はMySQL 4.1の頃にさかのぼりますが、いくつかの制限が存在しています。記事タイトルにもある「寿司 = ビール」問題は、バグ#76553のことを指しています。少

    寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst
    mapk0y
    mapk0y 2017/01/25
  • MySQLインデックスのお手入れの基本 | Yakst

    Percona Database Performance Blogの翻訳。既に運用を始めたデータベースで、インデックスが正しく使われているか、無駄や不足がないかを確認する方法のまとめ記事。クエリをひとつひとつ確認するのではなく、統計情報を元に判断する分かりやすい方法。 このブログ記事では、MySQLインデックスに手入れする基的なステップについて見ていこうと思います。 データベースは、インデックス次第でハイパフォーマンスにも、役立たずで遅くて大変にもなりうることはご存知でしょう。インデックスは、時々手入れをする価値がある非常に重要なものです。それでは、何をチェックすればよいのでしょうか?順不同ですが、確認すべき点を挙げてみます。 1. 使われていないインデックス sysスキーマで、使われていないインデックスをとても簡単に見つけられます。 schema_unused_indexes ビューを

    MySQLインデックスのお手入れの基本 | Yakst
    mapk0y
    mapk0y 2016/10/03
  • なぜAtomはVimを置き換えられないのか | Yakst

    EmacsやSublime Text、Atomといったエディターにはなくてviにだけある考え方、それがAtomなどの最新のエディターがviを置き換えられない理由になるだろうという指摘。 1976年はテキストエディターにとっては良い年でした。MITでは、Richard StallmanとGuy SteeleがEmacsの最初のバージョンを書きました。バークレーではBill Joyがviを書きました(viと呼ばれるにはまだ数年を要しましたが)。 2つのエディターはひとつの同じ大きな考え方を元に作られてるんだと還元主義者(reductionist)は言いそうですが、仕方ありません、ここでは還元主義者になりましょう。2014年に目につくもの(訳注 : この記事は2014年に書かれたもの)、つまりSublime TextやAtomといったモダンなエディターを見てみると、Emacsの大きな考え方は完全

    なぜAtomはVimを置き換えられないのか | Yakst
    mapk0y
    mapk0y 2016/06/29
  • 読みやすいREADMEを書く | Yakst

    いくつかのオープンソースプロジェクトを公開している筆者からの、読みやすくユーザーにやさしいREADMEを書くためのアドバイス。 この記事は、Rowan Manning氏による「Writing a Friendly README」(2016/3/14)を翻訳したものです。 あなたのプロジェクトのREADMEは、かなり重要です。そこはプロジェクトに初めて来た人が大抵最初に見るであろう場所であり、唯一のドキュメントであることもよくあります。あなたのオープンソースプロジェクトにとってのREADMEは、企業にとってのウェブサイトのようなものです。ウェブサイトはユーザーエクスペリエンスの注目を集めるところですが、READMEがユーザー観点で考えられることはほとんどありません。 この記事では、分かりやすいREADMEを書くために役立ち、開発者(ユーザー)の要求に見合い、開発者がプロジェクトを初めて見たの

    読みやすいREADMEを書く | Yakst
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
    mapk0y
    mapk0y 2016/02/27
  • フィードバック求む: SQLモードの強制(MySQL Server Blogより) | Yakst

    MySQLにはSQLの様々な動作を制御するSQLモードという設定がある。パラメータの歴史および、Todd Farmer氏によるこの機能の拡張の提案をご紹介する。 従来はユーザーが自由に値を選択可能であったが、サーバーコンフィグに--sql_modes_allowed、--sql_modes_requiredパラメータを追加することで許容する値、強制する値の設定を可能とする。 免責事項 この記事はTodd Farmer氏によるMySQL Server Blogの投稿「Feedback Request: Enforcing SQL Mode」(2016/2/9)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQLサーバーには多岐にわたるSQLモードがあります。SQLモードは様々な動作を制御するもので、制御する動作は他のRDBMSの方言(ANSI_QUOTES、PI

    フィードバック求む: SQLモードの強制(MySQL Server Blogより) | Yakst
    mapk0y
    mapk0y 2016/02/24
  • default_password_lifetimeのアップデート | Yakst

    MySQL 5.7.11でdefault_password_lifetimeのデフォルト値が0になった。そのことに関する経緯と今後の展望。 免責事項 この翻訳は MySQL Server Blogの記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。 MySQL 5.7の私たちのゴールは secure by default です。これは設定の変更や追加のステップを実行することなく、MySQLを新規にインストールしたその時点から番環境で使えるように安全にすることです。 セキュリティーのための一つの設定として、MySQL 5.7は指定された日数パスワードが変更されていないアカウントを無効化する新しい機能が追加されました。これは ユーザー単位及びグローバルオプションで設定することが可能 です。デフォルトでは360日(default_password_lifetimeオプシ

    default_password_lifetimeのアップデート | Yakst
    mapk0y
    mapk0y 2016/01/25
  • Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) 出典について この記事はPercona Data Performance Blog内のVadim Tkachenko氏によるAmazon Aurora – Looking Deeper(2015/11/16)を翻訳したものです。 最近、私のPerconaの同僚であるYves Trudeauと業界の仲間であるMarco TusaAmazon Auroraに関する記事を発表しました。実際のところ、Amazon Auroraは最近のホットな話題で、お客様からもAurora技術に関して多くの質問をいただいています。私は自分の意見を明らかにすることを決心しました。個人の実際に手を動かした経験に勝るものはありませんし、それを共有しようと思います。 私がこれから言及する資料

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst
    mapk0y
    mapk0y 2015/12/07
  • リモートワークは難しい | Yakst

    リモートワークを続けて身体的にも精神的に病んでしまった経験を持つ筆者から、リモートワークの大変さを聞いたアンケートの結果と、その考察、そして筆者がどのようにリモートワークの辛さを告白したかについて。 背景とデータ 少し前、リモートワークしている会社員に対して、リモートワークで最も大変だったことを私宛に教えて欲しいとTwitterに投稿しました。 そして、考えていたよりもずっと多い450以上の回答を受け取りました(いくつかの回答は全くのジョークでしたが...それがインターネットというものです)。 私はそれらの単語について少し分析をしてみました。ある程度手動でそれらを集約し(例えばlonelyとlonelinessを変えるなど)、スペルを修正。それから頻度で単語をグループ分けし、1度しか現れないものを削除。これで明らかにジョークやネタのほとんどは消せましたが、なぜか7票(!)も受け取った「パン

    リモートワークは難しい | Yakst
    mapk0y
    mapk0y 2015/12/01
    リモートワークに関しては yapcasia2015 の http://yapcasia.org/2015/talk/show/a06d9970-0d7b-11e5-aaf9-67dc7d574c3a もとても参考になる
  • InfluxDBのContinuous Query その1 | Yakst

    時系列データベースであるInfluxDBのユニークな機能のひとつに、継続的にデータを処理して保存するために使用するクエリーの一種であるContinuous Queryがある。これについて説明する3部作の第1弾は、Continuous Queryの概要と簡単な例を紹介する。 合計や集約、あるいは計算したデータを返すクエリは、アプリケーション開発では頻繁に使われます。例えば、メトリクスをレポートするオンラインダッシュボードアプリケーションを開発しているなら、データを要約したものを表示する必要があるでしょう。大量のデータを処理する必要があったり、繰り返し実行するためスケールしないため、こういった要約クエリは一般的には計算コストが高くなります。そんな時、必要になったらすぐに取り出せるように要約済みのクエリの実行結果を事前に計算して保存しておければ、データベースに負荷をかけずにダッシュボードアプリケ

    InfluxDBのContinuous Query その1 | Yakst
  • データのロストは発生するか? | Yakst

    MySQLあるいはMongoDBにおけるコミットの読取り一貫性および受信確認されたコミットの保護についてのブログ記事を紹介する。MongoDBにおけるドキュメントの問題についても言及されている。 出典について この記事はMark Callaghan氏のブログ内の記事、Losing it?(2015/10/11)を翻訳したものです。 何年も前、Google社のMySQLチームのWei Li氏の厚意によって準同期レプリケーションが実装されました。この準同期レプリケーションのユースケースは限られており、コミュニティーはこれが意図した動作をしなかったため失望しました。そのうちに、InnoDBのバイナリログにグループコミットが実装されました。最初はFacebook社のMySQLチームに、そしてMariaDBで改善され、最後にMySQLのアップストリームに取り込まれました。グループコミットによって、い

    データのロストは発生するか? | Yakst
  • Redis作者自身によるRedisとMemcachedの比較 | Yakst

    Redisの作者antirez氏自らによる、memcachedとRedisの長所短所の比較。特に、Redisを単なるキャッシュ用アプリケーションとしてmemcachedと比較することの間違いと、それぞれの向いている使用方法についての私見。 あなたが私と面識があるなら、私が競合製品があることが悪いと考える人間でないことはご存知でしょう。ユーザーに選択肢があることは当にいいことだと思っていますし、だからこそ他の技術とRedisを比較するようなことはほとんどしませんでした。 しかし、最適なソリューションを選ぶためには、ユーザーは正しく情報を持たねばならないのも確かです。 この記事を書くのは、有名なライブラリであるSidekiqの作者として知られるMike Perhamが、Redisのバックエンドストレージとしての使い方を書いた記事を読んだのがきっかけです。従って、私はMikeがRedisに「反

    Redis作者自身によるRedisとMemcachedの比較 | Yakst
  • MySQL 5.7.8のmysqlpumpについての注意事項 | Yakst

    MySQL 5.7.8-rc2が日 (訳注:この 元記事 は2015/08/03に公開された) リリースされた。新しいmysqlpumpという新しいサーバーユーティリティも一緒にリリースされている。このユーティリティーはmysqldumpにいくつかの新しい機能を取り込んだものだ、たとえば データベース, テーブルのパラレルダンプ。これはダンプの速度を向上させる。 ダンプファイルのリストア時にInnoDBのfast index creationを有効利用する。InnoDBのテーブルに対しては、行をINSERTした後にセカンダリーインデックスを後から追加するようになっている。 テーブル, ビュー, ストアドプロシージャ, ユーザーアカウントなど、データベース内のオブジェクトをより上手くコントロールする ユーザーアカウントの情報を、mysql.userテーブルへのINSERTではなく、CREA

    mapk0y
    mapk0y 2015/08/05
    バックアップ専用サーバなら使えそうだな。