OpenStack — The Cloud Operating System

19 Oct 2012 by

It is an innovative idea of design this application stack in the cloud era. According to openstack.org, OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

 

 

No responses yet

Google BigQuery

04 Sep 2012 by

Google designed BigQuery as a cloud service for running fast queries against massive datasets, but with lofty ambitions there’s always room to take a step back. Now, users that don’t require super speed can run batch queries, and can connect to the service using Microsoft Excel.

For more information please visit official page: https://developers.google.com/bigquery/

Google BigQuery Service allows you to run SQL-like queries against very large datasets, with potentially billions of rows. This can be your own data, or data that someone else has shared for you. BigQuery works best for interactive analysis of very large datasets, typically using a small number of very large, append-only tables. For more traditional relational database scenarios, you might consider using Google Cloud SQL instead. You can use BigQuery through a web UI called the BigQuery browser tool, the bq command-line tool, or by making calls to the REST API using various client libraries in multiple languages, such as Java, Python, etc.

Features

BigQuery offers the following features:

  • Speed – Analyze billions of rows in seconds.
  • Scale – Terabytes of data, trillions of records.
  • Simplicity – SQL-like query language, hosted on Google infrastructure.
  • Sharing – Powerful group- and user-based permissions using Google accounts.
  • Security – Secure SSL access.
  • Multiple access methods – Connect to BigQuery using the BigQuery browser, the bq command-line tool, the REST API, or Google Apps Script.

Best Uses

BigQuery is ideal for the following uses:

  • Ad-hoc analysis
  • Standardized reporting
  • Data exploration
  • Web applications

No responses yet

Moore’s Law is Slowing Down: Prof. Michio Kaku

22 May 2012 by

Moore’s Law is going to slow down because of the capacity of silicon technology; meaning that computer power is not going to be exponentially increased. The two basic problems are heat and leakage. If the chip is too small, it is so intense that can melt the chip. Leakage: if it is too small and so intense, the chip may not handle the electron running inside the chip. Prof. Michio Kaku, physicist, is trying to explain why it would be happened. Intel also admitted by start moving to 3D chip, he noted. He also gives some candidates for post-silicon era. They are molecule computer and quantum computer.

Please watch his talk for detail.

No responses yet

Token Ring: Mutual Exclusion in Distributed Systems

08 Apr 2011 by

Token Ring Mutex

Token Ring Mutex

Token ring is one among mutual exclusion algorithm in distributed systems that does not involve with a server or coordinator. A token is passed from one node to another node in a logical order. A node received token has a proper right to enter the critical section. If a node being holding token does not require to enter critical section or access a shared resource, it just simply passes the token to the next node.

Continue Reading »

No responses yet

Distributed Algorithm: Mutual Exclusion in Distributed Systems

06 Apr 2011 by

Distributed Algorithm in Mutex

Distributed Algorithm in Mutex

Distributed algorithm in mutual exclusion takes advantage of multicast protocol to broadcast the requested message to enter the critical section. Once a node sent requested message to every node on the network, every node must send back a message stated that it allows that node to enter the critical section. The node sent requested message must receive a gaining access message from every node on the network before it can actually access to a shared resource. If one node fails to send a gaining access message, then the node cannot access the shared resource.

Because there is no centralized coordinator, it is likely that two or more node send request message simultaneously. However, logically the arrival time stamp of each request message is never been the same. We can use Lamport clock algorithm for this scenario.

Continue Reading »

No responses yet

Centralized Algorithm: Mutual Exclusion in Distributed Systems

04 Apr 2011 by

Centralized Algorithm in Mutex

Centralized Algorithm in Mutex

Semaphore and Monitor that protected critical section in single system are no longer appropriated in distributed systems. So in distributed systems, we must use a special algorithm to achieve mutual exclusion. There are 3 basic algorithms to be considered and work as a baseline for developing another mutual exclusion algorithm in distributed systems. Those 3 are:

  • Centralized algorithm
  • Distributed algorithm
  • Token ring algorithm

Prerequisite

Please refer to these articles for better understanding of mutual exclusion:

Continue Reading »

No responses yet

Monitor: Mutual Exclusion in Single System

01 Apr 2011 by

Monitor

Monitor

Monitor and Semaphore is somehow the same. However, monitor adds more abstract layer to semaphore. Semaphore refers to operation level while monitor refers to class level which is the combination of many operations and variables.

Monitor

By definition, a monitor is a collection of procedures and data that are all grouped together in a class. Just as semaphore, monitor ensures that a particular thread can exclusively access to a shared resource at a specific time. Monitor may implement semaphore and condition variable over the critical section to provide the best total single flow of modifying the resources.

Continue Reading »

One response so far

Semaphore: Mutual Exclusion in Single System

29 Mar 2011 by

Semaphore

Semaphore

Mutual Exclusion is required both in single system and distributed systems to protecting the shared resource from being modified concurrently. In this article, we will discuss the mutual exclusion in single system by using Semaphore. Finally we will follow by giving Java example. Before reading this article, it is highly recommended you read the Principle of Mutual Exclusion.

Semaphore

Semaphore is a flag that railroad engineers would use when trains enter a shared track. Semaphore here refers to a mechanism to ensure only one thread or process to access a shared resource. To implement semaphore in Java, synchronized(this) keyword should be used to surround critical section. The code from previous article will look like this.

Global variables

int x = 6;
int y = 0;

FooThread

void foo(){
  synchronized(this){
    x++;
    y = x;
  }
}

BarThread

void bar(){
  synchronized(this){
    y++;
    x += 3;
  }
}

Continue Reading »

2 responses so far

Principle of Mutual Exclusion

28 Mar 2011 by

Mutual Exclusion is a process that prevents multiple threads or processes from accessing shared resources at the same time. The problem is coming from the fact that in both distributed systems and single system, several threads or processes share a resource but cannot use it concurrently. Mutual Exclusion, Synchronization and Data Coordination are commonly use interchangeably; or just MUTEX for short.

Rationale

This will guide you to the root of the problem and give you solution.

Let see the two blocks of code that runs in parallel called foo() and bar().

The initial state: x=6 and y=0.

FooThread

void foo()
{
   x++;
   y = x;
}

BarThread

void bar()
{
   y++;
   x += 3;
}

Continue Reading »

2 responses so far

Thread Pool

18 Mar 2011 by

Thread Pool

Thread Pool

In previous post you may understand the architecture of single thread and thread per request in distributed systems. Here we will see another architecture called Thread Pool. Thread pool pre-defines a number of thread running in its pool. Let’s say we have 2 threads in the pool, then the server is capable of running only 2 requests at the same time. Other requests must wait in queue until the 2 threads in the pool finish their work. In real world applications, we see a lot of servers fall into this category. For example, Apache web server, IIS server, etc. The advantages and disadvantages are discussed below:

Continue Reading »

No responses yet