the use case for cassandra at ping identity
DESCRIPTION
The Use Case for Cassandra at Ping Identity How and why Ping Identity uses Cassandra database inside PingOne. By Michael Ward, Site Reliability Engineer, On-Demand Ping Identity [email protected] @devoperandiTRANSCRIPT
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Site Reliability Engineering
Copyright ©2013 Ping Identity Corporation. All rights reserved.
• We believe secure professional and personal identities underlie human progress in a connected world. Our purpose is to enable and protect identity, defend privacy and secure the Internet.
• Over 1,000 companies, including over half of the Fortune 100, rely on our award-winning products to make the digital world a better experience for hundreds of millions of people.
• Denver, Colorado. Est. 2003
About Ping Identity
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Design PhilosophyMemory: 6-8GBCPU: 2Disk: 30GB
More servers, smaller capacityGeographic distribution for data redundancy, availability and performanceHorizontal scalabilityNo single point of failure
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Cassandra at Ping….taking the plunge
Current:PingOne reportingPingOne for Groups
Future goals:Migration from Mongo (EOY)Some migration from MySQL Real Time Analytics (innovation project)
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Cassandra Reporting Cluster
• Built to provide customer insight into PingOne• First dive into Cassandra v0.7 (production)• Upgrade (in place) to v1.1.2
• v0.8 as stepping stone• In production today as v1.1.9
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Cassandra Reporting Cluster (v0.7)
DC1 DC2
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Where did we miss? (v1.1.2)
Upgrade in placeMissed out on compression
Failed to gain read performanceData wasn’t spread evenly across the cluster
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Cassandra Reporting (v1.1.9)
DC1 DC2
DC3
0 10
20
Features:9 nodesCompressionToken Offsets2 Replicas per DCOff-Heap cachingServer-to-Server SSL
Limitations: No Access ControlManual Token GenerationNode recovery 1 replica from each token range
DC1DC2DC3
Copyright ©2013 Ping Identity Corporation. All rights reserved.
central logs
Snapshots to new cluster
Bulkload snapshots into cluster to gain compressionv1.1.2
v1.1.9
Create Tables with:compression={'sstable_compression': 'SnappyCompressor'};
Replay reporting gap to new cluster
log transform
Traffic switch after bulkload
Migration from 1.1.2 to 1.1.9
Copyright ©2013 Ping Identity Corporation. All rights reserved.
PingOne Reports
Copyright ©2013 Ping Identity Corporation. All rights reserved.
PingOne for GroupsCassandra v1.2.5
Features:Auto Token GenerationVnodesDescent data distributionMore efficient memory utilizationAtomic BatchesSecondary indexesRequest TracingInternal Authentication/Authorization
Copyright ©2013 Ping Identity Corporation. All rights reserved.
.setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
.setCqlVersion("3.0.0")
.setTargetCassandraVersion("1.2”)
.setRetryPolicy(retryPolicy);
.setConnectTimeout(2000);
RUN_ONCE
Astyanax config
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Limitations (v1.2.5)
Caching# ReplicasSize-Tiered Compaction
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Questions?
Copyright ©2013 Ping Identity Corporation. All rights reserved.
Thanks!
[email protected]@devoperandiwww.pingidentity.com/blogshttp://status.pingidentity.comhttp://uptime.pingidentity.com