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

[사례 연구, Wag!] 애완견 산책 서비스의 실시간 및 급격한 동접자 수용 요구를 위한 SingleStore

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

Wag!는 "애완견들을 위한 우버(Uber)"라고 불려왔습니다. 이 서비스는 애완견 주인과 애완견을 산책시키는 사람을 매칭시켜 실시간으로 산책 시키는 사람(산책객)을 개별적으로 추적하고 시각화합니다. 이 서비스는 현재 미국 전역의 100개 이상의 도시에서 이용할 수 있습니다. 지금, Wag!는 그들이 급속한 비즈니스 성장의 요구를 충족시키기 위해 SingleStore를 사용하고 있습니다.


애완견 주인들은 그들 주위에 있는 애완견 산책객들의 라이브(live) 지도를 갖고 시작을 합니다. 그들은 산책객과 연결을 하고 애완견을 위한 산책로를 설정하고, 그들의 이웃의 지도에서 그것이 진행되는 것을 라이브로 지켜봅니다. 모든 산책이 활동 보고서로 나타납니다. 이 보고서에는 애완견 사진, 산책 시간과 거리 등이 포함 되어 있습니다.

Wag!의 응용 프로그램은 모든 단계에서 대화형이며 개인화되어 있음

 

걸을 때마다 상당한 양의 실시간 데이터가 생성됩니다. Wag!은 트래픽을 원활하게 처리하고 트래픽의 급증과 미래의 성장에 대비할 필요가 있었습니다.

Wag!에서 애플리케이션 성능은 비즈니스 성공의 열쇠가 되기 때문에 데이터 수집 확장의 기술적 어려움은 심각한 비즈니스적 의미를 갖습니다.

비즈니스와 기술의 결합

올해 초, Wag!'의 핵심 데이터베이스는 최대 컴퓨팅 용량에 도달하고 있었습니다. 주요 원인 중 하나는 메인 데이터베이스가 처리해야 하는 대량의 쓰기(Writes)였습니다. 또한 이 쓰기는 데이터베이스 복제본에 대한 지연을 초래하여 Wag!이 읽기 쿼리 확장을 막았습니다.

"우리는 성장을 위한 충분한 여유가 없었습니다,"라고 Wag!의 데이터 서비스 기술 책임자인 Franck Levenger는 말했습니다. "목표는 MySQL에서 쓰고 있는 'log 타입'을 SingleStore로 옮겨 자원을 자유롭게 하는 것이었습니다. 이렇게 하면 지연이 줄어들어 MySQL 데이터베이스가 읽기 전용 쿼리를 처리할 수 있게 될 것입니다."

Levenger는 SingleStore에 익숙했고, 다음과 같은 몇 가지 핵심 기능을 바탕으로 SingleStore가 Wag!에 가장 적합하다는 것을 알았습니다.

쉬운 솔루션: MySQL과 SingleStore 모두 표준 SQL을 지원함으로 학습 시간이 필요하지 않고 구현이 매우 빨랐습니다. “SingleStore는 MySQL를 사용하던 사용자가 다루기 매우 쉬운 데이터베이스를 만드는데 엄청 난 공을 들였습니다. 엔지니어들은 SingleStore를 사용하는 데 아무런 문제가 없었습니다. 그것은 매우 자연스러운 것이었습니다.”라고 Leveneur는 말했습니다.

인 메모리 Rowstore 및 디스크 기반 Columnstore 지원: Wag!는 Rowstore 형식으로 메모리 내에서 초기 처리를 매우 높은 성능으로 수행을 합니다. 그런 다음 Columnstore 엔진을 사용하여 데이터를 최대 70 % 압축합니다. 그러면 SingleStore는 MySQL보다 훨씬 빠른 집계 쿼리를 실행할 수 있습니다. 이것은 엄청난 성과입니다.

파이프라인: SingleStore는 S3에 직접 연결하여 놀라운 속도로 데이터를 수집할 수 있습니다. Leveneur는 “운영시스템에서 라이브 SingleStore 데이터베이스에서 20 분 이내에 7억건을 Column 테이블을 다시 채울 수 있다고 생각해보세요. 저는 이전에 대규모 재 적재(Backfilling) 문제를 처리해봤는데 매우 어려운 도전이었습니다. SingleStore는 이 과정을 쉽게 처리합니다.”고 말했습니다.

Support: 다른 SingleStore 고객과 마찬가지로 Wag!는 SingleStore의 Support가 뛰어나다는 것을 알게 되었습니다. "SingleStore 팀은 항상 질문에 대답하고 쿼리를 최적화하거나 변환을 구현하기 위해 Python 코드를 공유할 수 있습니다. 교육 자료와 문서도 훌륭합니다.”

전반적으로 결과는 훌륭했습니다. Leveneur는 “오늘날 필요한 모든 테이블을 MySQL에서 SingleStore로 마이그레이션 한 후 평균 CPU 사용률을 10% 대로 줄였습니다. 지리 공간 데이터 유형, Full Text Search 및 윈도우잉(windowing)와 같은 다른 훌륭한 SingleStore 기능을 아직 사용하지 않았지만 이를 확인할 예정입니다."

SingleStore를 이용한 Wag!의 다음 단계

Leveneur는 수집 성능 향상과 같은 가시적인 문제를 해결하는 전문가입니다. 몇 년 전, 그는 로스 앤젤레스 MySQL Meetup 그룹에서 매우 큰 데이터 세트의 초고속 데이터에 대한 리포트에 대해 강연했습니다. 그는 UCLA에서 데이터 운영 과정을 이끌고 있으며, 그의 커리큘럼에 SingleStore를 포함시켰습니다.

Wag!는 여전히 SingleStore와 더 관련이 있습니다. 머지 않아 살펴볼 기능 중 하나는 파이프 라인에서 사용하는 스토어드 프로시저(Stored Procedure)입니다.

기존 파이프라인은 수집 문제에 대해 ETL (Extract, Transform, and Load) 요구를 다양한 요소 기술들를 통해 통합했습니다. 파이프 라인을 스토어드 프로시저로 이용하면 데이터 스트림을 여러 테이블로 분할하여 기존 데이터을 JOIN하고 많은 데이터로 기존 행을 빠른 속도로 업데이트 할 수 있습니다.

변환 작업 또는 ETL 파이프라인 사용 여부와 무관하게 스토어드 프로시저에 대한 파이프라인을 유연하게 실행가능

 

Leveneur는 뉴욕의 택시 데이터에 공개적으로 접근할 수 있다는 사실에 흥미를 보였습니다. 해당 데이터는 학부 연구실 작업에 사용하기 적합하기 때문입니다.

November 6, 2018

Floyd Smith

 


출처: https://www.singlestore.com/blog/wag-labs-case-study/

 

Wag!: Switching to SingleStore to Meet the Needs of a High-Growth Business – Case Study

Wag! has adopted SingleStore for a core function in its interactive service, referred to as “Uber for dogs”. As Wag! scales, core functions were running too slowly and crowding memory space. SingleStore now runs tables that were formerly in SingleStore

www.singlestore.com

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