The use case for Cassandra at Ping Identity

15
Copyright ©2013 Ping Identity Corporation. All rights reserved. Site Reliability Engineering

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] @devoperandi

Transcript of The use case for Cassandra at Ping Identity

Page 1: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

Site Reliability Engineering

Page 2: The use case for Cassandra at Ping Identity

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

Page 3: The use case for Cassandra at 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

Page 4: The use case for Cassandra at Ping Identity

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)

Page 5: The use case for Cassandra at Ping Identity

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

Page 6: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

Cassandra Reporting Cluster (v0.7)

DC1 DC2

Page 7: The use case for Cassandra at Ping Identity

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

Page 8: The use case for Cassandra at Ping Identity

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

Page 9: The use case for Cassandra at Ping Identity

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

Page 10: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

PingOne Reports

Page 11: The use case for Cassandra at Ping Identity

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

Page 12: The use case for Cassandra at Ping Identity

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

Page 13: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

Limitations (v1.2.5)

Caching# ReplicasSize-Tiered Compaction

Page 14: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

Questions?

Page 15: The use case for Cassandra at Ping Identity

Copyright ©2013 Ping Identity Corporation. All rights reserved.

Thanks!

[email protected]@devoperandiwww.pingidentity.com/blogshttp://status.pingidentity.comhttp://uptime.pingidentity.com