MckoiDDB Network Documentation

This document covers the network level architecture of MckoiDDB and the individual software elements needed to set up and administer a functioning networked storage system in MckoiDDB.

Overview

MckoiDDB is a distributed storage system, which means MckoiDDB will manage the storage resources available in a network of computers and provide a standard API (the MckoiDDB Client API) for accessing data across the networked resources. Distributed storage systems aim to address the following important issues in data management and processing;

To manage the resources available in a network and provide access to the data store by MckoiDDB clients, an application service is installed on each machine in the network and a simple administration interface is provided to manage the network. This documentation is split into a section that describes the unit of storage in MckoiDDB, a section on the roles assignable to machines in a MckoiDDB network installation, and a section on the details of the administration interface.

The unit of storage in MckoiDDB

All MckoiDDB data structures are contained in a unit of storage called a 'Block'. Blocks are simply structured data objects that can store data and structural metadata elements of information in a database. MckoiDDB stores each Block as a file in the file system of a device in the network. A Block is usually copied multiple times (typically three times) over different devices for fault tolerance and load balancing reasons.

The diagram below demonstrates a set of four blocks stored over a distributed network of five devices, each block replicated three times;

When the MckoiDDB application service is installed on a machine, a resource directory in the local file system must be assigned. The resource directory is used to contain the Block files for that network device. Each Block file is named by its unique numerical value.

{Reasons why we store blocks like this - gives a client multiple options for places where to fetch some piece of data so distributes load, and provides fault tolerance if a device dies, but means updates must be replicated over multiple devices. }

The MckoiDDB machine roles

Each machine in a MckoiDDB network runs a service application that performs a role of the distributed system. There are three roles that can be assigned to a machine installation, described below;

An operational MckoiDDB distributed network must have three or more Block Servers, one Manager Server and one Root Server. It is currently not possible to assign multiple Manager and Root server roles, however the Manager and Root server roles have been designed so that the data they manage is easily cached, and the most frequently used functions are very simple operations. This enables high throughput of the operations on the machines assigned these roles. A future goal of MckoiDDB is to provide replication of the Root and Manager server roles to address fault tolerant requirements. It is recommended the machines assigned to the Manager and Root server roles are high quality server machines with a large amount of RAM.

The administrator tool allows a machine to be assigned multiple roles (for example, a machine can be assigned as both a Block Server and Root Server), but for matters of fail safety it is recommended each physical device is assigned a single role only.

Setting up a MckoiDDB installation

The first step to setting up a MckoiDDB installation is to install and run the application service on each machine in the network you wish to be part of the distributed system.

(TODO: The command line service installation)

If you do not have a network, you may wish to run a test installation on your local machine.

(TODO: The command line test installation)

Once the application services are running on the machines in your network, you must next run the administration service. The administration tool provides a simple web based interface for managing the resources of the network. The administration service should be run on any machine that has access to the network. To start the administration tool, use the following command;

(TODO: The command line admin start fun)

Once the tool is running you can point your web browser to the address and port of the administration server.

The following is a walk-through of using the administration tool to setup a simple test network which has eight instances of the MckoiDDB service running on ports 3000 through 3007 of a machine with an IP address of 192.168.1.102.

Step 1: Specify the machines in the network

On first going to the administration page you should see a screen similar to the following;

The page asks you to enter the location of all machines in the network that you wish to be part of the distributed network and are running the MckoiDDB service. This information is necessary for telling the administration tool what machines it must administer. Once the location of all the services have been entered, click the 'Add Servers' button and the machines being added are confirmed.

Step 2: Assign roles to the machines

Once all the machines are in the administration tool, click on the 'Network Status' link. The Network Status page displays the current status of all machines in the network and allows the administrator to assign a role to a machine. The first time going to this screen will look as follows;

Note that the administration tool notifies that there are problems with the role assignments - there are no Block Servers assigned, and no Manager or Root Server. In this walk through, we will assign the MckoiDDB services on port 3000 through 3006 as Block Servers, and the MckoiDDB service on port 3007 as both a Manager and Root server. To make these assignments, the Block Servers are highlighted and the Manager and Root Server is selected from the pull-down options, as show in the following screenshot;

Before making the changes, the administration tool will display the operations needed to make the assignments to the network, and allow the administrator to confirm the changes. The following screenshot shows the page after 'Save Changes' is clicked;

If the changes look correct, click 'Make These Changes', otherwise the administrator can go to the previous page and set the assignments again.

After the changes are made the administration tool returns to the Network Status page. The following screenshot shows the completed role assignments.

(Describe adding/removing machines from the network)

(Describe the network layer which deals with message passing, data distribution policies, and client API services).

The text on this page is licensed under the Creative Commons Attribution 3.0 License. Java is a registered trademark of Sun Microsystems, Inc.
Mckoi is Copyright © 2000 - 2012 Diehl and Associates, Inc. All rights reserved.