Tuesday, November 9, 2010

Saturday, November 6, 2010

Oracle Real Application Clusters (RAC)

Real application clustering is a method where multiple instances of oracle accessing a single data store simultaneously, with cache synchronization according to oracle global cache management technology (cache fusion).

Why actually oracle RAC is needed is worth considering. Without RAC in an environment where applications busy accessing the physical database, there is a higher chance of failure. And the reliability factor as well as the scalability factor are also considerably low. Because of these needs, RAC emerged where it could bring about a solution to the above mentioned.


Architecture is arranged in such a way that multiple nodes access the physical data sore concurrently, which can be exceeded up to eight nodes. This provides a complete clustering solution where data between applications are synced, monitored and manged. And it also restart the oracle instances.

In the oracle cluster any node is allowed to update data on the single physical database, SAN (Storage Area Network). The real advantage of this is all the nodes access the same set of data which is updated and changed live. In almost all the value critical applications such as bank systems, this is really important feature since live data is needed for processing.

Since maintaining a single database, it makes the management and administration of the database easy. Even though it shares the data store, in each database servers, it has it's own, application, logs, operating system, and database instance. What is shared here is the all the data and meta data which affects the real data.

RAC is capable of handling fail overs and load balancing as well. In an situation of failure, it can balance the load among the other servers and users won't feel any difference in the service offered to them.

Cache fusion is also another important feature associated with RAC in which instance's cache is copied to a global cache as any node can access the information fast. This allows any server to get the most updated data without actually going to the physical disk. This is like information having in cache memory of a computer.

Benefits of this RAC technology includes, reliability, recoverability, error detection and continuous operation which comes under the main category of high availability and also it supports scalability.

Friday, November 5, 2010

Oracle Database Architecture

For allmost all the application, written today, needs a database to keep the information centralized. For this purpose, a database management system may be used which will help to manage data effectively and efficiently with fast response time.

Oracle is one such famous database management system which supports many activities and supports the required efficiency and accuracy from the architecture itself.

Oracle Relational Database Management System (RDBMS) is consists of two major layers which supports for high response rate: physical layer and logical layer.

What actually happens in the physical layer is, it stores the data as it is, without any relationship among data. In simple terms if anyone peeps in to the physical layer he/she might see some data blocks bt without any idea of relationship among them.

Physical layer consists of three different file types, data files, redo log files and control files. Data files contain the information about the database, basically the raw data which resides in the database. There can be one or more datafiles present in the database and having many of them will lead to enhanced performance of the RDBMS. The maximum amount of datafiles which can be created is limited by the oracle from the variable, "MAXDATAFILES".

Second type of files in the physical layer is the "redo log" files. These files contain the data which can be used to recover the database in a situation of a database failure. It is more like a log which has all the changes of the system. And the important fact to remember is, if the redo log files are lost there is no way of recovering the database. Important to make sure the safety of these files.

Control files are the third type of files in the physical layer which has the information needed to start an instance of the oracle database. For an example it has the information of location of the redo log file etc. Since this is important aspect of the database architecture, multiple copies ot the file is saved in different places.

In logical layer of the orcle architecture, it consists of two layers inside, tablespaces and database schema. The main purpose of the tablespace is to logically group the data. In applications wt we do is to access tables in the database. That table relationship is created by this logical layer which will logically integrate the data and show the applications the relationship in data. Using this logical layer make the administration easy. And also it provide the facility for the data blocks, data files to be spread over a wide diskspace rather than having them in the same disk. Having datafiles in seperate disks have a really good advantage on performance factor as it will cause less traffic in I/O.
Some of the important concepts in this tablespace are "data block", "extent" and "segment". Data block is the actual physical size of one data block in oracle database. The contiguous data blocks are called as extent whereas a set of extents is called as segment.

Database schema is the next layer inside logical layer where the oracle instances dominate. Oracle instances are made via the System Global Area (SGA) and it is a combination of background processes and memory buffers.
SGN referes to share information where data plus control information resides in that. Program Global Area (PGA) is another word that comes along with SGA. Other than the fact that SGA is shared information and PGA is about non shared information most of things in these two are similar.

Thursday, November 4, 2010

Sunday, October 31, 2010

Types of Clustering in computing

As explained in the previous post, clustering is categorizing set objects according to the similarity factor and there were three main categories. In this post the types of clustering is discussed.

There are two main types of clustering: Hierarchical and Partitional. In Hierarchical type what it does is arranging the elements according to an hierarchy whereas partitional, partitions the elements into groups.

In hierarchical type, it consists of two methods again, Bottom-up and Top-down. In top down, it categorize the total set in to two and then the each result will continue doing that according to a similarity value. In bottom up it makes couples according to the similarity. This is a very expensive method since it involves events with each and every data. These similar couples will make a hierarchy and hence called bottom up hierarchy.

The next type, partitional will partition the total element set to the clusters. The main difference is user input about the number of clusters is required here which will make it feasible to define any number of clusters. Randomly placed elements will be moved towards the center of the clusters in the process of finding the ideal cluster. This method increase the intra cluster concentration since every element moves to the center.

Gausian matrix model (GMM) is another method of doing that which eventually falls inside partitioning type.

Following is a comparison of these three methods..



Wednesday, October 27, 2010

Clustering


Clustering as the meaning of the word itself it describes about organizing and categorizing something which is based on the similarity.

In clustering it should ensure the most important two factors, low intter cluster similarity and high intra cluster similarity which would be the basis of clusters.

According to the formal definition, computer clustering is a technique of linking two or more computers into a network in order to take advantage of the parallel processing power of those computers and normally this clustering happens in a local area network but not necessarily.

In todays context clustering is used in many practical scenarios like Load balancing, Failovers, and it also might help in partitioning the goal, preparation IT system for Artificial intelligence etc while providing scalability.

Clusters can be categorized in to three main categoris manily: High availability clusters, load balancing clusters and compute clusters. In high avilability clusters it makes sure that availability of the system is kept high with very less downtime. In this case the practical scenario will have two servers to overcome the server failures. In load balancing clusters it is there to balance the loads on servers effectively to reduce the total execution time. Doing the task parallely would reduce the time by and significan amount. Computer clusters perform parallel computing. It brings a solution to a particular problem by working parallely with the other computers and in this compute clustes there is a main computer to distribute work and to collect it back together to bring out the final outcome of the processing.