Skip to content

Home_jpn

Takeshi Nakatani edited this page Feb 1, 2018 · 5 revisions

k2hdkcとはなんですか? To English

k2hdkc(k2hash based distributed kvs cluster)は、Yahoo! JAPANオリジナルのNoSQL(key value store)ライブラリk2hashをベースとしたオープンソースの分散KVS(Key Value Store)です。

背景

Yahoo! JAPANではさまざまな分散KVS製品を使っていますが、k2hdkcは、k2hashをベースに、高速、高可用性、拡張性、低メンテナンスコストなどを目的として開発されました。k2hdkcという分散KVSを作ることで、k2hash の性能とchmpx のスケーラビリティと冗長性を維持しつつ、運用コストをさげることにも成功しました。k2hashchmpx は、2016年にすでにオープンソース化されている製品です。

  • k2hash
    大量のキーやデータを扱える、高速かつオリジナルな機能を持ったkvsライブラリ
  • chmpx
    ネットワークをまたぐプロセス間におけるバイナリ通信を行うための通信ミドルウエア

概要

k2hdkcクラスタは、複数のサーバーノードで構成されています。k2hdkcへアクセスするクライアントプログラムからはk2hdkcライブラリのAPIを利用するだけでアクセスできる構成となっています(図1を参照)。

Figure.1 図1. 概要

サーバーノードは、k2hashデータ、chmpx(サーバーノード)、k2hdkcプログラムで構成されています。

  • chmpx (サーバーノード)
    k2hdkcプログラムおよびk2hashへの操作はchmpxプロセスを通した通信コマンドで実現されています。
  • k2hdkc
    k2hdkcプログラムが、chmpx(サーバーノード)からの通信コマンドを処理し、k2hashファイルを管理し、操作します。
  • k2hash
    k2hashファイルにはデータが保存されます。

クライアントは、2つのコンポーネントで構成されます。

  • chmpx
    chmpx プロセスは、クラスタのサーバーノードの障害があった場合でも、耐久性のある通信を提供します。
  • k2hdkcライブラリを利用したクライアントプロセス
    chmpx を通して通信コマンドでk2hdkcクラスタの操作を行います。
Clone this wiki locally