본문 바로가기
IT

DBMS 성능 테스트 모델 TPC-C에 대해서 - Altibase, Mariadb, MySQL, Oracle, NoSQL 등

by developer's warehouse 2024. 2. 19.

트랜잭션 처리 성능 위원회(TPC)는 트랜잭션 처리 시스템의 성능과 가격 대비 성능을 측정하는 벤치마크 시리즈 중 세 번째 벤치마크 입니다. 오늘은 TPC-C의 개요에 대해서 알아보고 어떤 것인지 그리고 스펙 문서 공유 및 링크도 정리해 보았습니다.

DBMS 성능 테스트 모델 TPC-C에 대해서 - Altibase, Mariadb, MySQL, Oracle, NoSQL 등 썸네일

 

 

TPC-C 벤치마크 개요 - 주문 입력 벤치마크

TPC의 첫 번째 벤치마크인 TPC-A와 마찬가지로 새로운 TPC 벤치마크 C, 즉 TPC-C는 온라인 트랜잭션 처리(OLTP) 벤치마크입니다. 그러나 TPC-C는 여러 트랜잭션 유형, 더 복잡한 데이터베이스 및 전반적인 실행 구조로 인해 TPC-A와는 다르고 더 복잡합니다. TPC-C는 2년 전 TPC에 제출된 워크로드를 기반으로 하며, 업계의 각계를 대표하는 16명의 위원으로 구성된 소위원회에서 개선했습니다.

DBMS 성능 테스트 모델 TPC-C 홈페이지와 후원사

TPC 벤치마크의 목표는 하드웨어나 운영 체제에 관계없이 모든 트랜잭션 처리 시스템에서 실행할 수 있는 일련의 기능 요구 사항을 정의하는 것입니다. 그런 다음 모든 요구 사항을 충족했다는 증거(전체 공개 보고서 형식)를 제출하는 것은 테스트 스폰서의 몫입니다. 이 방법론을 사용하면 '독점' 또는 '개방형' 시스템을 사용하는 모든 벤더가 TPC 벤치마크를 구현할 수 있으며 최종 사용자에게 apples-to-apples comparison 사과와 사과를 비교할 수 있음을 보장합니다. 이는 테스트 스폰서가 하나의 운영 체제에서 실행되는 시스템 또는 동일한 소프트웨어 명령어 세트를 실행하는 벤치마크를 비교하는 것으로 제한되는 대부분의 다른 벤치마크와는 크게 다릅니다.

 

"apples-to-apples comparison"은 두 가지 이상의 유사한 것 또는 상황을 공정하고 의미 있는 형태로 비교하는 것을 말합니다12. 이 용어는 사과를 다른 오렌지와 비교하는 것보다, 비슷한 것들끼리 비교하는 것을 의미하는, 사과와 사과를 비교한다는 생각에서 왔습니다. 이 표현은 서로 비슷한 특성을 가진 항목들을 비교할 때 사용되며, 이를 통해 더욱 공정하고 정확한 비교를 할 수 있습니다.


또한 TPC 벤치마크는 사용자 인터페이스, 통신, 디스크 I/O, 데이터 스토리지, 백업 및 복구와 같은 주요 성능 요소를 평가하지 않을 수 있는 독립형 컴퓨터 테스트가 아닌 실제 운영 애플리케이션 및 환경을 모델로 한다는 점에서 다른 벤치마크와 차별화됩니다.

TPC 벤치마크 설계의 어려움은 운영 애플리케이션의 필수 성능 특성, 즉 시스템 사용률 수준과 운영의 복잡성을 유지하면서 운영 애플리케이션에서 발견되는 작업의 다양성을 줄이는 데 있습니다. 프로덕션 시스템을 관리하려면 수많은 기능을 수행해야 합니다. 이러한 기능 중 상당수는 시스템 리소스 사용률이나 실행 빈도 측면에서 비례적으로 작기 때문에 성능 분석의 주요 관심사가 아닙니다. 이러한 기능은 생산 시스템에 필수적이지만 표준 벤치마크의 맥락에서 보면 과도한 다양성과 비용만 발생시킬 수 있으므로 생략합니다.

 

 

벤치마크 모델(The Benchmark Model)

OLTP 시스템 벤치마크로서 TPC-C는 다수의 터미널 운영자가 데이터베이스에 대해 트랜잭션을 실행하는 전체 환경을 시뮬레이션합니다. 이 벤치마크는 주문 입력 환경의 주요 활동(트랜잭션)을 중심으로 이루어집니다. 이러한 거래에는 주문 입력 및 배송, 결제 기록, 주문 상태 확인, 물류창고 재고 수준 모니터링 등이 포함됩니다. 그러나 주문 입력 시스템을 가장 잘 구현하는 방법을 명시하는 것이 TPC-C의 의도가 아닙니다. 이 벤치마크는 도매 공급업체의 활동을 나타내지만, TPC-C는 특정 비즈니스 부문의 활동에 국한되지 않고 제품이나 서비스를 관리, 판매 또는 유통해야 하는 모든 산업을 대표합니다.

