2019年1月1日のブックマーク (5件)

  • OSS についてあれこれ

    kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)

    OSS についてあれこれ
    proxy0721
    proxy0721 2019/01/01
  • "Dynamo-style" に学ぶ Replication, Partitioning, Consistent Hashing の気持ち

    "Dynamo-style" に学ぶ Replication, Partitioning, Consistent Hashing の気持ち 先日、DynamoDB設計の背景にあった可用性とスケーラビリティの両立に対するAmazonのアツい想いについて書いた: AmazonのDynamoDB論文を眺めた 背景だけだと寂しいので、ここではもう少し詳しく、DynamoDBの実装を支える Replication と Partitioning の基、そして Consistent Hashing について、"Designing Data-Intensive Applications" (DDIA) の解説も踏まえてまとめておく。 Replication DynamoDB(分散DB)が考えるべき問題の1つに、データのコピーをネットワーク上の複数のマシン(ノード)で保持する Replication(レプ

    "Dynamo-style" に学ぶ Replication, Partitioning, Consistent Hashing の気持ち
    proxy0721
    proxy0721 2019/01/01
  • mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ

    今日は以前のエントリーで書くと述べたConsistent Hashingに関して語らせて頂こうかと思います。ただしConsistent Hashingはセミナーやカンファレンスなどでかなり語られていると思いますので、コンセプトに関しては深入りせず、実用性に着目したいと思います。 問題定義 分散されたキャッシュ環境において、典型的なレコードを適切なノードに格納するソリューションはkeyのハッシュ値に対しmodulo演算を行い、その結果を基にノードを選出する事です。ただし、このソリューションはいうまでもなく、ノード数が変わるとキャッシュミスの嵐が生じます。つまり実世界のソリューションとしては力不足です。 ウェブサイトのキャッシュシステムの基はキャッシュがヒットしなかったらデータベースにリクエストを発行し、レコードが存在したらキャッシュしてクライエントに返すという流れです。ここで問題なのが一瞬

    mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ
    proxy0721
    proxy0721 2019/01/01
  • コンシステントハッシュ法 - Wikipedia

    コンピュータ科学の分野で、コンシステントハッシュ法(Consistent hashing)とは、ハッシュテーブルのサイズが変更された時、をキーの数、をスロット数とすると、平均個のキーのマッピングの変更のみでハッシュテーブルの機能を提供することのできる、特殊なハッシュ法である。それに対して、その他の多くのハッシュ法では、キーとスロット間のマッピングがモジュラ演算によって定義されているため、ハッシュテーブルのスロット数が変化するとほぼすべてのキーが再マッピングされてしまう。分散システムの一形態である分散キャッシュなどで利用されている。 コンシステントハッシュは、ランデブーハッシュ(英語版)(HRWハッシュとも呼ばれる)と同じ目的を達成するハッシュ法であるが、2つの手法は異なるアルゴリズムを使用しており、同時に独立して開発された。 スロットのハッシュ値をソートしてリストに管理する。前提条件として

    proxy0721
    proxy0721 2019/01/01
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp