Skip to main content

Posts

Showing posts from 2010

Oracle Partitioning

There are many compelling reasons to implement Oracle partitioning for larger databases, and Oracle partitioning has become the de-facto standard for systems over 500 gigabytes.  Oracle partitioning has many benefits to improve performance and manageability: Faster SQL – Oracle is partition-aware, and some SQL may improve is speed by several orders of magnitude (over 100x faster). Index range scans – Oracle partitioning physically sequences rows in index-order causing a dramatic improvement (over 10x faster) in the speed of partition-key scans. Full-table scans – Oracle partition pruning only accesses those data blocks required by the query. Table joins – Oracle partition-wise joins take the specific sub-set of the query partitions, causing huge speed improvements on nested loop and hash joins Updates – Oracle parallel query for partit

What is Oracle Parallel Query?

Oracle Parallel Query (formerly Oracle Parallel Query Option or PQO) allows one to break-up a given SQL statement so that its parts can run simultaneously on different processors in a multi-processor machine. Typical operations that can run in parallel are: full table scans, sorts, sub-queries, data loading etc. he foundation of Oracle Real Application Clusters revolves around parallelism. The original name for RAC was OPS, for Oracle Parallel Server. With RAC, it is possible for an intra-parallel operation to utilize the processors across the nodes, using the second argument in the Oracle PARALLEL hint.  This gives an additional degree of parallelism while executing in parallel. Oracle Parallel Query in a distributed environment: In a distributed environment, pieces of a table may reside on many remote servers. You can access all of the remote rows in a single q

How to speed up SQL execution?

