the use case for cassandra at ping identity

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

Upload: wwwpingidentitycom

Post on 07-May-2015

916 views

Category:

Technology


4 download

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

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