TPC-C 비즈니스 모델에서는 도매 부품 공급업체(이하 회사라고 함)가 여러 창고와 관련된 판매 지역에서 사업을 운영합니다. TPC 벤치마크는 회사가 확장하고 새로운 창고가 생성됨에 따라 확장할 수 있도록 설계되었습니다. 그러나 벤치마크가 확장됨에 따라 특정 일관된 요구사항이 유지되어야 합니다. TPC-C 모델의 각 창고는 10개의 판매 지구에 공급해야 하며, 각 지구는 3,000명의 고객에게 서비스를 제공해야 합니다. 판매 지역의 운영자는 언제든지 회사의 주문 입력 시스템에서 제공하는 5가지 작업 또는 거래 중 하나를 선택할 수 있습니다. 거래 자체와 마찬가지로 개별 거래의 빈도는 현실적인 시나리오에 따라 모델링됩니다.

 

시나리오

고객은 여러 품목이 포함된 각 주문에 대해 운영자가 있는 회사에 전화하여 주문을 접수합니다. 주문은 일반적으로 지역 창고에서 처리되지만 특정 시점에 소수의 품목이 재고가 없는 경우 대체 창고에서 공급합니다. 회사의 규모는 고정되어 있지 않으며 회사가 성장함에 따라 창고와 판매 지역을 추가할 수 있다는 점에 유의해야 합니다. 따라서 테스트 스키마는 원하는 만큼 작거나 클 수 있으며, 더 큰 스키마는 더 강력한 컴퓨터 시스템이 필요하므로 트랜잭션의 증가를 처리하기 위해 더 큰 규모의 스키마가 필요합니다. TPC-C 스키마는 아래에 표시되어 있으며, 특히 고정된 ITEM 테이블을 제외한 모든 테이블의 행 수가 스키마 생성에 선택한 창고 수에 따라 달라지는 방식에 유의하세요.

TPC-C 데이터 모델 ER 다이어그램

TPC-C는 의사 결정 지원(DSS)이 아닌 트랜잭션 기반 시스템을 정의하므로 TPC-C의 맥락에서 창고라는 용어는 데이터 웨어하우스 워크로드와 관련이 없다는 점을 추가로 명확히 해주시기 바랍니다.

가장 빈번한 거래는 평균적으로 10가지 품목으로 구성된 새 주문을 입력하는 것입니다. 각 물류창고는 회사 카탈로그에 있는 100,000개 품목의 재고를 유지하고 해당 재고로 주문을 처리하려고 노력합니다. 그러나 실제로는 한 창고에 모든 주문을 처리하는 데 필요한 모든 부품을 보유할 수 없습니다. 따라서 TPC-C는 전체 주문의 10%에 가까운 물량을 회사의 다른 창고에서 공급해야 합니다. 또 다른 빈번한 거래는 고객으로부터 받은 대금을 기록하는 것입니다. 이보다 덜 빈번하게 운영자는 이전에 접수된 주문의 상태를 요청하거나, 배송을 위해 10건의 주문을 일괄 처리하거나, 현지 물류창고의 재고 수준을 조사하여 공급 부족 가능성을 시스템에 쿼리합니다. 총 5가지 유형의 트랜잭션이 이 비즈니스 활동을 모델링하는 데 사용됩니다. TPC-C에서 보고하는 성능 지표는 분당 완전히 처리할 수 있는 주문 수를 측정하며 tpm-C로 표시됩니다.

주문에 사용되는 컴퓨터 시스템 외에도 주문의 결제 및 배송, 창고의 재고 수준을 조회할 수 있는 기능도 지원합니다. 따라서 워크로드는 다음과 같이 백분율 값의 균형에 따라 무작위로 선택된 5가지 트랜잭션의 혼합으로 정의됩니다:

  • 신규 주문: 고객으로부터 새 주문을 받습니다: 45%
  • 결제: 고객 잔액을 업데이트하여 결제를 기록합니다: 43%
  • 배송: 주문을 비동기적으로 배송합니다: 4%
  • 주문 상태: 고객의 가장 최근 주문 상태를 검색합니다: 4%
  • 재고 수준: 창고 재고 상태를 반환합니다: 4%

OLTP 기능 및 복잡도 - More OLTP Features and Complexity

TPC-C가 승인됨에 따라 TPC는 TPC-A와 TPC-C라는 두 개의 OLTP 벤치마크를 보유하게 됩니다. TPC는 첫 번째 OLTP 벤치마크인 TPC-A에 대한 지원과 결과 발표를 계속할 예정입니다. TPC-A는 완전한 OLTP 시스템의 모든 주요 기능을 시뮬레이션하며, 현재 업계에서 시스템 비교를 위한 유효한 수단으로 인정받고 있습니다.

