サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
jp.engineering.indeedblog.com
この投稿は、2部構成となっているシリーズの第1部です。 私たちのチームは、2019年に、Kubernetes、Docker、Mesos など、ハードリミットが設定されたほぼすべてのコンテナオーケストレータに影響する CPU スロットリングの問題を解決しました。この過程で、応答遅延で大きな問題があった Indeed のあるアプリケーションでは、遅延が2秒から30ミリ秒に短縮されました。この2部構成のシリーズでは、根本的な原因を見つけ、最終的にソリューションへとたどり着いた取り組みについて説明します。 Photo by twinsfisch on Unsplash この問題が発生したのは昨年、Linux カーネルの v4.18 がリリースされてから間もなくのことでした。Indeed のある Web アプリケーションで応答時間が長くなっていることを把握したのですが、CPU の使用量を確認しても問
膨大なデータを抱えるアプリケーションをスケールする際に、どのようなストレージを導入するべきなのでしょうか?どうしたら大量のデータセットを安全に保存し、効率的に読み書きを行えるのでしょうか?こうした疑問は、よく SQL か NoSQL のどちらを使うべきかという議論になりがちですが、どちらもそれぞれメリットとデメリットがあります。 ですが、もしデータデースにまつわる問題を全て回避できる三番目の選択肢があるとしたらどうでしょうか? コンシューマは数分おきにしか更新を必要としていないかもしれません。この場合、データセットをメモリ内に読み込めると、劇的にアクセス速度があがり、大規模のスケールが可能になります。このことから、 Indeed では多くのプロジェクトで、必要なデータの完全なコピーを、各コンシューマに渡しているので、 SQL 対 NoSQL の議論をする必要がありません。これを実現するに
今回の記事では、オープンソースで利用可能な util-mmapを取り上げていく。 util-mmap は Java のメモリマッピング・ライブラリで、大きなファイルにアクセスするのに有効なメカニズムを提供する。 Indeed の分析用プラットフォーム Imhotep ( 2014年にリリース ) は、 これをデータアクセスの管理に使用している。 メモリマッピングを使用する理由 Indeed のバックエンドサービスはLSM trees や Lucene のインデックスのような大きなデータセットを扱っている。util-mmap のライブラリは、そういった大きなファイルへの安全なメモリマッピングを提供している。 また、これは JDK 内の MappedByteBuffer の既知の制約を克服している。メモリマッピングとは、ファイルの一部を、仮想メモリのセグメントに移すプロセスを指す。 メモリマッ
毎月 2 億人のユニークビジターの職探しをお手伝いする中で、私たちは、沢山のデータを手にします。集めたデータからユーザーの動向について多くの情報を得ることができますが、殆どの場合、この動向には予測可能なパターンが見受けられます。しかし、予期せぬ変化はシステムの不具合の兆候や、ユーザーの動向が実際に変化してきている事を表している可能性があります。データが何か変わったことを示していたら、私たちはその原因の解明に努めます。 そんな、ユーザー動向の異常を発見し対応する、というのは入り組んだ問題です。これらの異常が検知しやすくなるように、私たちは複数のオープンソース・ソフトウェアを活用しています。その中で最も重要なものは、 Twitter のAnomalyDetection ライブラリです。 ユーザー動向の異常を観察 大量のデータの中で異常を検知するというのは、時系列に沿って一定の予測可能なパターン
Indeed では Java 7 から Java 8 へ移行しています。 (現段階では、移行は完了しております。)段階にわけて移行しており、まず Java 7でコンパイルされたバイナリを JRE 8 (Java 8 の実行環境)で実行するところから始めました。一度に全てを切り替えてしまうのではなく、いくつかのカナリアテストアプリを使用して、どんな問題が見つかりそうか様子を見ました。 私たちは、求人検索のウェブアプリを一つ目のカナリアテストとして選びました。昨年の 5 月に、私たちは本番環境にある 1 件の求人検索サーバーを JRE 8 に切り替えました。何も問題なく、 QA 環境で JRE 8 を数週間使用していましたが、本番環境をJRE 8 に切り替えたところ、システム負荷は 5 (通常のレベル) から 20 (異常なレベル)まであがりました。進める前に、まず修正が必要なくらいはっきりと
プロダクトの成長を加速できるABテストを予言してくれたり、目標指標の向上につながるUIを映し出してくれる魔法の水晶玉が欲しい、と思ったことがある方もいらっしゃるのではないでしょうか。 統計モデルとSHAP決定プロットを使えば、インパクトが大きなABテストのアイデアをまとめて出すことができます。Indeed Interviewチームは、この方法論を活用して最適なABテストを作成し、主要なビジネス指標の5~10%向上を実現しています。 ケーススタディ:面接への招待数を増やす Indeed Web面接は、求職者と採用企業にとって面接をできる限りシームレスなものにすることを目指しています。Indeed Interviewチームが掲げる目標は、このプラットフォームで実施する面接数を増やすことです。このケーススタディでは、採用企業が送信する面接の招待数を増加することにつながるUIテストのアイデアを探し
結構な時間をかけて、最近のコンピューターサイエンスの論文を読み漁っている。 自分のチームのプロダクトを改善してくれそうな、アルゴリズム的な物を何でも探しているのだ。 これも Indeed のミッションである Help People Get Jobs のため。成果はまちまちで、 Indeed では活用できそうにない美しい数式しか見つからないこともしょっちゅうある。 でも、コンピューターサイエンスの文献を読み込むことで、得られるものは沢山ある。 もっと多くのソフトウェア開発者が、文献を活用して腕を磨いてもいいんじゃないだろうか。 コンピューターサイエンスの論文を読む理由とは 「何で?」- そもそも、こう思うんじゃないだろうか。 現役で仕事をしている開発者は、やはり論文なんか読まないだろう。 事実、僕が文献サーチを勧めると、何人もの優秀な開発者にぽかんとした顔つきで見られた。 「え? Stack
このページを最初にブックマークしてみませんか?
『jp.engineering.indeedblog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く