AntPickax

AntPickax includes open source software products which are necessary for Internet services in Yahoo! JAPAN. It includes basic libraries, components and systems.

AntPickax is a series of a challenging product that made it easy to solve complicated problems. We hope AntPickax products are widely used and create next innovations!

We will keep challenging to publish new open source software as a AntPickax product(like an Ant working with a pickax).

Background

Though we use and contribute a lot of open source software in Yahoo! JAPAN, we have started producing AntPickax with the following background.

Among the created software, we have released software as an AntPickax product that has performance comparable to that of existing OSS and has useful functions not found in existing OSS.

AntPickax Product List

AntPickax Products

AntPickax publishes the following products as open source.

K2HDKC DBaaS

K2HDKC DBaaS (Database as a Service for K2HDKC) is a Database as a Service that uses K2HR3 and works with OpenStack and kubernetes to build a K2HDKC(K2Hash based Distributed Kvs Cluster) Cluster for distributed KVS.

K2HR3

K2HR3 (K2Hdkc based Resource and Roles and policy Rules) is an RBAC(Role Based Access Control) system that cooperates with IaaS(Infrastructure as a Service).

K2HDKC

K2HDKC (K2Hash based Distributed Kvs Cluster) is a high performance and horizontal scalable distributed KVS cluster system based on K2HASH and CHMPX.

K2HFTFUSE

K2HFTFUSE (K2Hash File Transaction by FUSE based file system) is a component based on FUSE library which can transfer files, texts and logs at high speed and relay them and aggregate them.

CHMPX

CHMPX (Consistent Hashing Mq inProcess data eXchange) is a very fast network communication middleware to construct a cluster.

K2HASH

K2HASH is a vey fast Key Value Store(KVS) library featuring very large file support and many useful functions.

FULLOCK

FULLOCK (Fast User Level LOCK library) is a very fast and powerful lock library for multithread and multiprocess used in K2HASH, CHMPX.

AntPickax Products

K2HDKC DBaaS

K2HDKC DBaaS (Database as a Service for K2HDKC) is a Database as a Service that uses K2HR3 and works with OpenStack to build a K2HDKC(K2Hash based Distributed Kvs Cluster) Cluster for distributed KVS.

K2HDKC DBaaS (Database as a Service for K2HDKC) provides four ways.

K2HDKC DBaaS is built using Trove and K2HDKC, K2HR3, CHMPX, etc. published by Yahoo! JAPAN.

Please refer to the following for details.

K2HR3

K2HR3 (K2Hdkc based Resource and Roles and policy Rules) is one of RBAC (Role Based Access Control) systems provided by Yahoo! JAPAN.

K2HR3 works as RBAC in cooperation with OpenStack which is one of IaaS (Infrastructure as a Service), and also provides useful functions for using RBAC.

K2HR3 gathers common management information for the cloud, and is built K2HASH, K2HTP_DTOR, CHMPX and K2HDKC components.

K2HR3 consists of the following components and tools.

K2HDKC

K2HDKC (k2hash based Distributed Kvs Cluster) is a high performance and horizontal scalable distributed KVS cluster system based on K2HASH, CHMPX Distributed Key Value Store(KVS).

The K2HDKC has unique features shown below.

For details, please refer to Codes on github, Documents.

K2HDKC nodejs addon

K2HDKC nodejs addonK2HDKC nodejs addon - K2Hash based Distributed Kvs Cluster) is a Node.js addon library of K2HDKC.
Using this library, K2HDKC’s slave side client application can be implemented with Node.js based JavaScript.
K2HDKC nodejs addon provides all functions and features necessary for the slave side client of distributed KVS of K2HDKC.

For details, please refer to Codes on github, Documents.

K2HDKC phpext

K2HDKC phpextK2HDKC phpext - Consistent Hashing Mq inProcess data eXchange) is a php extension library of K2HDKC.
Using this library, K2HDKC’s slave side client application can be implemented with this PHP Extention library.
K2HDKC phpext provides all functions and features of K2HDKC.

For details, please refer to Codes on github, Documents.

K2HDKC java driver

Java Driver for K2HDKC(Java Driver for K2HDKC) is an official Java client library for K2HDKC.
This library provies all functions and features necessary for the slave side client of distributed KVS of K2HDKC.
That means eveyone is able to implement K2HDKC’s slave side client application by using this library.

For details, see the Code on GitHub, Documents.

K2HDKC golang

K2HDKC golang (K2HDKC golang - K2Hash based Distributed Kvs Cluster) is K2HDKC’s Go language client library.
You can use this library to implement K2HDKC slave-side client applications in Go language.
K2HDKC golang provides all the features and features required for the slave side client of the distributed KVS of K2HDKC.

For details, see the Code on GitHub, Documents.

K2HDKC python

