
TPC-C , acrónimo de Transaction Processing Performance Council Benchmark C , es un estándar de referencia utilizado para comparar el rendimiento de los sistemas de procesamiento de transacciones en línea (OLTP). Este estándar de la industria se publicó en agosto de 1992 y, finalmente, reemplazó al anterior TPC-A, que se declaró obsoleto en 1995. Ha sufrido varios cambios para mantenerse relevante a medida que el rendimiento de las computadoras creció exponencialmente , siendo la versión actual de 2021, 5.11, lanzado en 2010. En 2006, se agregó a la suite un nuevo benchmark OLTP, TPC-E, pero TPC-C sigue siendo de uso generalizado.
El sistema TPC-C modela una operación mayorista con múltiples almacenes, conocida simplemente como "la Compañía". En una prueba mínima, la compañía cuenta con diez almacenes, cada uno con diez terminales de usuario. Cada almacén atiende diez distritos de ventas definidos, cada uno con 3000 clientes que realizan pedidos de un catálogo de productos de 100 000 artículos. Las transacciones más frecuentes son los pedidos de los clientes, con un promedio de diez artículos por pedido, y los pagos de los clientes. Las consultas menos frecuentes se refieren al estado de los pedidos y del inventario del almacén, al envío de pedidos y a la reposición de existencias bajas. Para probar el rendimiento de un sistema determinado, se aumenta el número de almacenes hasta alcanzar el mínimo necesario para medir el nivel de rendimiento objetivo. [ 1 ]
Los resultados de la prueba comparativa se miden en transacciones por minuto, conocidas como tpmC . El primer resultado de tpmC se publicó en septiembre de 1992 para un IBM AS/400 y arrojó un resultado de 54 tpmC. Para la década de 2000, el resultado promedio para máquinas de gama alta era de 2,4 millones de tpmC, y las empresas estaban construyendo sistemas de tamaño muy grande en un esfuerzo por alcanzar el récord. El récord actual se estableció en 2025 utilizando PolarDB de Alibaba Cloud que proporcionó 2.055 mil millones de tpmC. [ 2 ] [ 3 ] Los resultados recientes para sistemas locales más pequeños se han centrado en reducir el costo por tpmC.
IBM modificó TPC-C para crear una versión simplificada, conocida como Commercial Processing Workload, para su uso interno. Conversiones similares son habituales, pero generalmente se desconocen fuera de las respectivas empresas.
Historia
Trabajos anteriores
El lanzamiento de bases de datos relacionales como Oracle generó debates en la industria entre el modelo relacional y los conceptos más antiguos de CODASYL . De estos debates surgió el deseo de ofrecer estimaciones de rendimiento realistas. En 1985, Jim Gray, de Tandem Computers, fue coautor de un artículo conocido como "Anon et al.", que esbozaba un posible estándar llamado DebitCredit. [ 4 ]
Esto provocó rápidamente muchas modificaciones y comparaciones inapropiadas, lo que, a su vez, llevó a que en junio de 1988 Tom Sawyer y Omri Serlin intentaran estandarizar el sistema y publicar una nueva versión. [ 5 ] La publicación de esta versión y la continua controversia sobre su uso llevaron a la creación, en agosto de 1988, de un consorcio industrial llamado Transaction Processing Performance Council (TPC), para asumir dicho trabajo y crear un estándar industrial formal. [ 6 ]
El TPC produjo su primer estándar de referencia de la industria, denominado TPC-A, basado en DebitCredit con la adición de propiedades ACID completas . Otros requisitos eran principalmente organizativos; para presentar un resultado, ahora era necesario proporcionar detalles completos del sistema y las pruebas, con la sugerencia de auditorías de terceros, y cualquier información de precios debía incluir contratos de mantenimiento por un período de cinco años. Poco después se publicó un estándar de referencia relacionado, denominado TPC-B, que se diferenciaba principalmente en que utilizaba entradas por lotes en lugar de emular la entrada de terminal. [ 7 ]
Entrada de pedidos

