Apache

What is Apache?

Apache is a remarkable piece of application software.  It is the most widely used Web Server application in the world with more than 50% share in the commercial web server market.  The word, Apache, has been taken from the name of the Native American tribe ‘Apache’, famous for its skills in warfare and strategy making. It is a modular, process-based web server application that creates a new thread with each simultaneous connection.

How to install Apache

There are numerous ways of installing the package or application.  There are enlisted below –

  1. One of the features of this open source web application is that anyone can make installer as per their own environment. This has allowed various vendors like Debian, Red Hat, FreeBSD, Suse etc. to customize the file location and configuration of apache taking into account other installed applications and base OS.
  2. Apart from installing it from a vendor based installer, there is always the option of building and installing it from the source code. Installing Apache from source file is a platform independent & works for all OS.

The apache web server is a modular application where the administrator can choose the required functionality and install different modules as per his/her requirement.

All modules can be compiled as a Dynamic Shared Objects (DSO is an object file that could be shared by multiple apps while they are executing) that exists separately from the main apache file.  The DSO approach is highly recommended, it makes the task of adding/removing/updating modules from the servers configuration very simple.

What is Apache Cassandra?

Cassandra is a distributed database management system designed for handling a high volume of structured data across commodity servers

Cassandra handles the huge amount of data with its distributed architecture. Data is placed on different machines with more than one replication factor that provides high availability and no single point of failure.

In the image below, circles are Cassandra nodes and lines between the circles shows distributed architecture, while the client is sending data to the node.

Apache Cassandra Features

There are following features that Cassandra provides.

  • Massively Scalable Architecture: Cassandra has a masterless design where all nodes are at the same level which provides operational simplicity and easy scale out.
  • Masterless Architecture: Data can be written and read on any node.
  • Linear Scale Performance: As more nodes are added, the performance of Cassandra increases.
  • No Single point of failure: Cassandra replicates data on different nodes that ensures no single point of failure.
  • Fault Detection and Recovery: Failed nodes can easily be restored and recovered.
  • Flexible and Dynamic Data Model: Supports datatypes with Fast writes and reads.
  • Data Protection: Data is protected with commit log design and build in security like backup and restore mechanisms.
  • Tunable Data Consistency: Support for strong data consistency across distributed architecture.
  • Multi Data Center Replication: Cassandra provides feature to replicate data across multiple data center.
  • Data Compression: Cassandra can compress up to 80% data without any overhead.
  • Cassandra Query language: Cassandra provides query language that is similar like SQL language. It makes very easy for relational database developers moving from relational database to Cassandra.

Apache Derby implements a robust and reliable embedded database system that can be integrated with Java applications. Its performance is proven by the large number of software solutions that rely on its feature set to efficiently manage large databases.

Its powerful database engine provides support for the JDBC and SQL standards, being able to run in the background and requiring minimum user feedback. In embedded mode, Apache Derby requires all connections to be sourced from the same Java virtual machine, which means that the database can only be accessed by the host application.

Alternatively, you can deploy Apache Derby as a client-server utility, designed to allow multiple users in the network to connect to its database. The main function of the server is to process all the requests that come from client applications over TCP/IP.

The built-in JDBC scripting tool can be used for running queries against the database, while the ‘dblook’ utility performs SQL dumps for database schemas.

The power of Apache Derby resides in its simplicity, ease of deployment and configuration, which makes it very easy to handle. Creating a new database instance and a system of tables, managing schemas, views, functions and procedures can be easily done even by those who have neved worked with databases before.

Apache Derby can handle heavy data loads, with more than satisfactory capabilities on multiple operating systems. While it scores above the average database management systems when it comes to flexibility and ease of use, it lacks the security features that some of its competitors provide.