Build real-world, industry-strength data storage solutions with time-tested design methodologies using Cassandra
About This Book
- Explore design patterns which co-exist with legacy data stores, migration from RDBMS, and caching technologies with Cassandra
- Learn about design patterns and use Cassandra to provide consistency, availability, and partition tolerance guarantees for applications
- Handle temporal data for analytical purposes
Who This Book Is For
This book is intended for big data developers who are familiar with the basics of Cassandra and wish to understand and utilize Cassandra design patterns to develop real-world big data solutions. Prior knowledge of RDBMS solutions is assumed.
What You Will Learn
- Enable Cassandra to co-exist with RDBMS and other legacy data stores
- Explore various design patterns to build effective and robust storage solutions
- Migrate from RDBMS-based data stores and caching solutions to Cassandra
- Understand the behaviour of Cassandra when trying to balance the needs of consistency, availability, and partition tolerance
- Deal with time stamps related to data effectively
- See how Cassandra can be used in analytical use cases
- Apply the design patterns covered in this book in real-world use cases
There are many NoSQL data stores used by big data applications. Cassandra is one of the most widely used NoSQL data stores that is frequently used by a huge number of heavy duty Internet-scale applications. Unlike the RDBMS world, the NoSQL landscape is very diverse and there is no one way to model data stores. This mandates the need to have good solutions to commonly seen data store design problems. Cassandra addresses such common problems simply.
If you are new to Cassandra but well-versed in RDBMS modeling and design, then it is natural to model data in the same way in Cassandra, resulting in poorly performing applications and losing the real purpose of Cassandra. If you want to learn to make the most of Cassandra, this book is for you.
This book starts with strategies to integrate Cassandra with other legacy data stores and progresses to the ways in which a migration from RDBMS to Cassandra can be accomplished. The journey continues with ideas to migrate data from cache solutions to Cassandra. With this, the stage is set and the book moves on to some of the most commonly seen problems in applications when dealing with consistency, availability, and partition tolerance guarantees.
Cassandra is exceptionally good at dealing with temporal data and patterns such as the time-series pattern and log pattern, which are covered next. Many NoSQL data stores fail miserably when a huge amount of data is read for analytical purposes, but Cassandra is different in this regard. Keeping analytical needs in mind, you'll walk through different and interesting design patterns.
No theoretical discussions are complete without a good set of use cases to which the knowledge gained can be applied, so the book concludes with a set of use cases you can apply the patterns you've learned.
Style and approach
This book is written in very simple language and an engaging style complete with examples in every chapter and real-world use cases at the end of the book.
Table of contents
Cassandra Design Patterns Second Edition
- Table of Contents
- Cassandra Design Patterns Second Edition
- About the Author
- About the Reviewers
- 1. Co-existence Patterns
2. RDBMS Migration Patterns
- A brief overview
- List pattern
- Set pattern
- Map pattern
- Distributed Counter pattern
- Purge pattern
- 3. Cache Migration Patterns
- 4. CAP Patterns
- 5. Temporal Patterns
- 6. Analytics Patterns
- 7. Designing Applications
- Title: Cassandra Design Patterns - Second Edition
- Release date: November 2015
- Publisher(s): Packt Publishing
- ISBN: 9781785285707
You might also like
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …
Architecting Data-Intensive Applications
Architect and design data-intensive applications and, in the process, learn how to collect, process, store, govern, …
Streaming Data: Understanding the real-time pipeline
Summary Streaming Data introduces the concepts and requirements of streaming and real-time data systems. The book …