The most expensive step in the SQL preparation process is the generation of the execution plan, particularly when dealing with a query with multiple joins. When RDBMs evaluates table join orders, it must consider every possible combination of tables. For example, a six-way table join has 720 (permutations of 6, or 6 * 5 * 4 * 3 * 2 * 1 = 720) possible ways that the tables can be joined together. In Oracle, optimizer_search_limit and optimizer_max_permutations parameters work together to place an upper limit on the number of permutations the optimizer will consider. But setting these values will not guarantee the best results. Hints for Your SQL Statement Hints are instructions that you include in your SQL statement for the optimizer. Using hints, you can specify join orders, types of access path, indexes to be used, and the intended optimization goals. You must place the hints within /*+ <h

Oracle scalability solutions - Oracle RAC

RAC stands for Real Application Clusters. Oracle has a host of tools that facilitate scalability. Oracle RAC is commonly used for scalable Oracle solutions. Oracle Real Application Cluster (RAC) allows multiple nodes in a clustered environment to mount and open a single database that resides on shared disk storage. Should a single system (node) fail, the database service will still be available on the remaining nodes. RAC has the ability to quickly add an entire server to a cluster increasing the horsepower without effecting end-user response time. RAC is a recommended solution when you have saturated a single server. Grid Computing The idea of Grid computing arose from the need to solve highly-parallel computational problems that were beyond the processing capability of any single computer. Oracle Grid computing technology represents a significant rethinking of the traditional role of software infras

Does Multi-Tenancy really Matters?

This being an interesting topic of discussion in SAAS community. The answer to the above question probably depends on whom you are talking to. As an old saying - the outcome of fight between an alligator and bear depends on where it take place. For the customers, they don't worry much about the architecture when: The SLA's are met- meaning the application scales as required Security and privacy of the data is maintained. The activity of one customer does not adversely affect another customer in terms of performance or security. Each customer is able to customize the application as they require. For the service provider the multi-tenancy matters as The architecture reduces the hardware cost- there will be significantly less number of boxes to manage. Far less number of da

SAAS - Scale Up vs. Scale Out

Application scalability is the ability to increase application throughput by increasing the hardware support to the host application. Put it differently, if an application is able to handle 100 users on a single CPU hardware, then the application should on be able to handle 200 users when the number of process are doubled. Major server vendors continue to provide increasingly larger and more powerful machines. Recently, scale-out solutions, in the form of clusters of smaller machines, have gained increased acceptance. Vertical scalability is adding more memory and CPUs to a single box, or scaling up. Vertical scalability or scaling up is well suited for database tier. Horizontal scalability or scaling out is adding more boxes of similar memory and CPU. Scale out is ideal for web-tier. Researches have shown that "pure" scale-up approach is not very effective in usin

SAAS Simple Maturity Model

There are two architectural models – commonly referred as SAAS Maturity models- that describe the transition of a service to what is called Multi-tenant efficient, highly scalable application. The SAAS Maturity model described by Microsoft has four distinct stages and is illustrated below. Another similar well-known model for SaaS-maturity is known as Forrester-model but adds another stage known as "Dynamic Business Apps-as-a-service". The three key Attributes of a SAAS Architecture: Configurability: Metadata used to configure the way the application behaves for customers Multi-tenant Efficiency : Maximizing the sharing of resources across tenants Scalability: Maximizing concurrency, resource efficiency SAAS Simple Maturity Model (Microsoft, 2006) SaaS Maturity Model (Forres

SAAS – Scalability Challenges

Scalability is a desirable property of any SAAS based architecture to have the ability to handle growing amounts of work in a graceful manner. Typically there can be two types of scalability issues- increase in load and administrative scalability. SAAS Architecture Different Tiers • Data Storage Tier • Data Access Tier • Application Tier o Identity Management . Separate Identity Management solution. . Authentication using LDAP. . Sun Java Identity Management Suite2 / Microsoft Active Directory. o Application server . What frame-work to use. o Integration Server . How the corporations integrate to the existing data sources. . Build a Web Service API to interact with Corporate data source. . Enterprise integration Server (EI) for corporate data access. . Host an EI Server. . Need to handle

Web Service Framework comparison

Web Services is one of those concepts made all the more difficult to understand because of the myriad acronyms and abbreviations that are superfluous in any discussion. Covering all the concepts and standards associated with Web Services is a vast topic in itself. There are a large number of standards around Web Services. These standards define the norms of a Web Services implementation and ensure that a Web Services is accessed independently of the client platform. There are numerous frameworks available to select to build web service today. Below is the most widely used ones. Product Does it fit my need? Axis2.0 Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis SOAP stack to build on the lessons learnt from Apache Axis. An advantage of Axis 2 is its support for the binding frameworks XMLBeans. Axis 2 with XMLBeans is widely

Java Web Framework Comparison

Wikipedia has listed over 85 web applications frame works with Java based on the top – 28. Below table lists of most widely used web Application Frameworks products available today. Product what type of project is best fit? Struts 2 The new version Struts 2.0 is a combination of the Sturts action framework and Webwork (a total redesign). Struts2 may a good fit for an enterprise application when there is existing Struts resource and projects of medium complexity. Spring MVC Good choice for medium sized project. Convention-based defaults for controllers, model object names, and view resolves. Spring MVC addresses request-driven processing at the HTTP level. It does not aim to provide a component model like JSF. Stripes

CXF – Webservice Example – Contract first

We will use the same WSDL document that we used in our earlier example. The contract is given below: Step: 1 Run the wsdl2java tool to generate the requires service class, JAXB input output message classes. wsdl2java.bat -d src -ant -impl -server rateService.wsdl This command will generate: JAXB Input and Output message classes, Service Interface, Service Implementation class, Standalone Server class and an ant build file to build the service. If you open up these files in the editor, then you see various JAXB annotations on classes and methods which are used to map a Java class to XML. It will also generate Request and Response Wrapper classes as with the JAX-WS specification. It also generate Request and Response Wrapper classes as with the JAX-WS specification

CXF Example –Web Service Using Spring and Maven

Apache CXF is an open source services framework. CXF helps you build Web Services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI. Support for bottom up approach and top down approach. Support for Standards JAX-WS, JSR-181, SAAJ, JAX-RS SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM, WS-Policy WSDL 1.1 MTOM Building Web Services – Example 1 Develop a simple Web Service using CXF framework. The example in this case is an InterestRate Service. Tools / technologies Version CXF 2.1 Maven 2.0 Tomcat apache-tomcat-6.0.24 JDK java version 1.6.0_20       The Application Scope The "Interest Rate Service" application demonstrates how easily you can develop a Web Service using CXF frame work. The WSDL service definition defines three operations. Below is the InterestRateService interface.   @WebS