フリーランスエンジニアをしているrevenue-hackです! 普段はGo言語でバックエンドを中心にやっています〜 ↓登壇したときの資料です! より図を入れて詳しく書いております! 今回はデータベースの特にRDBの仕組み(アーキテクチャ)についてざっくり理解して、なにかに役立てようぜ〜 というような内容になります。 ↓記事はこちらに移しました!↓
![データベースの仕組み(アーキテクチャ)をざっくり理解する](https://cdn-ak-scissors.b.st-hatena.com/image/square/fbf55e58d74b08ba7cff704c48d8aac9df8644f0/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--zoMx90ae--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252583%252587%2525E3%252583%2525BC%2525E3%252582%2525BF%2525E3%252583%252599%2525E3%252583%2525BC%2525E3%252582%2525B9%2525E3%252581%2525AE%2525E4%2525BB%252595%2525E7%2525B5%252584%2525E3%252581%2525BF%252528%2525E3%252582%2525A2%2525E3%252583%2525BC%2525E3%252582%2525AD%2525E3%252583%252586%2525E3%252582%2525AF%2525E3%252583%252581%2525E3%252583%2525A3%252529%2525E3%252582%252592%2525E3%252581%252596%2525E3%252581%2525A3%2525E3%252581%25258F%2525E3%252582%25258A%2525E7%252590%252586%2525E8%2525A7%2525A3%2525E3%252581%252599%2525E3%252582%25258B%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Arevenue-hack%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzEwY2M5OWNkNGYuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)
MemoryDB はElastiCache の約1.5倍、Aurora の約1.2倍と若干高価です。 耐久性を重視するMemoryDBはElastiCacheで言うところの「クラスターモード」しか存在しないため、{シャード数} x {ノード数/シャード} x {インスタンス利用費} 分の利用費が発生する点にもご注意ください。 最後に Redisを永続的なデータストアとしても使える Amazon MemoryDB for Redis が爆誕しました。 データ耐久性のトレードオフとして書き込み速度は低下したものの、読み取りの速さはまさにRedisです。 クライアントはRedisコマンドを投げるだけで、MemoryDBが良しなにやってくれるため、使い勝手が良さそうです。 今後はDynamodB+DAXの代替として検討したり、RDB+キャッシュRedisなシステムを MemoryDB に集約すると
Oracle Database 21c正式版が登場。データベース内でJavaScript実行可能、改ざんできないブロックチェーンテーブルなど新機能 米オラクルは、最新のデータベースソフトウェアとなる「Oracle Database 21c」正式版を発表しました。 Oracle Databaseのバージョン番号は、2017年に発表された「Oracle Database 18c」から西暦を基にしたバージョン番号となりました。つまり今回発表された「Oracle Database 21c」の21は来年2021年の21から、cはクラウドのcから取られています。 オラクルはOracle Databaseにおいて、マルチデータモデルへの対応やマルチテナントへの対応など、さまざまな機能を集約したコンバージドデータベース(Converged Database)と呼ばれる方針で開発を進めています。 すでにOL
Webアプリ負荷試験ガイド 目次 Webアプリ負荷試験ガイド 目次 前置き 時間がない人向け要約 about me 何故負荷試験を行うのか 負荷試験ツール 負荷掛けるツール 負荷計測 負荷の可視化 負荷試験の流れ 負荷試験スケジュールについて 注目すべきポイント シナリオ作成 アカウント情報は自動生成出来るようにする DB分割を行ってる場合はDB分割を意識したシナリオを用意する。 負荷試験元 http or https サーバ1台 サーバ単体での負荷 アプリの正常性の確認 サーバ複数台 KVS Memcached Redis RDB 問題になりやすいDB キャッシュの話 大前提 注意すべき点 CDNやProxyレベル local cache or remote cache local cache or memory cache(in app cache) references 更新情報 前
ゲーマー向けの無料音声テキストチャットアプリケーション「Discord」を開発、提供するDiscordは2020年2月5日(米国時間)、アプリケーションを支える基盤サービスの一つである「Read States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。 Read StatesサービスはこれまでGo言語で実装されていた。それにもかかわらず、なぜRead StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。 Rustで再実装した背景とは Read Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。つまり、ユーザーがDiscordに接続したり、メッセージを送信したり、メッセージを読んだりする
DBのレイヤーを含むエンドツーエンドテストやDBに依存したコンポーネントの自動テストがたくさんあると、全てのテストが終わるまでに長い時間がかかるようになってしまうことがあります。DBのクエリ実行はネットワークIOやディスクIOなどを含んだ高コストな処理だからです。 Docker を少し工夫して使うと、お手軽にテスト中のDBのクエリ実行にかかる時間を削減できます。自動テストが完了するまでの待ち時間を短縮し、開発のフィードバックサイクルをより早く回せるようになります! MariaDB を用いたプロジェクトの実績では、DBアクセスを伴うテストケースが 153件 ありましたが、この方法によりそのテストスイートのローカル環境での実行時間を約 43% 削減できました(約 145.7s → 約 83.3s)。 どうやって? Docker で tmpfs を使います。 tmpfs tmpfs とは、ディス
どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H
MySQL 8.0で内部的に作成されるテンポラリテーブルが、HEAPストレージエンジンからTempTableストレージエンジンへと変更されたことは、皆さんもご存知だろう。このストレージエンジンはテンポラリテーブル専用として設計されたもので、実体を持ったテーブルとしての利用は想定していない。一応、internal_tmp_mem_storage_engineオプションを指定することで、従来のHEAPストレージエンジンも選択は可能であるが、個人的にはそれはお勧めしない。 TempTableストレージエンジンは、メモリとディスクの両方を自ら使い分ける。これは、従来型のテンポラリテーブルとは違う。HEAPストレージエンジンはインメモリ専用で、tmp_table_sizeあるいはmax_heap_table_sizeを超えるサイズが必要になると、ディスク上のテーブルへと自動的に変換が行われるという仕
これは Defrag 2014 の講演内容です。 テクノロジに長く従事することの(数少ない)利点の1つは、いくつもの技術サイクルの始めから終わりまでを見ることができるということです。いかにしてブレークスルーが実際に広まるかを見られるのです。サイクルの曲線の一部分しか見なければ、全体を正確に測り知るのは難しいでしょう。短期間で起きた進歩を見過ごしてしまうか、長期間で起こる進歩を見届けられないかのどちらかです。驚くべきことは世の中の事象がいかに速く変化するかではなく、その変化に呼応するエンジニアリングの変革がいかに遅いかということです。画像は、1891年に発明された、電話回線を自動で接続するストロージャー式自動交換機です。 1951年、デジタル交換機の最先端において、典型的な中央電話交換局はビクトリア期の特大サイズでした。ストロージャー式自動交換機は、通信中の全ての電話の信号を扱っていました。
KOF 2008 での発表資料「はてな流大規模データ処理」を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/081108huge_data.ppt 一部参考文献からの引用 (Introduction to Information Retrieval から Vector space model の図、たつをの ChangeLog から転置インデックスの図) があります。この場を借りて感謝。 環境によってはおそらくフォントの表示がいまいちだと思いますが、ご了承ください。 追記 SlideShare にアップロードしました。 081108huge_data.pptView SlideShare presentation or Upload your own. (tags: linux mysql) 追記: メモリはディスクの 150 倍について
KOF2008:関西オープンソース2008というイベントに来ています。 はてなの伊藤さんの講演があったので、講演メモを公開。 #ボクがメモした内容であって、100%言ったとおりに書いてあるわけじゃないので、参考としてご覧ください。 (続き) アジェンダ 大規模なデータ OSのキャッシュ MySQLの運用 大規模データアプリケーションの開発 データの例 はてなブックマークのデータ量:五千万件くらいのデータ量 このデータに対して何百万人がアクセスしてくる状況でどういう作りにするか レコード数 1073万エントリー 3134万エントリー 4143万タグ データサイズ エントリー2.5GB 何の工夫もなく普通にアクセスすると...200秒待っても結果が帰ってこない 大規模データの難しいところ 開発サーバで開発者が作っている時は快適に動いていても、多数の人間がアク
ようやく春の嵐が過ぎ去り、無事 4/1 にシステムのカットオーバーを迎えることができました。まだしばらく集中監視期間が続くので、完全に安心はできませんが、とりあえずプロジェクトに尽力いただいた皆さん、お疲れ様でした。 今回、私は最終フェーズでのパフォーマンス・チューニングという、ある意味でプロジェクトが貯めてきた全てのツケを払う役回りで1ヶ月だけ参加したのですが、その体験で感じたことをまとめてみたいと思います。けっこう普遍性のある話だと思います。 まず、パフォーマンス・チューニングというのは、仕事としては面白いし、やり甲斐のあるものです。私は DB が専門(今回は Oracle だった)なので NW や OS についてはそれほど詳しくないのですが、それでも性能問題というのは、原因を突き詰めていく過程で非常にシステムの内部ロジックに詳しくなれる。というか、詳しくならないと解決できないので、嫌
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く