본문 바로가기
SingleStoreDB/사례연구

[사례 연구, Tapjoy] 실시간 광고 최적화를 위해 SingleStore로 모바일 광고 플랫폼 강화

by 에이플랫폼 [Team SingleStore Korea] 2019. 8. 30.

Tapjoy는 SingleStore 초기의 열정적인 고객으로 그들의 엔지니어링 블로그에 SingleStore로의 DB 변경 과정에 대한 설명이 되어있습니다. 이 게시글에서 Tapjoy가 왜 SingleStore로 DB를 변경했는지, 이를 통해 무엇을 얻게 되었는지 몇 가지 주요 내용을 설명합니다. (아래 게시물 내용은 몇년전에 작성되었던 원본에서 최근 SingleStore 업데이트를 비롯한 여려 소스의 자세한 정보를 포함하여 업데이트 되었습니다.)

광고와 앱 수익화의 선두주자인 Tapjoy는 비디오 광고, 제안, 보상을 통하여 앱 제공자가 사용자를 늘리고, 모바일 앱을 통해 수익을 창출할 수 있도록 지원합니다. Tapjoy는 3만개 이상의 모바일앱에 임베디드용 SDK를 탑재하였고, 홍보를 통해 어플 실사용자를 한 달에 8억명 이상까지 증가 시켰으며, 전세계에 12개 이상의 사무실을 보유하고 있습니다.

Tapjoy의 엔지니어링 팀도 세계적으로 있으며, 이들은 강력한 백엔드에서의 데이터 처리를 구축하여 하루에 수십억 개의 데이터를 처리합니다. 백엔드에는 데이터 스트리밍을 위한 Kafka와 Amazon의 RDS, MySQL, Postgre SQL,그리고 Google의 BigQuery를 포함합니다. 그들은 문제 해결, 공급업체 평가, 변경 관리를 위한 확실한 절차를 수립했습니다.

다만, 이 회사는 MySQL에서 실행되는 워크로드로 인해 성능 문제에 직면했습니다. 그들은 대안을 세심하게 평가하고 테스트한 후 SingleStore로 DB 변경이라는 목표를 세웠습니다.

Tapjoy의 요구사항

Tapjoy의 성장은 종종 그들이 규모가 더 좋은 새로운 컴포넌트를 사용하여 그들의 스택을 향상하도록 이끕니다. 몇 년 전, 이 회사는 MySQL에 재무 데이터를 포함한 주요 워크로드를 가지고 있었습니다. 이러한 워크로드는 MySQL에 대용량 및 대규모의 어플리케이션이 없다는 점 때문에 Tapjoy의 주요 규칙의 예외였습다.

MySQL의 널리 알려진 문제에는 다음과 같은 사항이 있습니다.

 

우수한 성능을 발휘하지 못하는 모든 주요 워크로드로 인해 Tapjoy 비즈니스 리스크가 발생하며, 이는 디지털 기반 기업의 리스크와 유사합니다.

  • 비즈니스를 효율적으로 성장시킬 수 없음
  • 기술 인력에 대한 요구 증가
  • 서비스 수준 계약(SLA)을 준수하기 어려움
  • 서비스 품질 저하

Tapjoy의 팀은 대안을 평가했고 빨리 DB를 변경하길 원했기 때문에 다음과 같은 엄격한 기준을 사용했습니다.

  • ACID 호환 - 새로운 제품은 기존의 RDBMS 또는 NewSQL 경쟁업체와 같은 관계형 데이터베이스여야 했습니다. NoSQL은 선택사항이 아니었습니다.
  • 확장 가능성 - 해당 시스템은 확장성을 위해 설계되어야 했습니다. Tapjoy는 강력한 개발운영 팀을 보유하고 있지만, 확장이 불가한 시스템을 지원하지 않기 때문입니다.
  • 10배이상의 성능 - 특히, 새로운 시스템은 적어도 과거의 데이터 수요보다 더 큰 규모의 수요를 충족시키기 위해 성능이 더 좋아야 했습니다.
  • 빠른 교체 - 새로운 솔루션은 MySQL에 대해 Swap을 원활하게 수행해야 하며, 변경은 가능한 빠르고 쉬우며, 코드 호환이 가능해야 했습니다.

MySQL을 사용하면서 확장성에 대한 필요성이 요구되었고, 이는 MySQL 문제만이 아니었습니다. 대부분의 RDBMS 대체 제품들은 Tapjoy가 필요로 하는 범위까지 확장할 수 있는 능력이 부족한 경향이 있었습니다.

Tapjoy의 고려사항

이러한 제약으로, Tapjoy는 진지하게 고려할 만한 몇 가지 대체 DB를 선정했습니다.

- Sharded MySQL : 많은 조직이 Sharding MySQL을 통해 확장성 요구를 충족합니다. 하지만 엔지니어링 팀과 운영팀 모두 이 도전적인 일을 맡으려 하지 않았고, 이미 그 일을 하지 못하고 있는 시스템(MySQL)을 계속 사용하려고 하지도 않았습니다.

