タグ

MySQLとGoに関するclavierのブックマーク (7)

  • ElasticsearchをMySQLと同期しつつ手軽に無停止アップデートする - UUUMエンジニアブログ

    nazoです。 Elasticsearchを運用する際に、マスタデータはMySQLで持ちたいという場合にどうやって同期をするかというのが問題になります。また、Elasticsearchはバージョンの互換性が厳しく、別バージョンをクラスタに混ぜることは基的にできず、さらに辞書の更新などを行う場合はインデックスを全て更新しなくてはいけないなどの運用上の課題があります。 今回は社内向けに使っているElasticsearchを、これらの問題を解決しつつどのように運用するかを考えてみましたので、紹介したいと思います。 簡単に MySQLとElasitcsearchの同期は go-mysql-elasticsearch を使います。 無停止のためのデータコピーは elasticsearch-dump を使います。 MySQLとElasitcsearchの同期 go-mysql-elasticsear

    ElasticsearchをMySQLと同期しつつ手軽に無停止アップデートする - UUUMエンジニアブログ
  • 複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog

    こんにちは。 2016新卒でLobiのサーバーサイドエンジニアをやっているmorikuniです。 今回は、mdqというGo製のツールを作ったので、その紹介をします。 mdqは複数のデータベースに並列にクエリを投げて、結果をJSONで出力してくれるというものです。 github.com mdqに近いコンセプトのツールとして、弊社の荒賀(@ken39arg)が作ったshard_promptがあります(#6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012)。 こちらはSQLを解析し、複数データベースにまたがる集約関数を一部サポートしていますが、MySQL専用かつ直列にクエリを投げるというものでした。 mdqでは複数データベースにまたがる集約関数はサポートしませんが、PostgreSQLなどMySQL以外のデータベースへのクエリや、並列処理による速

    複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog
  • コネクションプールのチューニング - Qiita

    TL;DR 負荷の変動が激しい環境でコネクションプールの設定のチューニングをさぼるためによくやるハックを紹介します。 問題 Go から https や mysql など外部のリソースにアクセスする場合、一般的にコネクションプールを使うことになります。 コネクションプールは、利用が終わった (idle) コネクションをプールしておき、次に使いたい時に再利用するものです。 (idle コネクションのプールを以後 free pool と呼びます。) ほとんどのコネクションプールの実装には、 idle なコネクションの最大数を制限するオプションがあります。 また、利用中の (active) コネクションと idle なコネクションを合計した全体を制限するオプションを持つものもあります。 例えば net/http パッケージの Transport は MaxIdleConnsPerHost というフ

    コネクションプールのチューニング - Qiita
  • 今年テストで頑張ったことまとめ - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2015 2日目です。 こんにちは、最近よく過激派と呼ばれている穏健派のshogo82148です。 今年一年、安心して開発ができるようテストに特に力を入れてきました。 そこで今年テストでおこなった取り組みを振り返ってみようと思います。 残念ながらGoではなくPerlのテストのお話です。 テストをとにかく速くする! 最初に手をつけたのはテストのスピードです。 まず全部のテストが通るようリファクタリングをしてから機能追加というスタイルで開発していたんですが、 全部のテストが終わるまでに10分20分もかかっていてはいつまでたっても機能追加に着手できません。 Jenkins EC2 Plugin とりあえずマシンパワーで解決だ!ということでEC2でマシンパワーの高いインスタンスを使いました。 Spot Instanceを必要

    今年テストで頑張ったことまとめ - KAYAC engineers' blog
  • GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ

    【追記】2023年3月21日 YAPC::Kyoto 2023で、ジョブキューシステムFireworqの設計と運用実績も含めて発表されました。id:tarao ++ 【加筆修正】 2020年2月16日 執筆時から6年も経過していますが、たまたまこの記事を振り返る機会があったので、日語がおかしいところを一部修正したり、一緒に取り組んだ方々の名前が書かれていなかったところを修正しました。 【追記】2017年12年24日 このエントリのジョブキュー実装がFireworqという名でOSSとして公開されました。id:tarao ++ github.com この記事ははてなエンジニアアドベントカレンダー2014の4日目です。 前回は Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog でした。 社内の開発合宿で、 id:taraoさん、id:hakobe

    GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
  • YouTube & Go言語: MySQLをパワーアップするVitess - ワザノバ | wazanova

    http://www.youtube.com/watch?v=qATTTSg6zXk 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約3時間前 YouTubeのシステムアーキテクトであるSugu SououmaraneのFOSDEM 2014での講演です。スライドはこちらからダウンロードできます。 1) Vitessとは Vitessは大規模な番環境でMySQL DBを効率的に利用するためのオープンソースプロジェクトです。概要はプロジェクトゴールのページ にまとまってます。 MySQLは機能が豊富だがスケールさせるときは苦労する。一方、NoSQLはスケーラビリティには問題がないが、アプリケーションが複雑になるとできることに限界があるのがネックになる。セカンダリインデックス、joinsなどがサポートされていない。

  • Go の MySQL ドライバの効率の良い使い方 - methaneのブログ

    10/5 に ISUCON 3 の予選に Go 言語で参戦していました。 とりあえずレポートは会社のブログに書いたので、 Go 言語で go-sql-driver/mysql を使って MySQL を使う時に知っておくと良い点をまとめておきます。 ちなみに MySQL ドライバにはもうひとつ MyMySQL というものがあり、 まだ試していませんが、 MyMySQL の方が落とし穴が少なそうな気がします。 sql.Open() が返す DB オブジェクトはコネクションプールをしてくれる なので、自前で DB オブジェクトを使いまわしてコネクションプールを実装しても意味は無いです。 DB.SetMaxIdleConn() で、使い終わってもクローズしないコネクションの数を設定できます。 デフォルトだと使い終わったコネクションを閉じてしまうので、 DB オブジェクト自体をプールしても コネクシ

    Go の MySQL ドライバの効率の良い使い方 - methaneのブログ
  • 1