TPC-C의 도입으로 TPC는 업계에 더욱 복잡한 OLTP 측정 도구를 추가로 제공하게 되었습니다. TPC-C는 온라인으로 실행되거나 실행 지연을 위해 대기 중인 서로 다른 유형과 복잡성을 가진 5개의 동시 트랜잭션이 혼합되어 있습니다. 이는 측정 시스템의 새로운 구성 요소가 서로 다른 성격의 여러 트랜잭션이 시스템 리소스를 놓고 경쟁함으로써 스트레스를 받기 때문에 기본 OLTP 벤치마킹 모델에서 가장 크게 확장된 모델 중 하나입니다. 또 다른 실질적인 확장은 데이터베이스 구조의 복잡성이 증가했다는 점입니다. 새로운 데이터베이스는 다양한 레코드와 크기를 가진 9가지 유형의 레코드로 구성됩니다. 그 결과, 5개의 트랜잭션 각각이 조작하는 데이터의 다양성이 더욱 커졌습니다. 운영자가 TPC-C에 입력하는 데이터에는 실제 데이터 입력의 기본 특성 중 일부가 포함되어 있습니다. 예를 들어, 운영자가 잘못된 품목 번호를 입력하면 거래가 취소될 수 있습니다.

 

성능 측정 - A Measure of Business Throughput

TPC-C의 처리량은 터미널의 활동 수준에 따른 직접적인 결과입니다. 각 창고에는 10개의 터미널이 있으며 각 터미널에서 5개의 트랜잭션이 모두 가능합니다. 성능 측정 기간 동안 필요한 트랜잭션 조합을 유지하기 위해 원격 터미널 에뮬레이터(RTE)가 사용됩니다. 이 트랜잭션들은 한 주문의 입력, 결제, 확인, 배송되는 전체 비즈니스 처리를 나타냅니다. 보다 구체적으로, 필요한 트랜잭션들은 동일한 수의 신규 주문 및 결제 거래를 생성하고 신규 주문 거래 10건당 하나의 배송 거래, 하나의 주문 상태 거래 및 하나의 재고 수준 거래를 생성하도록 정의됩니다.

 

tpm-C 지표는 분당 실행되는 신규 주문 트랜잭션의 수입니다. 트랜잭션 간의 필수 조합과 다양한 복잡성 및 유형을 고려할 때 이 메트릭은 한두 개의 트랜잭션이나 컴퓨터 작업이 아닌 전체 비즈니스 활동을 더 가깝게 시뮬레이션합니다. 이러한 이유로 tpm-C 메트릭은 비즈니스 처리량을 측정하는 지표로 간주됩니다.

 

RTE는 각 트랜잭션의 응답 시간을 측정하고 키 입력 시간과 생각 시간을 시뮬레이션하는 데도 사용됩니다. 키 입력 시간은 단말기에서 데이터를 입력하는 데 소요되는 시간을 나타내며, 생각 시간은 운영자가 다른 트랜잭션을 요청하기 전에 단말기에서 트랜잭션 결과를 읽는 데 소요되는 시간을 나타냅니다. 각 트랜잭션에는 최소 키 입력 시간과 최소 생각 시간이 있습니다. 또한 각 트랜잭션의 응답 시간은 필수 임계값 미만이어야 합니다. 이러한 임계값은 성능 제한 트랜잭션으로 신규 주문에 우선순위를 부여하기 위해 정의되었습니다.

 

TPC-C의 성능 측정 지표인 tpm-C는 단순히 몇 가지 기본적인 컴퓨터 또는 데이터베이스 트랜잭션을 측정하는 것이 아니라 분당 처리할 수 있는 전체 비즈니스 작업 수를 측정합니다.

 

TPC-C 스펙 문서 다운로드

TPC-C 스펙 문서는 아래 링크에서 다운로드 하실 수 있습니다.

TPC Current Specs 다운로드 하러 가기

위의링크를 누르시면 다음과 같은 페이지가 나오는데 TPC-C를 누르시면 됩니다.

TPC Current Specs 다운로드 페이지 안내

 

참고로, 2024년 5.11.0 버전은 아래에도 파일 첨부해 놓았습니다. 2010년 부터 스펙이 바뀌지 않고 있기 때문에 아래 파일을 받으셔도 크게 다르지 않을 것 같습니다.

tpc-c_v5.11.0.pdf
1.06MB

 

다음 포스팅에서는 TPC-C의 성능 측정 메트릭에 대해서 자세히 알아보겠습니다.

 

facebook twitter kakaoTalk kakaostory naver band shareLink