K2HDKC python (K2HDKC python - K2Hash based Distributed Kvs Cluster) is K2HDKC’s Python language client library.
You can use this library to implement K2HDKC slave-side client applications in Python language.
K2HDKC python provides all the features and features required for the slave side client of the distributed KVS of K2HDKC.

For details, see the Code on GitHub, Documents.

K2HFTFUSE

K2HFTFUSE(k2hash File Transaction by FUSE based file system) is FUSE (Filesystem in Userspace) is a file/message transfer system using the user space mounting function.

K2HFTFUSE is a system developed to realize reliable and fast file/message transfer at low cost.
K2HFTFUSE provides a virtual file system, you can use it by writing the file to the mounted directory.
Just by mounting the directory of the output file of the existing program with K2HFTFUSE, you can transfer files/messages without changing the existing program.

For details, please refer to Codes on github, Documents.

CHMPX

CHMPX (Consistent Hashing Mq inProcess data eXchange) is a communication middleware for sending and receiving binary data between processes that cross network.

For details, please refer to Codes on github, Documents.

CHMPX nodejs addon

CHMPX nodejs addonCHMPX nodejs addon - Consistent Hashing Mq inProcess data eXchange) is a Node.js addon library of CHMPX.
Using this library, both server side and slave side of communication program using CHMPX can be implemented with Node.js based JavaScript program.
CHMPX nodejs addon provides all functions and features of CHMPX.

For details, please refer to Codes on github, Documents.

CHMPX phpext

CHMPX phpextCHMPX phpext - Consistent Hashing Mq inProcess data eXchange) is a php extension library of CHMPX.
Using this library, both server side and slave side of communication program using CHMPX can be implemented with your PHP application program.
CHMPX phpext provides all functions and features of CHMPX.

For details, please refer to Codes on github, Documents.

K2HASH

K2HASH is a NoSQL Key Value Store(KVS) library. K2HASH has basic KVS functions and unique features shown below.

For details, please refer to Codes on github, Documents.

K2HASH nodejs addon

K2HASH nodejs addonK2HASH nodejs addon - NoSQL Key Value Store(KVS) nodejs library) is a Node.js addon library of K2HASH.
Using this library, you can operate K2HASH’s data from your Node.js based JavaScript program.
K2HASH nodejs addon provides all functions and features of K2HASH.

For details, please refer to Codes on github, Documents.

K2HASH java driver

Java Driver for K2HASH(Java Driver for K2HASH) is an official Java client library for K2HASH.
This library provies all functions and features necessary for the slave side client of distributed KVS of K2HASH.
That means eveyone is able to implement K2HASH’s slave side client application by using this library.

For details, see the Code on GitHub, Documents.

K2HASH golang

K2HASH golang (K2HASH golang - NoSQL Key Value Store(KVS) Go library) is K2HASH’s Go language client library.
You can use this library to implement K2HASH slave-side client applications in Go language.
K2HASH golang provides all the functions and features of K2HASH.

For details, see the Code on GitHub, Documents.

K2HASH phpext

K2HASH phpextK2HASH phpext - NoSQL Key Value Store(KVS) php extension library) is a php extension library of K2HASH.
Using this library, you can operate K2HASH’s data from your PHP application.
K2HASH phpext provides all functions and features of K2HASH.

For details, please refer to Codes on github, Documents.

K2HASH python

K2HASH pythonK2HASH python - NoSQL Key Value Store(KVS) python library) is a python library of K2HASH.
Using this library, you can operate K2HASH’s data from your Python application.
K2HASH python provides all functions and features of K2HASH.

For details, please refer to Codes on github, Documents.

K2HTP_DTOR

K2HTP_DTOR(k2hash Transaction Plugin Distributed Transaction Of R epeater) easily duplicates the K2HASH data by transferring the transaction data of K2HASH to another host using CHMPX.

This library is a standard transaction plugin library compatible with the K2HASH library provided by Yahoo! JAPAN.
This provides a general tool for users to process their own transactions as transaction triggers.

For details, please refer to Codes on github, Documents.

K2HTP_MDTOR

K2HTP_MDTOR(k2hash Transaction Plugin Multiple Distributed Transaction Of R epeater) easily duplicates the K2HASH data by transferring the transaction data of K2HASH to another host using CHMPX.

The main purpose of K2HTP_MDTOR, which loads multiple K2HASH transaction plugins, is to call the arbitrary function defined in them. When calling the each function, K2HTP_MDTOR passes K2HASH transaction logs to it as a function’s parameter. A common K2HASH transaction plugin loads no other one. We recommend you to use K2HTP_MDTOR if you want to use multiple K2HASH transaction plugins.

For details, please refer to Codes on github, Documents.

FULLOCK

FULLOCK(Fast User Level LOCK library) is a low-level lock library that provides a safe and fast locking function for multiprocess, multithreaded programs.
This library is also used by other AntPickax products such as K2HASH, CHMPX.

For details, please refer to Codes on github, Documents.