Showing posts with label Architectures. Show all posts
Showing posts with label Architectures. Show all posts

Friday, April 23, 2010

Oracle Maximum Availability Architecture

I am excited to be going for a 3 day workshop by Oracle on the following week. At present I only aware of Oracle Maximum Availabilty Architecture comprising of the 4 parts:-
  • Real Application Cluster(RAC)
    • This is to protect for any DB server failure
  • Automatic Storage Management(ASM)
    • This is to protect from DB Storage failure
  • Flashback
    • This is to perform a quick undo on user or admin errors.
  • Data Guard
    • This is for the automated failover of DB system to standby DB site.
I do wonder if the Change Assurance Feature part of this architecture. I hope to learn more and how the MAA is integrated, deployed and what is the best practices.

Friday, March 19, 2010

FB Architecture - Brief

One of the most, if not the most often used social networking site, facebook. Today, I will try to summarize the Facebook(FB) architecture of what I have understood from Aditya(Dir. Engineering, Facebook) talk in Dec 08. (Note: this is my intepretation of the architecture look from the talk.)



Basically FB utilized the LAMP framework, but the modified version, LAMP stands for Linux, Apache, Mysql and PHP/Perl. The wise people at FB has modified and enhance most of the LAMP components, especially Mysql & PHP while including additional services to create FB. Web 2..0 tools like the Scribe, Thrift & ODS  were employed in developing the FB. A giant hash memory table or Memcache also helped to create a fast responsive FB. Services are like, newsfeed,Adserver, Search, network selector,CSS Parser, ShareScrapper, mobile  and blogfeed make up the complete FB architecture.

A notable mentioned in FB design is 'memcache'. Why memcache?. Its is faster and of high performance, alleviate the load on databases, cache serialized PHP data structures and multi-get to retrieve data. FB has modified memcache to run over UDP reducing the overheads and the persistent connection of TCP.

One key note that data can be slightly delay in facebook and need not be accurately realtime, although FB will try to be consistent. Data is also sorted in recentcy layout for optimizations. Data of the form key-value pair is evenly distributed across multiple DB instances and used LB. This allow FB to scale fast and do not require replications. The query in FB application is often a simple query type and they do not allow joins, and need not too.

One thing to always remember is that FB is not just a site about social-usages, but it also allow others to contribute and grow its applications. Developer can write FB apps, and using FBML extensions to easily interface and publish program. Of course the FB application's one developed has to be hosted somewhere other than the FB site. This flexibility allow fast adoption and wide use of FB.

Monday, March 15, 2010

Oracle Database Physical & Logical storage architecture

Oracle storage design of database architecture is interesting and good. The concepts of having Physical & Logical components are really helpful. For example, DBAs can maintain the physicals structures while the logical instance are still running.

Clearly isolating this two tiers are helpful to DBA & developers. Developer do not need to remember which data file that the database is assigned. Administrator can scale the Tablespaces as and when needed to expand or reduce by adding or reducing the data files.

PHYSICAL

Datafiles

  • Take note : A datafile can only be assigned to a tablespace, but a tablespace can have many datafiles

  • When ever user request data, oracle retrieve that data from these datafiles with the help of processes in the SGA (System Global Area). Manipulated data is written back to these datafiles, so that changed data is available to all users.

Beside the physical data files, there also other physical files like the redo log files, and control files.

Redo Log files

  • The redo log files store the change data entries generated by DML. 
  • It will be used during database recovery processes. 
  • Ofter  redo log files  are  also archived, and it is copied offline for recovery purpose. (archived redo logs)

Control Files

  • Control files is important file to start the DB instances.It contatin the initiatisation info of the DB(init.ora)
  • It record information about physical structure of database, such as datafiles size and location, redo log files location.


LOGICAL

Tablespace
  • Tablespace is a logical structure which holds other logical structure of database. 
  • This is further broken into segments. segment is further broken into extents, and extent intodata block. 
  • Tablespaces have two main type: Data & Index TS and Undo TS.
Segments
  • Table in the database will store into a  Data Segment.
  • Index in the database will  be store in Index Segment. 
  • Temporary Segment
  • Rollback Segment.

Extents
  • A segment is further broken into extents. 
  • An extent consists of one or more data block. 
  • When the database object is enlarged, an extent will be allocated. 
  • An extent cannot be named.

Data Block
  • Smallest unit of storage in the database. 
  • The data block size is a specific number of bytes within tablespace and it has the same number of bytes. 
  • It consist of multiple operating system blocks.

Thursday, March 11, 2010

Architecture concept for web 2.0

Architecture has made design and building IT into a more consistent and manageable approach. I have recently study some architectural patterns and perhap it is a good idea for my record purpose to blog this web 2.0 pattern in for future reference.

Basically there 5 main component groups for web 2.0.

Design &
Devolopment   --> Client/App Tier
                                      |
        |                      Connectivity Tier
        |                              |
        |                      Service Tier
        |                             |
     [ Resource Tier               ]


Client/App Tier
This tier allow users to interface the services. It is where users interact with the web 2.0.
Component such VM,portals,media renditions, security controls maybe present in this tier.

Connectivity Tier
This tier support the standard connection protocols that support all the connectivity matter in the architecture. Most often the technology is define by community experts like W3C, OASIS, etc.(e.g like XML/HTTP)

Service Tier
This is where the resources is package and group as a service. This is also where BusinessRule(BR) and workflow is added.( e.g PHP, ASP, Rails, SOAP)

Resource Tier
This tier support the repository of data and support processing that is needed to create Rich Internet Application.(ERP,CRM,DB,MQ, LDAP,LegacySystem)

Design & Development
This architecture tier support the development of all the other 4 architectural components by providing standardization and control in the Integrated Development Environment(IDE) for example.