TPC-C

TPC-C-mätning i ett testlabb, cirka 2008.

TPC-C , förkortning för Transaction Processing Performance Council Benchmark C, är ett riktmärke som används för att jämföra prestandan för online-transaktionsbehandlingssystem (OLTP). Denna industristandard publicerades i augusti 1992 och ersatte så småningom den tidigare TPC-A, som förklarades föråldrad 1995. Den har genomgått ett antal förändringar för att hålla den relevant eftersom datorprestanda växte med flera storleksordningar , med den nuvarande versionen från och med 2021, 5.11, släppt 2010. 2006 lades ett nyare OLTP-riktmärke till i sviten, TPC-E, men TPC-C är fortfarande i utbredd användning.

TPC-C-systemet modellerar en grossistverksamhet med flera lager, helt enkelt känd som "företaget". I ett minimalt test har företaget tio lager med vardera tio användarterminaler. Varje lager betjänar tio definierade försäljningsdistrikt, vart och ett med 3 000 kunder som beställer mot en produktkatalog på 100 000 artiklar. De vanligaste transaktionerna är kundorder, med i genomsnitt tio artiklar på varje order, och kundbetalningar. Mindre frekventa förfrågningar frågar efter status för order och lager, skickar order och fyller på lager som blir låga. För att testa prestandan hos ett givet system, utökas antalet lager för att uppfylla det minimum som krävs för att mäta den målsatta prestandanivån.

Resultaten av riktmärket mäts i transaktioner per minut, så kallade tpmC . Det första tpmC-resultatet publicerades i september 1992 för en IBM AS/400 och gav ett resultat på 54 tpmC. På 2000-talet var det genomsnittliga resultatet för avancerade maskiner 2,4 miljoner tpmC, och företag byggde system av mycket stor storlek i ett försök att fånga rekordet. Det nuvarande rekordet sattes 2020 med hjälp av cloud computing som gav 707,3 miljoner tpmC. De senaste resultaten för mindre lokala system har fokuserat på att sänka kostnaden per tpmC.

IBM modifierade TPC-C för att skapa en förenklad version känd som Commercial Processing Workload för eget internt bruk, liknande konverteringar är vanliga men i allmänhet inte kända utanför respektive företag.

Historia

Tidigare arbete

Utgivningen av relationsdatabaser som Oracle ledde till debatter inom branschen mellan relationsmodellen och de äldre CODASYL -koncepten. Ur dessa debatter växte en önskan att erbjuda realistiska prestationsuppskattningar. 1985 Jim Gray från Tandem Computers medförfattare till en artikel som nu är känd som "Anon et.al.", som beskrev en potentiell standard vid namn DebitCredit.

Detta såg snabbt många modifieringar och jämförelser mellan äpplen och apelsiner, vilket i sin tur ledde till ett försök från Tom Sawyer och Omri Serlin i juni 1988 att standardisera systemet och publicera en ny version. Publiceringen av denna version och pågående kontroverser om dess användning ledde till att ett industrikonsortium i augusti 1988 skapades vid namn Transaction Processing Performance Council, eller TPC, för att ta över sådant arbete och skapa en formell industristandard.

TPC producerade sitt första industristandardriktmärke, kallat TPC-A, på basis av DebitCredit med tillägg av fullständiga ACID -egenskaper. Övriga krav var i första hand organisatoriska; för att skicka in ett resultat var man nu tvungen att tillhandahålla fullständiga detaljer om systemet och testning, med föreslagna revisioner från tredje part, och all prisinformation måste inkludera underhållskontrakt över en period på fem år. Ett relaterat riktmärke släpptes kort efter och fick namnet TPC-B, som främst skilde sig åt genom att det använde batch-ingångar snarare än att emulera terminalingång.

Orderläggning

TPC-C Subcommittee i Paris 1992 för att fira releasen av version 1.0.

Ungefär när TPC-A färdigställdes arbetade Digital Equipment Corporation (DEC) på ett nytt distribuerat databassystem , RdbStar. Detta ledde till utvecklingen av ett nytt riktmärke för att mäta det nya databassystemets prestanda. RdbStars prestationsteam undersökte många befintliga pre-TPC-riktmärken som Wisconsin benchmark, AS3AP och Set Query Benchmark. De undersökte också verkliga databasanvändningsfall från en granskning av DEC:s europeiska divisions kunder. Till slut valde de komponenter från en opublicerad arbetsbelastning från Austin -baserade Microelectronics and Computer Consortium som simulerade en lagerverksamhet. Teamet använde denna arbetsbelastning som grund för sitt eget benchmark, känt som Order-Entry.

När TPC-B hade publicerats i augusti 1990 fanns det redan farhågor om att debet/kredit var för enkelt och inte riktigt modellerade typiska arbetsbelastningar. I november startade en ny satsning med en uppmaning till industrin att tillhandahålla ett nytt riktmärke. IBM svarade med sin RAMP-C medan DEC erbjöd Order-Entry. DEC:s förslag valdes ut och dess främsta författare, Francois Raab, valdes som teknisk ledare för standardiseringsarbetet. Denna ansträngning varade i arton månader och kulminerade i släppet av TPC-C version 1.0 den 13 augusti 1992.

