Jump to: navigation, search

RACK

Revision as of 01:07, 9 July 2014 by Takehirokaneko (talk | contribs) (Architecture Overview)

RACK (Real Application Centric Kernel)

What is RACK?

RACK provides the ability that can control OpenStack as program resource with an application. From an application, the VM instance looks like the Linux process through the RACK, so you can use "Exec", "Fork", "Kill" commands against the processes(actually VMs). It enables you to implement a large scale distributed system in a variety of programming languages on OpenStack.


You can use RACK in many cases. Followings are some examples.

  • You can implement a new architecture application. For example, you can build an application that calculates the necessary amount of computing resource(i.e. instance) depending on the data to process and launches additional instances dynamically. Then, the data will be processed very quickly since these instances work in parallel. This new architecture application is suitable for processing a large amount of data.
  • You can integrate existing system such as batch system with Hadoop and Web application using RACK. For example, RACK enables you to deploy Hadoop cluster easily and add autoscale function to your Web applications.


Features

RACK provides some features as follows.

  • Additional attributes to an instance
    In order to treat an instance like a Linux process, RACK adds some additional attributes such as PID(process ID), PPID(parent's process ID) and GroupID(process group ID) to it. In the rest of the document, instance is called "process". This enables to control OpenStack as program resource easily. For example, when a process wants to create an additional process, the process executes fork method in the program. Then, a new process(i.e. child process) is created with the same image as well as connected to the same network with its parent process's. These processes are associated with a GroupID.
  • Interprocess Communication
    Processes can send a message with each other without knowing each other's IP address.
  • Shared Memory
    This enables to store data in key-value pairs. The shared memory space is allocated per a GroupID and each space is isolated. Process can add, get, edit and delete a key-value data.
  • File System
    This enables to store files. The file system is allocated per a GroupID and each one is isolated. Process can add, get and delete files.


Architecture Overview

RACK-Architecutre-Overview.png

Resources

SourceCode