본문 바로가기
IT

python으로 NoSQL tpcc 성능 테스트 하는 법- OLTP, TPC-C

by eddy's warehouse 2024. 2. 14.

redis는 database는 아니지만, tpcc와 유사한 애플리케이션을 동작할 수 있습니다. 그래서, 이를 테스트해보기 위해 py-tpcc라는 python 오픈소스 코드를 사용해서 OLTP() 성능을 비교해 볼 수 있습니다.

python으로 NoSQL tpcc 성능 테스트 하는 법- OLTP, TPC-C 썸네일

OLTP 란?

OLTP는 "Online Transaction Processing"의 약어입니다. 이는 데이터베이스 관리 시스템의 한 유형으로, 대량의 짧고 빠른 트랜잭션을 처리하는 데 최적화되어 있습니다. 이러한 트랜잭션은 일반적으로 데이터베이스의 작은 부분에만 영향을 미치며, 각 트랜잭션은 독립적으로 실행됩니다. OLTP 시스템은 일반적으로 실시간 비즈니스 트랜잭션을 처리하는 데 사용됩니다. 이와 다르게 OLAP(Online Analytical Processing)는 데이터 웨어하우스, 데이터 마트 또는 기타 중앙화된 통합 데이터 저장소의 대용량 데이터를 다차원 분석하는 처리를 말합니다.

일반적으로 OLTP는 TPC-C로 성능을 측정하고 OLAP는 TPC-H로 성능을 측정하곤 합니다.

이번 주제에서는 TPC-C만 알아보겠습니다.

 

TPCC 란?

TPC-C는 "Transaction Processing Performance Council Benchmark C"의 약자로, 온라인 트랜잭션 처리(OLTP) 벤치마크 성능 테스트입니다. TPC-C는 1992년 7월에 승인되었으며, 이전의 OLTP 벤치마크인 TPC-A보다 더 복잡합니다.

TPC-C는 다양한 유형과 복잡성의 5가지 동시 트랜잭션을 포함하며, 이러한 트랜잭션은 온라인으로 실행되거나 지연된 실행을 위해 대기열에 들어갑니다. 데이터베이스는 다양한 크기의 레코드와 건수를 가진 9가지 유형의 테이블로 구성되어 있습니다.

TPC-C는 분당 트랜잭션 수(tpmC)로 측정되며, 벤치마크는 일반 온라인 커머스의 활동을 보여주지만, 제품이나 서비스를 관리, 판매, 배포해야 하는 어떤 산업이든 대표할 수 있습니다.

따라서, TPC-C는 다양한 유형의 트랜잭션을 처리하는 데이터베이스 시스템의 성능을 측정하는 데 사용됩니다.

 

py-tpcc 오픈소스

py-tpcc 프로젝트는 NoSQL 시스템용 TPC-C OLTP 벤치마크의 Python 기반 프레임워크입니다. 이 코드는 원래 브라운 대학교(Brown University) 학생들이 NoSQL 시스템에 대한 대학원 세미나 과정을 위해 작성한 것입니다. 이 프레임워크는 다른 시스템에 맞게 새로운 드라이버를 작성할 수 있도록 모듈식으로 설계되었습니다.


오픈 소스 데이터베이스 소프트웨어, 지원, 서비스를 제공하는 회사인 Percona에서 이 소스를 통해 MongoDB의 TPCC 성능을 측정하여 공개하였습니다.

Percona는 MySQL®, MongoDB®, PostgreSQL® 데이터베이스를 위한 소프트웨어를 개발하고 있습니다. Percona의 서비스와 소프트웨어는 빠른 성장과 애플리케이션 개발을 지원하며, 고객의 요구에 더 잘 부응할 수 있도록 돕습니다.
Percona는 또한 데이터베이스 시스템의 지원, 컨설팅, 관리 서비스를 통해 매년 약 2천5백만 달러의 수익을 창출하고 있습니다.

 

py-tpcc를 기본으로 하여 확장한 코드는 현재 몽고DB의 공식 tpcc 테스트로 활용되고 있습니다.

해당 github 주소는 다음과 같습니다.

mongodb-labs/py-tpcc: MongoDB Adaptation of PyTPCC (github.com)

 

GitHub - mongodb-labs/py-tpcc: MongoDB Adaptation of PyTPCC

MongoDB Adaptation of PyTPCC. Contribute to mongodb-labs/py-tpcc development by creating an account on GitHub.

github.com

py-tpcc 몽고디비(MongoDB) 테스트

py-tpcc는 TPC-C 명세에 따라 스키마와 쿼리를 모방하고, MongoDB 트랜잭션 언어에 맞게 조정한 파이썬 스크립트 도구입니다.

MongoDB 4.0, 4.2, 4.4 버전을 Py-tpcc로 테스트한 결과를 보여줍니다. 4.2 버전은 작은 클라이언트 수에서는 성능이 떨어지지만, 50 클라이언트 이상에서는 더 잘 확장됩니다. 

Percona에서 몽고디비(MongoDB)의 TPCC 테스트를 수행하여 공개한 전체 데이터는 아래 링크를 참고하실 수 있습니다.

Evaluating the Python TPCC MongoDB Benchmark (percona.com)

 

Evaluating the Python TPCC MongoDB Benchmark

Py-tpcc tries to emulate queries and schema as specified in TPC-C specification, with the adaption of both schema and queries to MongoDB transactional dialect.

www.percona.com

몽고 DB를 py-ptcc를 통해 tpcc 테스트하는 법은 아래 링크에서 확인하실 수 있습니다.

py-ptcc-driver를-이용해서-mongodb-tpc-c-테스트-하기

 

py-ptcc driver를 이용해서 mongodb tpc-c 테스트 하기

이 글에서는 py-tpcc에 대해서 알아보고, 이를 사용하여 자체 호스팅된 MongoDB에서 TPC-C 테스트를 실행하는 방법에 대해서 알아보도록 하겠습니다. Table Of Contents 1. py-tpcc에 대해서 py-tpcc의 기본 아

2story.org

오늘은 NoSQL계열 데이터베이스의 성능 측정을 위한 OLTP의 개념과 TPC-C의 개념 그리고 이들을 테스트하기 위한 py-tpcc의 시작과 mongodb에 대해서 알아보았습니다.

다음에는 redis에 py-tpcc를 적용하여 tpcc 테스트를 하는 법을 알아보도록 하겠습니다.

 

facebook twitter kakaoTalk kakaostory naver band shareLink