- AuroraDB : AWS RDS(Relational Data Service)의 AuroraDB 옵션은 MySQL과 유선 호환이 가능한 큰 장점을 가지고 있습니다. 그러나 테스트 결과 성능의 기대에 도달하지는 못했습니다. AuroraDB는 설계상 확장성이 있지만 실제로는 확장성에 대한 Tapjoy의 요구를 충족시키지 못했습니다.

- SingleStore : 이미 Tapjoy의 Data science 팀에서 SingleStore를 사용하고 있었습니다. 이 팀은 SingleStore를 ACID 호환이 되고 확장성이 뛰어나며 탁월한 성능을 제공한다고 설명했습니다. 그리고, AuroraDB처럼, MySQL과 유선 호환이 가능했습니다.

SingleStore는 처음부터 Tapjoy의 요구사항과 같은 까다로운 요구사항을 충족하도록 설계되어있었습니다.

막대한 성능 향상을 제공하는 SingleStore

Tapjoy는 그들의 대체 DB로 SingleStore를 고려하였고, 이 과정에서 기존 DB가 SingleStore보다 훨씬 느렸다는 부분이 가장 눈에 띄는 점이었습니다.

Sun Kelly는 SingleStore로 DB를 변경한 것에 대하여 Tapjoy 엔지니어링 블로그에 포스트에 이렇게 언급했습니다.

"SingleStore는 우리가 원하는 모든 것을 가지고 있었고, 초기 테스트를 통해 SingleStore가 우리의 요구 사항을 충족시킬 것이라고 확인했다. 백문이 불여일견이듯, 우리는 클러스터를 구축하고, 여기에 데이터를 shadow-write를 시작했으며, 그것이 우리의 사용 사례에 부합하는지 확인하기 위해 테스트에 착수했다."

기존 DB 클러스터가 동작하는 상태에서, 20배 미만의 부하를 SingleStore에 로드하는 테스트와 기존 DB에서 사용하던 데이터 양보다 두 배 많은 데이터로 테스트를 진행했습니다.

단일 파트너의 재무 데이터 포인트를 요약(Tapjoy의 게임 분야에서 엄청난 영향력을 감안할 때, 반복해서 수행해야 하는 작업)하는 데 기존 솔루션에서는 1분 이상(68초)이 소요되었으나 SingleStore에서는 1.23초(55배)로 훨씬 더 빨라졌습니다.

월별 보고는 고객이 재무 보고서를 요구하거나 청구서를 지불할 때 특히 중요합니다. 기존 시스템에서는 한 달 동안 전체 플랫폼의 단일 재무 데이터 포인트를 요약하는 시간이 거의 30분(28분)이 걸렸고, 싱글스토어에서는 1500배 이상 늘어난 1.1초가 걸렸습니다.

재무와 함께 마케팅은 사내 데이터 시스템의 주요 구성 요소로서, 다양한 목적으로 최근 활발히 활동하고 있는 고객의 목록을 정기적으로 작성해야 합니다. 기존 시스템에서는 24초가 걸렸으나, SingleStore에서는 20배 이하의 부하로 동작되면서 3초 만에 동작이 끝났으며, 기존 대비 8배가량 개선됐습니다.

부하 테스트 결과에서 나타난 바와 같이, SingleStore는 Tapjoy의 요구사항을 모두 충족했고, 부하 테스트에서 성능을 확실히 증명하였습니다.

또한 SingleStore는 Tapjoy의 다른 요구 사항인 AID 준수, SQL 호환성, 확장성 및 MySQL의 대체 DB로 동작할 수 있는 기능도 충족시켰습니다.

결과

SingleStore를 채택한 이 사용 사례를 시작으로 Tapjoy는 다양한 사례에서 SingleStore를 사용하게 되었습니다. SingleStore와 Tapjoy는 두 회사가 함께 작업한 결과를 발표했고, Tapjoy는 In-Memory Computing Summit 2015에서 이 주제에 대해 발표했습니다.

'모바일 광고를 위한 실시간 데이터 과학 서비스 구축'에서 Tapjoy의 아키텍처에 대한 보다 최근의 프레젠테이션을 볼 수 있습니다. 또한 까다로운 데이터 문제를 해결하기 위해 SingleStore를 사용하려는 경우 SingleStore 무료 사용을 이용하거나 SingleStore에 문의하시기 바랍니다.

July 26, 2020

Floyd Smith

 


출처: https://www.singlestore.com/blog/tapjoy-moving-to-memsql/

 

Tapjoy Achieves 10X Performance Gains in Move to SingleStore

Tapjoy replaced MySQL with SingleStore to gain speed and scalability, while preserving ACID compliance and MySQL wire compatibility. Learn more!

www.singlestore.com

​※ www.a-platform.biz | info@a-platform.biz