Aproximadamente en la época en que se estaba finalizando TPC-A, Digital Equipment Corporation (DEC) estaba trabajando en un nuevo sistema de base de datos distribuida , RdbStar. Esto llevó al desarrollo de un nuevo benchmark para medir el rendimiento del nuevo sistema de base de datos. El equipo de rendimiento de RdbStar analizó muchos benchmarks existentes anteriores a TPC, como el benchmark de Wisconsin, AS3AP y el Set Query Benchmark. También examinaron casos de uso de bases de datos reales a partir de una encuesta realizada a los clientes de la división europea de DEC. Finalmente, seleccionaron componentes de una carga de trabajo no publicada del Consorcio de Microelectrónica e Informática de Austin que simulaba una operación de almacenamiento. El equipo utilizó esta carga de trabajo como base para su propio benchmark, conocido como Order-Entry. [ 8 ]
Para cuando se publicó TPC-B en agosto de 1990, ya existía preocupación por la simplicidad de Debit/Credit y su escasa capacidad para modelar cargas de trabajo típicas. En noviembre, se inició un nuevo esfuerzo con una convocatoria a la industria para que proporcionara un nuevo benchmark. IBM respondió con su RAMP-C, mientras que DEC ofreció Order-Entry. La propuesta de DEC fue seleccionada, y su autor principal, Francois Raab, fue elegido como líder técnico del esfuerzo de estandarización. [ 8 ] Este esfuerzo duró dieciocho meses y culminó con el lanzamiento de la versión 1.0 de TPC-C el 13 de agosto de 1992. [ 9 ]
Tras el lanzamiento
La especificación del benchmark TPC-C sufrió varias revisiones menores durante los años siguientes. La revisión 1.1 de junio de 1993 aclaró parte del lenguaje y requirió que el cliente fijara el precio del sistema probado. La versión 2.0 de octubre de 1993 modificó varios requisitos de informes y añadió un texto para excluir cualquier mejora específica del benchmark. La versión 3.0 de febrero de 1996 añadió el seguimiento de transacciones, nuevos campos para la adición de imágenes (que finalmente nunca se utilizaron) y la eliminación de los terminales del precio total del sistema, ya que para entonces el coste de los servidores había disminuido lo suficiente como para que el coste de los terminales representara una parte demasiado grande del precio total. [ 9 ]
El benchmark continuó evolucionando para adaptarse a la aparición de nuevas arquitecturas informáticas, como el modelo cliente-servidor , y para aclarar las reglas que rigen la correcta ejecución de los pasos de prueba y los informes requeridos. Los cambios más significativos se produjeron en el año 2000 y consistieron en cambiar el precio del mantenimiento de cinco a tres años y de cinco días de 8 horas (5x8) a siete días de 24 horas (7x24), reducir la duración de la medición de ocho a dos horas y reducir el requisito de espacio de archivo en un factor de tres. Estos tres cambios principales se publicaron como la versión 5.0 el 26 de febrero de 2001. Desde entonces se han realizado cambios menores que implican la aclaración de varios requisitos especificados en la especificación del benchmark. A partir de 2021, la última revisión es la 5.11, publicada el 11 de febrero de 2010. [ 10 ]
El primer resultado publicado del nuevo benchmark se publicó en septiembre de 1992 con 54 tpmC. [ 11 ] Desde entonces, los récords de TPC-C aumentaron con el tiempo casi exactamente de acuerdo con la Ley de Moore . Los resultados iniciales estaban en las decenas, pero después de un año estos se situaron en los cientos, y en enero de 1998 el récord se situó en 52.871. [ 11 ] Para 2010 esto alcanzó el rango del millón. Durante la década de 2000, el número de récords disminuyó a medida que el costo de romper el récord aumentó enormemente. Durante este período, Microsoft centró su atención en el nuevo benchmark TPC-E , dejando a Oracle construir enormes sistemas y establecer repetidamente el récord que otros no podían permitirse igualar. [ 12 ]
Los intentos de récord posteriores a este punto fueron relativamente escasos hasta el auge de la computación en la nube a finales de la década de 2010. El actual poseedor del récord es Ant Financial , cuya plataforma OceanBase impulsa Alibaba . En agosto de 2019, establecieron el récord con poco más de 60 millones, el primer intento desde el resultado de 8 millones de Oracle en 2013. Algunos señalaron rápidamente que el récord de Oracle se logró en una sola estación de trabajo, mientras que el de Ant requirió una granja de computación completa. Para disipar estas dudas, en mayo de 2020 Ant publicó un nuevo récord de 707 millones. Este récord se mantiene vigente hasta el día de hoy. [ 13 ]
Descripción
TPC-C se basa en una carga de trabajo de entrada de pedidos presentada a TPC por DEC. La evaluación comparativa anterior, TPC-A, se centró principalmente en actualizaciones de bases de datos que coincidían con las operaciones de un sistema de contabilidad de débito/crédito simplificado, lo que no se ajustaba a los patrones de uso reales. Una muestra de cargas de trabajo de producción demostró que se necesitaba una combinación más compleja de inserciones intercaladas con actualizaciones y operaciones de solo lectura para representar de forma más adecuada los patrones del mundo real. Además, la base de datos de TPC-A no tenía mucha complejidad; los sistemas del mundo real distribuyen sus datos en muchas más tablas de tamaño y complejidad más variados. [ 14 ]
TPC-C utiliza un esquema de base de datos con nueve tablas en total. La estructura está impulsada principalmente por la tabla Almacén, que contiene una cantidad de entradas de almacén denotadas por W. W tiene un valor mínimo de 10, y debe aumentarse para coincidir con el nivel de saturación de los sistemas probados, utilizando W como factor de escala. La métrica de rendimiento informada no puede exceder 12,86 x W. [ 1 ] Todos los almacenes mantienen un stock del mismo catálogo de artículos. La tabla Artículo tiene 100.000 filas y la tabla Stock tiene W x 100.000 filas. Una segunda rama del esquema son los Distritos, con 10 entradas para cada Almacén. Los Distritos tienen Clientes, 3000 por Distrito. Generan Pedidos con 5 a 15 Líneas de Pedido por Pedido. Esto significa que Order-Line es la tabla más grande, con aproximadamente W (almacenes) x 3000 (clientes) x 10 (pedidos iniciales) x 10 (líneas de pedido) = W x 300 000 entradas. El proceso de completar un pedido interactúa con las entradas de stock asociadas a uno o más almacenes. [ 15 ]
La actividad consiste en una serie de W x 10 terminales virtuales que ingresan transacciones según una fórmula semi-aleatoria; la transacción principal es Nuevo-Orden, que crea un solo pedido. Cada pedido resulta en una transacción de Pago y una de Entrega. Se genera una transacción de Estado del Pedido y una de Nivel de Stock por cada diez transacciones de Nuevo-Orden. Un " emulador de terminal remoto " (RTE) está programado para simular la entrada de datos del usuario, los retrasos de escritura, los retrasos entre campos y entre transacciones. El RTE también registra el tiempo entre la solicitud de cada transacción por parte del usuario y su finalización, denominado tiempo de respuesta . La tasa de transacciones de Nuevo-Orden ejecutadas por minuto se informa como el valor tpmC (transacción por minuto C) y representa la métrica de rendimiento principal del benchmark. [ 14 ]
Los primeros resultados indicaron que, en comparación con TPC-A, la carga de trabajo de TPC-C era aproximadamente diez veces más compleja. Solo un tipo de transacción de los cinco existentes (el 44 % del total) se incluye en el resultado de transacciones por minuto de TPC-C, mientras que TPC-A se mide en transacciones por segundo e incluye todas las transacciones. Esto significa que las dos cifras no son directamente comparables sin alguna conversión, multiplicando por 60 para tener en cuenta la conversión de segundos a minutos y por 2,3 para tener en cuenta el subconjunto de transacciones incluidas. Considerando una sola máquina, el IBM RS/6000 Modelo 570, TPC-A devuelve un valor de 129 tpsA, mientras que TPC-C devuelve 365,45 tpmC. Multiplicando el valor de tpmC por 2,3 y luego dividiendo por 60 para convertirlo a términos de tpsA, el resultado es 13,5, una diferencia de rendimiento de aproximadamente 9,5 veces. [ 16 ]
La presentación de un resultado TPC-C también requiere la divulgación del precio detallado de la configuración probada, incluido el mantenimiento de hardware y software con cobertura 24/7 durante un período de tres años. El sistema con precio debe incluir no solo el sistema en sí, sino también almacenamiento suficiente para guardar los datos generados al ejecutar el sistema a la tasa tpmC citada durante un período de 60 días. En teoría, un tpmC de 1 generará 252 kB de entradas en Historial, 133 en Órdenes y 1325 kB en Línea de Órdenes. [ 17 ] El precio total del sistema se combina con el tpmC medido para producir una métrica de precio/rendimiento. Si bien algunos resultados publicados apuntaban a producir el tpmC más alto posible, muchos más resultados publicados apuntaban a un puesto destacado en la categoría competitiva de precio/rendimiento, a veces con un tpmC relativamente bajo. [ 16 ]
La prueba de rendimiento suele ser ejecutada por el proveedor de uno de los componentes principales (por ejemplo, sistema de base de datos, servidor back-end, etc.), quien debe presentar un informe de divulgación con detalles completos sobre la configuración del sistema, su configuración, las condiciones de la prueba y todos los resultados recopilados. [ 18 ] La implementación completa de la prueba de rendimiento, todos los pasos de la prueba, los resultados medidos, el precio del sistema y el informe de divulgación deben ser validados por un auditor independiente certificado por el TPC. [ 19 ]
Referencias
Citas
- 1 2 TPC 2010 , pág. 64.
- ↑ Yang, Xinjun; Li, Feifei (1 de agosto de 2025). "De la ampliación a la expansión: el camino de PolarDB para alcanzar los 2 mil millones de tpmC" . Actas de la Fundación VLDB . 18 : 5059–5072 . doi : 10.14778/3750601.375062 (inactivo el 6 de abril de 2026) . Recuperado el 4 de abril de 2026 .
{{cite journal}}: CS1 maint: DOI inactivo desde abril de 2026 ( enlace ) - ↑ "PolarDB de Alibaba Cloud rompe el récord mundial de la prueba de rendimiento TPC-C con una innovadora arquitectura de 'desacoplamiento de tres capas'" . Alibaba Cloud . Consultado el 4 de abril de 2026 .
- ↑ Serlin 1991 , págs. 20–21.
- ↑ Serlin 1991 , pág. 20.
- ↑ Serlin 1991 , págs. 21–22.
- ↑ Serlin 1991 , págs. 21–30.
- ^ Chen , Raab y Katz , pág. 3.1.
- 1 2 Raab 1998 , pág. 3.3.2.
- ↑ TPC 2010 , pág. 3.
- 1 2 Shanley 1998 .
- ↑ Nambiar & Poess 2011 , pág. 117.
- ↑ Hormiga 2020 .
- 1 2 Raab, Kohler y Shah .
- ^ Wevers y col. 2015 , pág. 7.
- 1 2 Raab 1998 , pág. 3.2.
- ↑ Raab 1998 , pág. 3.1.
- ↑ TPC 2010 , págs. 93–104.
- ↑ TPC 2010 , págs. 105–109.
Bibliografía
- Serlin, Omri (1991). «La historia del débito y el crédito y el TPC». Manual de referencia para sistemas de bases de datos y procesamiento de transacciones . M. Kaufmann Publishers. pp. 19–38 . CiteSeerX 10.1.1.90.6123 . ISBN 9781558601598.
- Chen, Yanpei; Raab, Francois; Katz, Randy. De TPC-C a los benchmarks de Big Data: un modelo de carga de trabajo funcional . Taller sobre benchmarks de Big Data. págs. 28–43 . doi : 10.1007/978-3-642-53974-9_4 .
- Nambiar, Raghunath; Poess, Meikel (2011). "Rendimiento de las transacciones frente a la Ley de Moore: un análisis de tendencias". Lecture Notes in Computer Science . Vol. 6417. Springer-Verlag. pp. 110–120 . Bibcode : 2011LNCS.6417..110N . doi : 10.1007/978-3-642-18206-8_9 . ISBN 978-3-642-18205-1.
- TPC Benchmark C Revisión 5.11 (PDF) (Informe técnico). Transaction Processing Performance Council. Febrero de 2010.
- Shanley, Kim (febrero de 1998). "Orígenes del TPC y los primeros 10 años" . Transaction Processing Performance Council .
- Raab, Francois; Kohler, Walt; Shah, Amitabh. "Descripción general del TPC-C Benchmark, el Order-Entry Benchmark" . Transaction Processing Performance Council .
- Raab, Francois (1998). Gray, Jim (ed.). El manual de referencia (PDF) .
- Morgan, Timothy Prickett (29 de septiembre de 2009). "TPC critica duramente a Oracle por sus afirmaciones sobre los índices de referencia" . The Register .
- "TPC-C" . Laboratorios Cucaracha .
- Wevers, Lesley; Hofstra, Matthijs; Tammens, Menno; Van Keulen, Maurice (enero de 2015). Un punto de referencia para transformaciones de esquemas sin bloqueo en línea . 4.ª Conferencia Internacional sobre Tecnologías y Aplicaciones de Gestión de Datos. doi : 10.5220/0005500202880298 .
- "OceanBase bate el récord TPC-C: Diálogo con expertos financieros de Ant" . Alibaba Cloud . 5 de junio de 2020.
- Puntos de referencia (informática)