AntPickax

AntPickax は、Yahoo! JAPAN がオープンソースとして提供する基礎ライブラリ、コンポーネント、システムのプロダクト群です。

背景

Yahoo! JAPANでは、多くのオープンソースを利用し、また貢献していますが、次のような背景があり、AntPickax の制作を開始しました。

作成されたソフトウエアのうち、既存のOSSと比較しても遜色のない性能を持ち、かつ、既存のOSSにない便利な機能を持つソフトウエアを、AntPickax プロダクトとしてオープンソースとして公開しています。

AntPickax プロダクト一覧

AntPickax Products

AntPickaxは、以下のプロダクトをオープンソースとして公開しています。

K2HDKC DBaaS

K2HDKC DBaaS (Database as a Service for K2HDKC) は、K2HR3を使い、OpenStack および kubernetes と連動して、分散KVSである K2HDKC の環境を構築する Database as a Service です。

K2HR3

K2HR3 (K2Hdkc based Resource and Roles and policy Rules) は、 IaaS(Infrastructure as a Service)に対応した RBAC (Role Based Access Control) を提供するシステムです。

K2HDKC

K2HDKC (K2Hash based Distributed Kvs Cluster) は、K2HASHCHMPXをベースに作成された高速でオートスケール可能な分散KVSシステムです。

K2HFTFUSE

K2HFTFUSE (K2Hash File Transaction by FUSE based file system) は、高速にファイル、テキスト、ログを転送、中継転送、集約できるFUSEベースのコンポーネントです。

CHMPX

CHMPX (Consistent Hashing Mq inProcess data eXchange) は、クラスタ構築のできる高速な通信ミドルウエアです。

K2HASH

K2HASH は、高速、大容量で他にない多彩な機能を持つ Key Value Store(KVS)ライブラリです。

FULLOCK

FULLOCK (Fast User Level LOCK library) は、K2HASH, CHMPXで利用している高速な排他制御のライブラリです。

AntPickax プロダクト

K2HDKC DBaaS

K2HDKC DBaaS (Database as a Service for K2HDKC) は、K2HR3を使い、OpenStack と連動して、分散KVSである K2HDKC の環境を構築するDatabase as a Serviceです。

K2HDKC DBaaS (Database as a Service for K2HDKC) は、以下の4つの方法を提供します。

K2HDKC DBaaS シリーズは、Yahoo! JAPANが公開している K2HDKCK2HR3CHMPX 等を使って構築されています。

詳しくは、以下の詳細を参照してください。

K2HR3

K2HR3 (K2Hdkc based Resource and Roles and policy Rules) は、Yahoo! JAPANオリジナルが公開する RBAC (Role Based Access Control) システムのひとつです。

K2HR3 は、RBAC としての機能を、IaaS(Infrastructure as a Service)である OpenStack と連携して動作し、また RBAC を利用する上で便利な +SERVICE機能 を提供します。

K2HR3 は、Yahoo! JAPANが公開している K2HASHK2HTP_DTORCHMPXK2HDKC 等を使って構築されています。

K2HR3 は、以下のコンポネーントとツールにより構成されています。

K2HDKC

K2HDKCK2Hash based Distributed Kvs Cluster)は、K2HASH, CHMPXをベースとした高速で自動化された分散KVS(Distributed Key Value Store)です。

K2HDKCは、高可用性でスケーラブルな分散型KVSクラスタリングシステムであり、以下の機能・特徴を備えています。

詳しくは、ソースコードドキュメント を参照してください。

K2HDKC nodejs addon

K2HDKC nodejs addonK2HDKC nodejs addon - K2Hash based Distributed Kvs Cluster)は、K2HDKCのNode.js addonライブラリです。
このライブラリを利用して、K2HDKCのスレーブ側クライアントアプリケーションを、Node.jsベースのJavaScriptで実装することができます。
K2HDKC nodejs addonは、K2HDKCの分散KVSのスレーブ側クライアントに必要なすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HDKC phpext

K2HDKC phpextK2HDKC PHP拡張 - K2Hash based Distributed Kvs Cluster)は、K2HDKCのPHP拡張ライブラリです。
このライブラリを利用して、K2HDKCのスレーブ側クライアントアプリケーションを、PHPアプリケーションで実装することができます。
K2HDKC phpextは、K2HDKCのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HDKC java driver

K2HDKC Java ドライバK2HDKC Java ドライバ)は、K2HDKCのJavaクライアントライブラリです。
このライブラリを利用して、K2HDKCのスレーブ側クライアントアプリケーションを、Javaで実装することができます。
K2HDKC Java ドライバは、K2HDKCの分散KVSのスレーブ側クライアントに必要なすべての機能・特徴を提供します。

詳しくは、ソースコードプロジェクトのドキュメント を参照してください。

K2HDKC golang

K2HDKC golangK2HDKC golang - K2Hash based Distributed Kvs Cluster)は、K2HDKCのGo言語クライアントライブラリです。
このライブラリを利用して、K2HDKCのスレーブ側クライアントアプリケーションを、Go言語で実装できます。
K2HDKC golangは、K2HDKCの分散KVSのスレーブ側クライアントに必要なすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HDKC python

K2HDKC pythonK2HDKC python - K2Hash based Distributed Kvs Cluster)は、K2HDKCのPython言語クライアントライブラリです。
このライブラリを利用して、K2HDKCのスレーブ側クライアントアプリケーションを、Python言語で実装できます。
K2HDKC pythonは、K2HDKCの分散KVSのスレーブ側クライアントに必要なすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HFTFUSE