Post-release

TPC-C-riktmärkespecifikationen genomgick flera mindre revisioner under de närmaste åren. Revision 1.1 från juni 1993 klargjorde en del av språket och krävde prissättning på kundsidan av det testade systemet. 2.0 från oktober 1993 ändrade olika rapporteringskrav och lade till språk för att utesluta alla benchmark-specifika förbättringar. 3.0 i februari 1996 lade till transaktionsspårning, nya fält för tillägg av bilder (till sist aldrig använda) och avlägsnande av terminalerna från det totala systempriset, eftersom kostnaden för servrarna vid denna tidpunkt hade minskat tillräckligt mycket för att kostnaden för terminaler höll på att bli för stor av en del av det totala priset.

Riktmärket fortsatte att utvecklas för att tillgodose uppkomsten av nya datorarkitekturer som klient-servermodellen och för att förtydliga reglerna för korrekt utförande av teststegen och den erforderliga rapporteringen. De mest betydande förändringarna ägde rum 2000 och bestod i att byta underhållsprissättning från fem till tre år och från fem 8-timmarsdagar (5x8) till sju 24-timmarsdagar (7x24), vilket minskade mättiden från åtta till två timmar och minska behovet av arkivutrymme med en faktor tre. Dessa tre stora förändringar släpptes som version 5.0 den 26 februari 2001. Mindre ändringar har gjorts sedan de inneburit förtydligande av olika krav som anges i referensspecifikationen. Från och med 2021 är den senaste revideringen 5.11, publicerad 11 februari 2010.

Det första publicerade resultatet från det nya riktmärket publicerades i september 1992 vid 54 tpmC. Sedan dess har rekorden för TPC-C ökat med tiden nästan exakt enligt Moores lag . De första resultaten var tiotals, men efter ett år var dessa hundratal, och i januari 1998 stod rekordet på 52 871. År 2010 nådde detta miljonintervallet. Under 2000-talet minskade antalet rekord då kostnaden för att slå rekordet växte enormt. Under denna period Microsoft sin uppmärksamhet mot det nyare TPC-E-riktmärket, vilket lämnade Oracle att bygga enorma system och upprepade gånger satte rekordet som andra inte hade råd att matcha.

Rekordförsök efter denna punkt var relativt få fram till uppkomsten av cloud computing i slutet av 2010-talet. Den nuvarande rekordhållaren är Ant Financial , vars OceanBase driver Alibaba . I augusti 2019 satte de rekordet på drygt 60 miljoner, det första försöket sedan Oracles 8 miljoner resultat 2013. Andra var snabba med att påpeka att Oracles rekord låg på en enda arbetsstation medan Ants krävde en komplett datorfarm. För att få sådana klagomål att vila publicerade Ant i maj 2020 ett nytt rekord på 707 miljoner. Detta rekord står sig än i dag.

Beskrivning

TPC-C är baserat på en orderingångsbelastning som presenteras för TPC av DEC. Det tidigare TPC-A-riktmärket hade främst fokuserat på databasuppdateringar som matchade operationerna i ett förenklat debet-/kreditbokföringssystem, som inte matchade verkliga användningsmönster. Ett urval av produktionsbelastningar visade att en mer komplex blandning av bilagor varvat med uppdateringar och skrivskyddade operationer behövdes för att mer adekvat representera verkliga mönster. Dessutom hade TPC-A-databasen inte mycket komplexitet; verkliga system sprider sina data över många fler tabeller av mer varierande storlek och komplexitet.

TPC-C använder ett databasschema med totalt nio tabeller. Strukturen drivs i första hand av Warehouse-tabellen, som innehåller ett antal lagerposter betecknade W. W har ett lägsta värde på 10 och måste ökas för att matcha mättnadsnivån för de testade systemen, med W som skalningsfaktor. Det rapporterade prestandamåttet får inte överstiga 12,86 x W. Alla lager har ett lager av samma katalog med artiklar. Artikeltabellen har 100 000 rader och lagertabellen har B x 100 000 rader. En andra gren av schemat är distrikten, med 10 poster för varje lager. Distrikten har kunder, 3 000 per distrikt. De genererar order med 5 till 15 orderrader per order. Detta betyder att Order-Line är den största tabellen, med ungefär W(arehouses) x 3000 (Kunder) x 10 (initial Orders) x 10 (Order Lines) = B x 300.000 poster. Processen att fylla en order interagerar med lagerposterna som är kopplade till ett eller flera lager.

