Cassandra Design Patterns Second Edition
Table of Contents
Cassandra Design Patterns Second Edition
Credits
About the Author
Acknowledgements
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Co-existence Patterns
A brief overview of Cassandra
Denormalization pattern
Motivations/solutions
Best practices
Example
Reporting pattern
Motivations/solutions
Best practices
Example
Aggregation pattern
Motivations/solutions
Best practices
Example
References
Summary
2. RDBMS Migration Patterns
A brief overview
List pattern
Motivations/solutions
Best practices
Example
Set pattern
Motivations/solutions
Best practices
Example
Map pattern
Motivations/solutions
Best practices
Example
Distributed Counter pattern
Motivations/solutions
Best practices
Example
Purge pattern
Motivations/solutions
Best practices
Example
References
Summary
3. Cache Migration Patterns
A brief overview
Cache to NoSQL pattern
Motivations/solutions
Best practices
Example
References
Summary
4. CAP Patterns
A brief overview
Write-heavy pattern
Motivations/solutions
Best practices
Example
Read-heavy pattern
Motivations/solutions
Best practices
Example
Read-write balanced pattern
Motivations/solutions
Best practices
Example
References
Summary
5. Temporal Patterns
A brief overview
Time series pattern
Motivations/solutions
Best practices
Example
Log pattern
Motivations/solutions
Best practices
Example
Conversation pattern
Motivations/solutions
Best practices
Example
References
Summary
6. Analytics Patterns
Processing big data
Apache Hadoop
Apache Spark
Transforming data
A brief overview
Map/Reduce pattern
Motivations/solutions
Best practices
Example
Transformation pattern
Motivations/solutions
Best practices
Example
References
Summary
7. Designing Applications
A brief overview
Application design and use cases
Service management and use cases
References
Summary
Index
Cassandra Design Patterns Second Edition
Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: January 2014
Second edition: October 2015
Production reference: 1261015
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78528-570-7
www.packtpub.com
This book is an update to Cassandra Design Patterns by Sanjay Sharma.
Author
Rajanarayanan Thottuvaikkatumana
Reviewers
William Berg
Mark Kerzner
Alex Shvid
Commissioning Editor
Priya Singh
Acquisition Editor
Tushar Gupta
Content Development Editor
Samantha Gonsalves
Technical Editor
Anushree Arun Tendulkar
Copy Editor
Vatsal Surti
Project Coordinator
Kinjal Bari
Proofreader
Safis Editing
Indexer
Tejal Daruwale Soni
Production Coordinator
Aparna Bhagat
Cover Work
Aparna Bhagat
Rajanarayanan Thottuvaikkatumana, "Raj", is a seasoned technologist with more than 23 years of software development experience at various multinational companies. He has lived and worked in India, Singapore, and the USA, and is presently based out of the UK. His experience includes architecting, designing, and developing software applications. He has worked on various technologies including major databases, application development platforms, web technologies, and big data technologies. Since 2000 onwards, he has been working mainly in Java-based technologies, and has been doing heavy-duty server-side programming in Java and Scala. He has worked on very highly concurrent, highly distributed, and high-transaction-volume systems with NoSQL data stores such as Cassandra and Riak and caching technologies such as Redis, Ehcache, and Chronicle Map. Raj has a lot of experience in integrating Cassandra with Spark and has shared the Scala code repository on GitHub.
Raj holds one master's degree in Mathematics and one master's degree in Computer Information Systems, and has many certifications in ITIL and Cloud Computing to his credit.
Apart from all this, Raj is a prolific corporate trainer on various technical subjects and has contributed to the Apache Cassandra project.
When not working with computers, Raj watches a lot of tennis and he is an avid listener of classical music.
Even though Raj has worked on many white papers and training materials, this is his first publication in the form of a book.
I would like to thank my father for showing me that there is no age barrier for embarking upon something totally new. I would like to thank my mother for showing me that relentless work will be fruitful one day. I would like to thank my wife for showing me that working towards perfection culminates in something beyond comparison. I would like to thank my teachers who have helped me to see learning as a continuous process. I would like to thank my geeky friends who collectively have solutions for almost any technical problem. Last but not the least, I would like to thank my present employer for gracefully giving me official permission to work on this project.
William Berg has been engineering software for the last several years, and has worked with Cassandra all that time. He works mainly with Java. He has also reviewed Cassandra Design Patterns, another Packt Publishing title. He also plays the bass guitar and produces electronic music.
Mark Kerzner holds degrees in law, math, and computer science. He is a software architect and has been working with Big Data for the last 7 years. He is a cofounder of Elephant Scale, a Big Data training and implementation company, and is the author of FreeEed, an open-source platform for eDiscovery based on Apache Hadoop. He has many authored books and patents to his credit. He loves learning languages, and is currently perfecting his Hebrew and Chinese.
Alex Shvid is a Data Grid architect with more than 10 years of software experience in Fortune 500 companies with the focus on financial institutions. He has worked in the USA, Argentina, and Russia and has many architect and developer certifications, including those from Pivotal/Spring Source and Oracle. He is a regular speaker at user groups and conferences around the world such as the Java One and Cassandra meet ups. Alex works for PayPal in Silicon Valley, developing low-latency big data real-time solutions. His major specialization is in big data and fast data framework adoption for enterprise environments. He has participated in an open-source project Spring Data Cassandra module and developed a Dell Crowbar automation barclamp for Cassandra. Among his recent projects in Fast data are: integration of Gemfire from Pivotal as an event processing middleware solution and caching system for Gire (Buenos Aires, Argentina), Visa (Foster City, CA, USA), VMWare (Palo Alto, CA, USA) as well as the Coherence from Oracle for Analog (Boston, MA, USA), RCI (Parsippany, NJ, USA), and a custom data grid solution for Deutsche Bank (New York, NY, USA). When he is not working, Alex can usually be found hiking with his wife along the Coastal Trail in the San Francisco Bay Area
Support files, eBooks, discount offers, and more
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at
www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
<[email protected]>
for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up f...