K2HFTFUSEk2hash File Transaction by FUSE based file system)とは、FUSE(Filesystem in Userspace) によるユーザースペースでのマウント機能を利用したファイル/メッセージ転送システムです。

K2HFTFUSEは、 確実高速 なファイル/メッセージ転送を低コストで実現するために開発されたシステムです。 K2HFTFUSEは、仮想ファイルシステムを提供し、マウントしたディレクトリにファイルを書き込むだけで利用でき、ログファイルやデータなどを集約できます。 既存プログラムの出力ファイルのディレクトリをK2HFTFUSEでマウントするだけで、既存プログラムの変更なしにファイル/メッセージ転送ができます。

詳しくは、ソースコードドキュメント を参照してください。

CHMPX

CHMPXConsistent Hashing Mq inProcess data eXchange)は、ネットワークをまたぐプロセス間におけるバイナリ通信を行うための通信ミドルウエアです。

詳しくは、ソースコードドキュメント を参照してください。

CHMPX nodejs addon

CHMPX nodejs addonCHMPX nodejs addon - Consistent Hashing Mq inProcess data eXchange)は、CHMPXのNode.js addonライブラリです。
このライブラリを利用して、CHMPXを使った通信プログラムのサーバ側、スレーブ側の両方をNode.jsベースのJavaScriptのプログラムで実装できます。
CHMPX nodejs addonは、CHMPXのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

CHMPX phpext

CHMPX phpextCHMPX PHP拡張 - Consistent Hashing Mq inProcess data eXchange)は、CHMPXのPHP拡張ライブラリです。
このライブラリを利用して、CHMPX を使った通信プログラムのサーバ側、スレーブ側の両方をPHPアプリケーションから操作できます。
CHMPX phpextは、CHMPXのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HASH

K2HASHは、NoSQL Key Value Store(KVS)libraryです。
K2HASHは、基本的なKVSの機能と、以下に示す独自の特徴を備えています。

詳しくは、ソースコードドキュメント を参照してください。

K2HASH nodejs addon

K2HASH nodejs addonK2HASH nodejs addon - NoSQL Key Value Store(KVS) nodejs library)は、K2HASHのNode.js addonライブラリです。
このライブラリを利用して、K2HASHをNode.jsベースのJavaScriptのプログラムから操作できます。
K2HASH nodejs addonは、K2HASHのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HASH java driver

K2HASH Java ドライバK2HASH Java ドライバ)は、K2HASHのJavaクライアントライブラリです。
このライブラリを利用して、K2HASHのスレーブ側クライアントアプリケーションを、Javaで実装することができます。
K2HASH Java ドライバは、K2HASHの分散KVSのスレーブ側クライアントに必要なすべての機能・特徴を提供します。

詳しくは、ソースコードプロジェクトのドキュメント を参照してください。

K2HASH golang

K2HASH golangK2HASH golang - NoSQL Key Value Store(KVS) Go library)は、K2HASHのGo言語クライアントライブラリです。
このライブラリを利用して、K2HASHを操作するプログラムをGo言語で実装できます。
K2HASH golangは、K2HASHのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HASH phpext

K2HASH phpextK2HASH PHP拡張 - NoSQL Key Value Store(KVS))は、K2HASHのPHP拡張ライブラリです。
このライブラリを利用して、K2HASHをPHPアプリケーションから操作できます。
K2HASH phpextは、K2HASHのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HASH python

K2HASH pythonK2HASH python - NoSQL Key Value Store(KVS) Pythonライブラリ)は、K2HASHのPython言語クライアントライブラリです。
このライブラリを利用して、K2HASHを操作するプログラムをPython言語で実装できます。
K2HASH pythonは、K2HASHのすべての機能・特徴を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HTP_DTOR

K2HTP_DTORk2hash Transaction Plugin Distributed Transaction Of Repeater)は、K2HASH のトランザクションデータを CHMPX を利用して他ホストへ転送を行い、K2HASHデータの複製を容易に実現します。
K2HASHライブラリに対応したYahoo! JAPANの提供する標準トランザクションプラグインであり、トランザクションをトリガとして独自処理のための一般的な手段を提供します。

詳しくは、ソースコードドキュメント を参照してください。

K2HTP_MDTOR

K2HTP_MDTORk2hash Transaction Plugin Multiple Distributed Transaction Of R epeater)は、CHMPXを使用してK2HASHのトランザクションデータを別のホストに転送することによって、K2HASHデータを簡単に複製します。

複数のK2HASHトランザクションプラグインをロードする K2HTP_MDTOR の主な目的は、それらに定義されている任意の関数を呼び出すことです。 各関数を呼び出すとき、K2HTP_MDTORK2HASHトランザクションログを関数のパラメータとして渡します。 一般的なK2HASHトランザクションプラグインは他のものをロードしません。 複数のK2HASHトランザクションプラグインを使用したい場合は、K2HTP_MDTORを使用することをお勧めします。

詳しくは、ソースコードドキュメント を参照してください。

FULLOCK

FULLOCKFast User Level LOCK library)は、マルチプロセス、マルチスレッドから安全で、高速なロック機能を提供する低レベルのロックライブラリです。
このライブラリは、K2HASH, CHMPXなど他の AntPickax プロダクトでも利用されています。

詳しくは、ソースコードドキュメント を参照してください。