Aktiviteten består av en serie av W x 10 virtuella terminaler som lägger in transaktioner enligt en semislumpmässig formel; den primära transaktionen är New-Order som skapar en enda order. Varje beställning resulterar i en betalningstransaktion och en leverans. En orderstatus och en lagernivåtransaktion genereras för var tionde nyordertransaktion. En "fjärrterminalemulator" (RTE) är programmerad för att simulera en användares datainmatning, skrivfördröjningar, mellanfält och mellantransaktionsfördröjningar. RTE håller också reda på tiden mellan användarens begäran om varje transaktion och dess slutförande, kallad svarstid . Hastigheten för New-Order-transaktioner som utförs per minut rapporteras som tpmC-värdet (transaktion per minut C) och representerar det primära prestandamåttet för riktmärket.

Tidiga resultat visade att i jämförelse med TPC-A var TPC-C:s arbetsbelastning ungefär tio gånger så komplex. Endast en transaktionstyp av fem, 44 % av det totala, ingår i TPC-C-resultatet för transaktion per minut, medan TPC-A mäts i transaktioner per sekund och inkluderar varje transaktion. Detta betyder att de två siffrorna inte är direkt jämförbara utan någon konvertering, multipliceras med 60 för att ta hänsyn till sekunder till minuter, och 2,3 för att redogöra för delmängden av transaktioner som ingår. Med tanke på en enda maskin, IBM RS/6000 Model 570, returnerar TPC-A ett värde på 129 tpsA, medan TPC-C returnerar 365,45 tpmC. Genom att multiplicera tpmC med 2,3 och sedan dividera med 60 för att konvertera till tpsA-termer blir resultatet 13,5, en skillnad i prestanda på cirka 9,5 gånger.

Inlämning av ett TPC-C-resultat kräver också avslöjande av den detaljerade prissättningen för den testade konfigurationen, inklusive underhåll av hårdvara och mjukvara med 7/24 täckning under en treårsperiod. Det prissatta systemet måste inkludera inte bara själva systemet, utan också tillräckligt med lagringsutrymme för att lagra data som genereras genom att köra systemet med den angivna tpmC-hastigheten under en period av 60 dagar. I teorin kommer en tpmC på 1 att generera 252 kB poster i historik, 133 i beställningar och 1325 kB i beställningsrad. Det totala systempriset kombineras med den uppmätta tpmC för att producera ett pris/prestandamått. Medan vissa publicerade resultat syftar till att producera högsta möjliga tpmC, har många fler publicerade resultat inriktat sig på en topplacering i kategorin konkurrenskraftigt pris/prestanda, ibland med en relativt låg tpmC.

Riktmärket utförs vanligtvis av leverantören av en av huvudkomponenterna (t.ex. databassystem, back-end-server, etc.) som måste lämna in en avslöjanderapport med fullständiga detaljer om systemkonfigurationen, dess inställning, testvillkoren. och alla resultat insamlade. Hela benchmarkimplementeringen, alla teststeg, de uppmätta resultaten, systemprissättningen och upplysningsrapporten måste valideras av en oberoende revisor certifierad av TPC.

Citat

Bibliografi

  •    Serlin, Omri (1991). "Historien om debetkrediter och TPC". Benchmark-handboken för databas- och transaktionsbehandlingssystem . M. Kaufmann förlag. s. 19–38. CiteSeerX 10.1.1.90.6123 . ISBN 9781558601598 .
  • Chen, Yanpei; Raab, Francois; Katz, Randy. Från TPC-C till Big Data Benchmarks: A Functional Workload Model . Workshop om Big Data Benchmarks. s. 28–43. doi : 10.1007/978-3-642-53974-9_4 .
  •   Nambiar, Raghunath; Poess, Meikel (2011). "Transaktionsprestanda vs. Moores lag: En trendanalys". Föreläsningsanteckningar i datavetenskap . Föreläsningsanteckningar i datavetenskap. Vol. 6417. Springer-Verlag. s. 110–120. Bibcode : 2011LNCS.6417..110N . doi : 10.1007/978-3-642-18206-8_9 . ISBN 978-3-642-18205-1 .
  • TPC Benchmark C Revision 5.11 (PDF) (Teknisk rapport). Transaction Processing Performance Council. februari 2010.
  • Shanley, Kim (februari 1998). "TPC:s ursprung och de första 10 åren" . Resultatrådet för transaktionsbearbetning .
  • Raab, Francois; Kohler, Walt; Shah, Amitabh. "Översikt över TPC-C Benchmark, The Order-Entry Benchmark" . Resultatrådet för transaktionsbearbetning .
  • Raab, Francois (1998). Gray, Jim (red.). Benchmark Handbook (PDF) .
  • Morgan, Timothy Prickett (29 september 2009). "TPC slår Oracle på benchmarkkrav" . Registret .
  • "TPC-C" . Kackerlacka Labs .
  • Wevers, Lesley; Hofstra, Matthijs; Tammens, Menno; Van Keulen, Maurice (januari 2015). Ett riktmärke för icke-blockerande schematransformationer online . Fjärde internationella konferensen om datahanteringsteknologier och applikationer. doi : 10.5220/0005500202880298 .
  • "OceanBase slår TPC-C-rekord: En dialog med myrfinansexperter" . Alibaba moln . 5 juni 2020.