AntPickax

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

背景

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

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

AntPickax プロダクト一覧

AntPickax Products

AntPickax プロダクトの公開しているオープンソースには、以下のものがあります。

AntPickax プロダクト

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のスレーブ側クライアントに必要なすべての機能・特徴を提供します。

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

k2hftfuse

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

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

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

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のすべての機能・特徴を提供します。

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

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のすべての機能・特徴を提供します。

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

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_mdtorはk2hashトランザクションログを関数のパラメータとして渡します。 一般的なk2hashトランザクションプラグインは他のものをロードしません。 複数のk2hashトランザクションプラグインを使用したい場合は、k2htp_mdtorを使用することをお勧めします。

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

fullock

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

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