4 avg. rating (80% score) - 5879 votes
Finding another job can be so cumbersome that it can turn into a job itself. Prepare well for the job interviews to get your dream job. Here's our recommendation on the important things to need to prepare for the job interview to achieve your career goals in an easy way. Scalability is the term used to signify the capability of a system to manage huge amount of work load. Scalable software tests the applications and generates data to let us know how much is the scalability. Candidates should have basic knowledge on how this is done in order to get a job. Follow our Wisdomjobs page for Scalable Software job interview questions and answers page to get through your job interview successfully in first attempt.
Scalability is the ability of a system, network, or process to handle a growing amount of load by adding more resources. The adding of resource can be done in two ways
This involves adding more resources to the existing nodes. For example, adding more RAM, Storage or processing power.
A cluster is group of computer machines that can individually run a software. Clusters are typically utilized to achieve high availability for a server software.
Clustering is used in many types of servers for high availability.
App Server Cluster
An app server cluster is group of machines that can run a application server that can be reliably utilized with a minimum of down-time.
Database Server Cluster
An database server cluster is group of machines that can run a database server that can be reliably utilized with a minimum of down-time.
Middle tier clustering is just a cluster that is used for service the middle tier in a application. This is popular since many clients may be using middle tier and a lot of heavy load may also be served by middle tier that requires it be to highly available.
Failure of middle tier can cause multiple clients and systems to fail, therefore its one of the approaches to do clustering at the middle tier of a application.
In java world, it is really common to have EJB server clusters that are used by many clients. In general any application that has a business logic that can be shared across multiple client can use a middle tier cluster for high availability.
Load balancing is simple technique for distributing workloads across multiple machines or clusters.
The most common and simple load balancing algorithm is Round Robin. In this type of load balancing the request is divided in circular order ensuring all machines get equal number of requests and no single machine is overloaded or underloaded.
The Purpose of load balancing is to
Most common load balancing techniques in web based applications are
Sticky session or a session affinity technique another popular load balancing technique that requires a user session to be always served by a allocated machine.
In a load balanced server application where user information is stored in session it will be required to keep the session data available to all machines. This can be avoided by always serving a particular user session request from one machine.
The machine is associated with a session as soon as the session is created. All the requests in a particular session are always redirected to the associated machine. This ensures the user data is only at one machine and load is also shared.
In Java world, this is typically done by using jsessionid cookie. The cookie is sent to the client for the first request and every subsequent request by client must be containing that same cookie to identify the session.
There are few issues that you may face with this approach
The client browser may not support cookies, and your load balancer will not be able to identify if a request belongs to a session. This may cause strange behavior for the users who use no cookie based browsers.
In case one of the machine fails or goes down, the user information (served by that machine) will be lost and there will be no way to recover user session.
Fail over means switching to another machine when one of the machine fails.
Fail over is a important technique in achieving high availability. Typically a load balancer is configured to fail over to another machine when the main machie fails.
To achieve least down time, most load balancer support a feature of heart beat check. This ensures that target machine is responding. As soon as a hear beat signal fails, load balancer stops sending request to that machine and redirects to other machines or cluster.
In Java world, JEE applications use the concept of distributable web applications to provide session-failover and enable load balancing.
You can set a JEE application to support session replication by adding distributable tag in web.xml file.
The CAP Theorem for distributed computing was published by Eric Brewer, This states that it is not possible for a distributed computer system to simultaneously provide all three of the following guarantees:
ACID is a acronym which is commonly used to define the properties of a relational database system, it stand for following terms:
Atomicity - This property guarantees that if one part of the transaction fails, the entire transaction will fail, and the database state will be left unchanged.
Consistency - This property ensures that any transaction will bring the database from one valid state to another.
Isolation - This property ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially.
Durable - means that once a transaction has been committed, it will remain so, even in the event of power loss.
BASE properties are the common properties of recently evolved NOSQL databases. According to CAP theorem, a BASE system does not guarantee consistency. This is a contrived acronym that is mapped to following property of a system in terms of the CAP theorem
Scalable Software Related Tutorials
|Networking Tutorial||Git (software) Tutorial|
|Software Development Lifecycle (SDLC) Tutorial||Adaptive software development Tutorial|
Scalable Software Related Interview Questions
|Networking Interview Questions||CCNA Interview Questions|
|CISSP(Certified Information Systems Security Professional) Interview Questions||Database Administration Interview Questions|
|Git (software) Interview Questions||Software Development Lifecycle (SDLC) Interview Questions|
|Router Interview Questions||Computer Systems Analyst Interview Questions|
|Electronic Devices and Circuits Interview Questions||Network Troubleshooting Interview Questions|
|SQL Server Architect Interview Questions|
Software Architecture& Design
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.