Cassandra is a fast distributed database.
It has several defining features:
- Built in high availability. – Any node can handle read and write requests and your data is replicated to x nodes so regardless of which node (or even a data center) goes down, you will still have access to read and write your data.
- Linear Scalability. – Doubling the number of (identical) nodes should double the write performance. Its basically as simple as that was all nodes can handle all operations and there is no central control.
- Predictable performance. (i.e. doubling the number of identical nodes should double the write throughput)
- no single point of failure. -nodes can go down and come back up without the front end application becoming aware of it.
- Multiple Data Centres catered for and taken advantage of out as standard.
- Built to run on commodity hardware – so you can run it on lots of $1000 servers rather than 1 or 2 $100000 servers.
- Easy to manage operationally. – The system is designed to need very little ops input.
Continue reading “What is apache Cassandra?”
This intro to Cassandra is taken from the DataStax course. I don’t necessarily agree with everything – particularly their take on what a traditional RDBMS can and can’t do but I have included their view here for completeness.
Cassandra is designed for ‘Big Data’ workloads. Im order to understand the characteristics of Big Data, lets first define ‘Small Data’:
This would typically be a volume of storage that would fit on 1 machine and a RDBMS is typically fine and able to handle the number of operations and the quantity of data. The system will support a number of concurrent users in the hundreds. It fully supports ACID.
When you want to scale such a system, you are going to do it vertically first – with a bigger host, more RAM or processors.
Can Relational databases support big data?
Continue reading “Relational Databases and Big Data workloads.”
If you have ever wondered what Hahoop, Memcached, NoSQL, Mapreduce or many of the other data based technologies that are springing up are, this is a superb whistle stop tour or the market.
Hadroop is basically a system for distributing your data across multiple storage servers that all have processing capacity. Then when you want to find out something about your data, you formulate your question and it is passed to each server which then interrogate the data that it stores.
One key point from the video is that Big Data and RDBMS technologies operate on different problems. RDBMS systems are very well suited for problems requiring OLTP and data warehouse type solutions and Big Data systems are never going to encroach on this area. Big data addresses a new problem area of unstructured data and the questions that it poses. They are 2 complementary rather than competing technologies.
Highly recommended viewing.