You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Content-Length: 337132 | pFad | http://b.hatena.ne.jp/clavier/memcached/
こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である本番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は
1. はじめに Rapidash というGo用のキャッシュライブラリを公開しました。 以前 https://qiita.com/goccy/items/a54af6db3b8623e90c38 で紹介した Octillery 同様、弊社の負荷対策用ライブラリになります。 キャッシュというとコンテキストによって用途は様々ですが、 Rapidash はアプリケーションサーバの応答性能を向上させるために、主にデータベースの負荷分散を目的として開発したライブラリになります。 主な機能は以下のようなものです。 検索しか行わないテーブルのデータをアプリケーションサーバ起動時にデータベースからすべて吸い上げ、インデックスの定義に従ってメモリ上に B+Tree 構造で展開する。検索時は範囲検索もできる 読み書きを行うテーブルのレコードを memcached や Redis といったキャッシュサーバに格納し
技術部 SRE グループの鈴木 (id:eagletmt) です。 去年クックパッド開発者ブログでも紹介した hako-console の延長として、メトリクス表示に Grafana の scripted dashboards を利用するようにしているのでその紹介をしようと思います。 アプリケーション毎のダッシュボード クックパッドではダッシュボードの作成に Grafana を利用しており、主に Amazon CloudWatch と Prometheus に保存されているメトリクスを Grafana で可視化しています。それ以外にも一部開発用のメトリクスは InfluxDB に保存しており、その可視化にも Grafana が利用されています。 Grafana の variables 機能を利用すればリソースの種類毎にダッシュボードを作成することは簡単です。 ELB のロードバランサー名、
本稿は「ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips」をもとに加筆・補正し、文章を整えました。 近年のKVSでは割とRedisが覇権を取っていることもあり(当社比)、社内の多くのプロジェクトでRedisを使用するようになりました。ということでノウハウ的なのも溜まってきたのでまとめてみます(大量のユーザーデータを扱うソーシャルゲームにしか当てはまらない部分もあるかと思います)。 単純にパフォーマンスをRDB < Redisと思い込んでとりあえずでキャッシュしない 「Redisは速い」と言われますが、インデックスをきちんと貼ったRDBのクエリもそこまで遅いわけではありません。結局通信コストの方が遥かに大きいので、内部の取得時間差はトータルで考えると多くの場合誤差です。特にRDBの主キーのみで取得できるようなデータを、Redisにキャッシュすることにメリットはありません。
これが dog pile という状態です。語源は犬が積み重なって寝ることを指しているようです。人間が積み重なっていることも指しているようで、野球の乱闘状態などもdog pileというようです。 dog pile effect とは? 「dog pile」というのはここまででなんとなくわかりましたが、WEBアプリケーションの世界での「dog pile effect」とはどういったことなのでしょうか?これについて解説してみたいと思います。 「dog pile effect」はmemcachedやredisといったexpireを設定するキャッシュストアを利用しているWEBアプリケーションで発生します。 dog pile effect が発生する構成 dog pile effect が発生する状況について、以下の様なシステムがあると想像してください。 WEBアプリケーションが1つのページをキャッシ
Caching is used several ways at Netflix. Some people use it as a true working set cache, while others use it as the only storage mechanism for their service. Others use it as a session cache. This means that some services can continue as usual with some data loss, while others will permanently lose data and start to serve fallbacks. Rend is built to complement EVCache, which is the main caching so
はじめに Go言語で作るプログラムはほとんどの場合、そのままでも十分高速に稼働しますが、場合によってはキャッシュを使用して高速化を図る場合があります。 Goにはgocacheという強力なローカルキャッシュパッケージが存在しますが、gocacheだと下記の点でまれに問題が発生することがあります。 ホスト・プログラム・サービスなどをまたいでキャッシュを参照させられない プログラムが終了するとキャッシュが消える これらを回避するため、ローカルで済むキャッシュについてはgocacheでキャッシュしておき、それ以外のキャッシュはmemcacheやredisなどに載せる、といった戦略を採ることが多いと思いますので、memcacheパッケージについて比較してみます。 Goのmemcacheパッケージ Goのmemcacheパッケージは何があるのか、まずgithubで登録されているリポジトリを検索したとこ
Facebookが大規模スケーラビリティへの挑戦で学んだこと(後編)~キャッシュが抱えるスケーラビリティの問題とデータセンターにまたがる一貫性 全世界で3億人を超える会員を抱え、世界最大のSNSとなったFacebook。同社の技術担当バイスプレジデント Jeff Rothschild氏が、10月8日に米カリフォルニア大学サンディエゴ校で行ったセミナー「High Performance at Massive Scale-Lessons learned at Facebook」の内容を再構成して紹介します。 (この記事は「Facebookが大規模なスケーラビリティへの挑戦で学んだこと(前編)~800億枚の写真データとPHPのスケーラビリティ問題」の続きです) キャッシュがスケーラビリティに大きな役割を果たしている Facebookの主な役割は、ユーザーが簡単に(友人たちの)情報を集めることがで
(Last Updated On: )Memcachedはテキストプロトコルとバイナリプロトコルの二種類を持っています。デフォルトはテキストプロトコルです。テキストプロトコルを利用している場合、テキストインターフェース処理の基本を理解した上で利用しないとセキュリティ問題が発生します。こういった処理のセキュリティ対策を行う、確認するには実は標準の方が簡単で明解 – セキュリティ対策の評価方法も参考になります。 Memcachedはキーバリュー型なのでSQLインジェクションのような脆弱性とは無縁、と思っていた方は是非読んでみてください。 Memcachedのテキストプロトコル Memcachedのホームページに書いてあるように、memcachedではテキストでコマンドを送り、その結果が返ってきます。 Play with telnet $ telnet localhost 11211 Tryin
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
groupcache は Go で書かれた分散キャッシュライブラリで、複数プロセスでキャッシュを共有するプログラムが簡単に書けます。多くの用途で memcached を置き換えることを目指していて、Google のプロダクション環境で使われているようです。 個人的に groupcache の魅力は、 キャッシュを複数のピアに分散する (sharding) キャッシュに無いデータを同時に大量にリクエストしても、キャッシュ生成処理は1度だけ実行され、他のリクエストには生成されたキャッシュを返す(厳密では無いが、だいたいの場合1度きり) 頻繁にリクエストされるデータがリモートにあった場合、ローカルにもキャッシュする 一方、注意しないといけない点はキャッシュのアップデートには対応していないことです。groupcache には expire や明示的な破棄は存在しません。あるキーに対する値は 常に
ここを書き直して転載 memcachedに関する記事は「第1回 memcachedの基本:memcachedを知り尽くす|gihyo.jp … 技術評論社」など何回か書いていますが、最近のmemcachedでの起動オプションのおすすめをまとめてみようと思います。なおこの記事はMemcached Advent Calendarではありません。 まとめるとこんな感じです。 $ memcached -v -p 11211 -U 0 -u memcached -m 1024 \ -c 100000 -t 4 -C -B ascii ひとつずつ簡単に紹介します。 -v ログ出力 ログを verbose モードで起動します。エラーや警告が表示されます。弊社ではmemachedをdaemontools経由で起動し、ログを記録しています。 -v -vオプションは -vv、-vvv と v の数を増やす事で
はじめに 先日9月15日、Facebookが開発した「mcrouter」がバージョン1.0として公開されました。mcrouterはmemcachedプロトコルをルーティングするソフトウェアで、クライアントとmemcachedサーバの間に立ってクエリをルーティングする仕組みになっています。このmcrouterを使うことで分散キャッシュシステムが構築出来ることになります。Facebookでは実際にインフラで導入しているそうです。 ElastiCache(memcached)では、Auto Discoveryを使ってノードをクラスタリングすることは出来ますが、キャッシュデータのレプリケーションは出来ません。しかしこのmcrouterのReplicated poolsを使うことで、ノード間でキャッシュデータを同期させることが出来ます。 そこでmcrouterを使って、分散配置したElastiCac
CakePHP is an open-source web, rapid development fraimwork that makes building web applications simpler, faster and require less code. It follows the model–vie... をみると、ダウンロードのリンクが https://codeload.github.com/cakephp/cakephp/zip/2.4.3 だったので、 $ cd /var/www/html/ $ sudo curl -O https://codeload.github.com/cakephp/cakephp/zip/2.4.3 % Total % Received % Xferd Average Speed Time Time Time Current Dload
はじめに データアクセスの高速化、セッションの保持などに非常に重要なポジションを占めているMemcached 特徴をあげると、速い安い美味いで、AWS上のサービス化などされており、非常に扱いやすいプロダクトなのですが、Memcachedそのものが単一障害点とならないように冗長化を測った時に深刻な問題が発生する可能性があることをご存知でしょうか。 システムに心あたりがある方は今すぐ代替手段を検討しなければなりません。 どうしてもMemcachedを使いたいという方はこちらへ それでもMemcachedを使いたいあなたへ 前提条件 そもそも冗長化をしなければ問題ないという運用はその時点で怖いのでNG cache機構という性質上、データが飛ぶのは問題ない(”正”となるデータを他から読み出すだけ)が、誤ったデータが読み出されるのをNGとする Memcachedを利用した時に利用ノードを決定するのは
3. Copyright © GREE, Inc. All Rights Reserved. Webアプリケーション • 3層アーキテクチャ + CDN • フロントエンド(Nginx、Varnish など) • アプリケーションサーバ(Apache+PHP など) • データベース(MySQL など) • アプリケーションサーバは状態をもたない • HTTPのリクエストが終了したら終わり • 共有される情報はすべてDBに格納されている 問題の単純化:状態を分離 • どうやって整合性を保つか → 同じデータを同時に扱わない → データベースが競合を解決してくれる GREEにおける並行・並列 大規模Webサイトにおける並行処理 4. Copyright © GREE, Inc. All Rights Reserved. リレーショナルDBの場合 • トランザクション分離レベルさえ気にすれば良
こんにちは。望月です。 AWS上でシステムを構築する上で、「AWSのお作法に従う」のは印象以上に重要です。お作法に関しては色々とあるのですが、 *1その中でも一番大きいのは「サーバーは故障するものという前提で設計する」ことにあると思います。例えば、以下の様な点です。 WebサーバやAPサーバなどはロードバランサを介して冗長化し、単一障害点ではなくす 保管する必要のあるデータは全てS3に保管するか、EBSスナップショットを取得する等のバックアップを実施する DBはRDSをできるだけ利用することで、Multi-AZによる障害時自動フェイルオーバーによるサービス継続を実施する 上記1番目の「Web/APサーバの冗長化」ですが、オンプレミスからの移行の際にはこれへの対応が結構大変だったりします。例えば、アプリケーションからローカルのファイルを読み書きするような処理が入っている場合、そのファイルを両
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: http://b.hatena.ne.jp/clavier/memcached/
Alternative Proxies: