TAG | Cassandra
As data has grown exponentially at many sites, companies have been forced to horizontally scale their data. Some have turned to sharding of databases like Postgres or MySQL, while others have switched to newer NoSQL data systems. There have been many debates in the last few years about SQL vs. NoSQL data management systems and which is better. What many have failed to grasp, though, is how similar these systems are and how complex they both are to run in production in high scale.
Both of these systems represent what I call a Data Cloud. This Data Cloud is logical data set spread across many nodes. While developers have heated debates about which system is better and how to design code around it, those in DevOps usually struggle with very similar issues because the two systems are mostly the same. Both systems
- Run across many nodes with large amounts of data flowing between them and from/to the application
- Strain both the hardware of all nodes, and the network connecting them
- Maintain duplicate data across nodes for fault tolerance, and must have failover ability
- Must be tuned on a per node and cluster-wide bases
- Must allow for growth by adding additional nodes.
Running this Data Cloud in production presents a new set of challenges for DevOps, many of which are not well understood or addressed. One of the main challenges is the management and monitoring of these systems, for which few (if any) tools or products exist at this time.
When systems were smaller and you ran a single Database in production, you probably had all the necessary systems in place. With a plethora of products for Management, monitoring, visualizing data, and backups, it was not hard to be successful and meet your SLAs.
But now all this is much more complex once you move into the world of the Data Cloud. Now you have a large number of nodes, all representing the same system and still needing to meet the same SLAs as the old simple DB from before. Let us look at the challenges for running a production Data Cloud successfully.
Capacity Planning
Do you know how many nodes you need? How many nodes do you put in each replica set? How much latency and throughput do you need in your network for the nodes to communicate fast enough? What is the ideal hardware to use for each node to balance performance with costs?
Monitoring
How do you monitor dozens, hundreds or even thousands of nodes all at once? How do you get a unified view of your data cloud, and then drill down to the problem nodes? Are there even any off-the-shelf monitoring tools that can help? Your old monitoring tool won’t be very useful anymore unless you are willing to look at every node one by one to see what is going on there.
Alerting
How do you set up a common set of alerts across all nodes? And how do you keep your alert thresholds in sync as you add nodes and remove them? More importantly, even assuming you have alerting in place, once staff receives critical alerts, how will they know where to find the troubled node in the massive cloud, or whether it’s a node level issue or more global in nature? This must be done quickly during critical outages.
Data Visualization
How does your staff view the data when it is distributed? In case of data inaccuracy, how can they quickly identify the faulty nodes and fix up the data?
Performance Tuning
As performance degrades, how do you troubleshoot and identify the bottlenecks? How do you find which nodes by be the cause of the problem? How do you improve performance across all the nodes.
Data Cloud Management
How do you back up all the data while consistently tracking which nodes were backed up successfully and when? How do you make schema changes across all the nodes in one consistent step without breaking your app? And how do you make configuration changes on various nodes or across all nodes? And how do you track the configurations of each node and keep them consistent across your system?
By now you should see that there is a lot to think about before endeavoring to launch a production Data Cloud. Too many companies focus all their energies on deciding which DB or NoSQL system to use and developing their apps for it. But that might turn out to be the lesser of your challenges once you struggle to put the system into production. Be sure you can answer all the questions I have listed above before your launch.
Boris.
Big Data, Cassandra, cloud, Data Cloud, Data Management, DevOps, NoSQL
AppDynamics takes Cassandra out for Beer and Big Data
Posted by App Man | Aug, 25, 2011 | In App Man Beers
0 Comments
Welcome Cassandra, let’s start with a quick introduction of who you are and what you can do.
I am a high-performance distributed scalable database. I am really good at doing lots of operations and growing as your data needs increase, and to top that all off I run on commodity hardware which means I’m really great for running on the cloud.
Awesome, oh by the way, what beer are you drinking tonight?
Tonight I’m drinking a Shiner from good old Texas.
Excellent. First, I heard it on the grapevine and you did tell me that you’re highly available. Can you confirm or deny these rumors, and what does that really mean?
Highly available means that a distributed system can lose one or more of its servers and still keep the cluster as a whole up and running. In other words, because I’m designed to run on commodity hardware, failure should be expected. In my scenario, I can lose a server and keep on chugging along without the cluster going down.
Apache Cassandra, appdynamics, Big Data, Cassandra, Cassandra JMX, Cassandra Monitoring, DataStax, NoSQL
MongoDB Fights Back Against Cassandra
Posted by App Man | Jun, 17, 2011 | In App Man Adventures
0 Comments
AppDynamics Monitoring for Cassandra and Big Data
Posted by App Man | Jun, 01, 2011 | In News
9 Comments
With AppDynamics 3.2, we recently announced support for Big Data. This essentially allows our customers to manage application performance in production applications while aligning with the growing trend of NoSQL technologies. As applications become more distributed and complex, many organizations are looking to exploit the benefits of Cassandra, Hadoop and MongoDB (to name a few), which offer more agile data models along with superior read/write performance. They are also significantly cheaper to own and scale compared to the traditional relational database.
But as I mentioned in my previous blog, NoSQL is about “Not Just SQL” rather than waving goodbye to the relational database. So as a vendor that provides innovative APM solutions, it was a logical step for AppDynamics to provide support for NoSQL technologies at the first knock for our customers so they could monitor the performance of both their relational and non-relational databases.
This blog takes a look at the new capabilities AppDynamics Pro provides for monitoring Cassandra, a highly scalable, second-generation distributed database that has received modest adoption over the last 18 months. This adoption has been helped significantly through the publicity generated by heavyweight Cassandra users such as Facebook and Twitter. It isn’t just hype, though; at AppDynamics we’re seeing more and more of this stuff in our customers environments and they love it.
Application Performance Management, Business Transactions, Cassandra, Cassandra Monitoring, JMX, NoSQL
AppMan Adventures: Cassandra Meets Ops
Posted by App Man | May, 19, 2011 | In App Man Adventures
0 Comments
Will NoSQL and Big Data Kill the DBA?
Posted by App Man | May, 18, 2011 | In APM Thought Leadership, Java
1 Comment
Remember the good old days where developers and DBAs would argue over who and what was killing the relational database? “It’s your crap SQL,” “You forgot to create an index,” “You don’t know what an index is”…and so on. Do you remember when the DBA occasionally spoke and served out humble pie on how to make SQL statements go faster? Well my friends, those biblical days could soon be over with the adoption of NoSQL technologies. Or is that not true? Will the DBA perform a mighty rollback?
If you look back at the last decade, there is no doubt nearly all business today is connected or conducted online. In fact I can’t physically remember the last time Mrs. App Man and I walked into the bank, wrote a letter, or returned a movie rental. Half our life is done online and it’s not stopping anytime soon now that Mrs. AppMan has a new shiny MacBook to shop on. IDC and EMC recently published a report that stated 70% of the digital universe this year will be generated by users at home, work, and on the go. In total this amounts to 880 billion gigabytes of data being created this year. All that data has got to go somewhere, and it’s left to applications to query and make this data available to users whereever they are in the world. Data availability and performance has never been so important.
apm, Application Performance Management, Big Data, Cassandra, Coherernce, DBA, Distributed Caches, Hadoop, NoSQL







