Η διαδικασία benchmarking δοσοληπτικών συστημάτων βάσεων δεδομένων έχει μακρά ιστορία και παρέχει σημαντική εικόνα για την αποτελεσματικότητα και την
επεκτασιμότητα τέτοιων συστημάτων. Οι πρόσφατες εξελίξεις στις κλιμακούμενες
δοσοληπτικές βάσεις δεδομένων έχουν παρακινήσει την προσαρμογή των παραδοσιακών benchmarks, όπως το native TPC-C, σε μια ποικιλία νέων αρχιτεκτονικών
βάσεων δεδομένων. Ωστόσο, μία πρόκληση με τον πολλαπλασιασμό των αρχιτεκτο-
νικών βάσεων δεδομένων σήμερα, είναι η ανάγκη να αναπτυχθούν και να αξιολογη-
θούν νέα προγράμματα οδήγησης βάσεων δεδομένων (φορητότητα των benchmarkdatabase
διεπαφών σε μια νέα αρχιτεκτονική βάσεων δεδομένων) για ένα ευρύ φά-
σμα συστημάτων. Σε αυτή τη διατριβή, διατυπώνουμε το επιστημονικό υπόβαθρο
που σχετίζεται με δοσοληπτικές βάσεις δεδομένων και τα benchmarks που χρησι-
μοποιούν. Πιο συγκεκριμένα, αναπτύσσουμε και αξιολογούμε ένα πρόγραμμα οδή-
γησης για το Py-TPCC benchmark που στοχεύει στην κλιμακώσιμη βάση δεδομένων
SQL της CockroachDB. Το πρόγραμα οδήγησης μειώνει την πολυπλοκότητα αξιο-
ποιώντας τον psycopg2 PostgreSQL προσαρμογέα για τη γλώσσα προγραμματισμού
Python. Θέτουμε το πλαίσιο πάνω στο οποίο κινηθήκαμε προκειμένου να φτάσουμε
στην υλοποίηση του προγράμματος οδήγησης. Καταγράφουμε όλες τις παραμέτρους
και απαιτήσεις που έπρεπε να λάβουμε υπόψη, ώστε να ορίσουμε τις διαδικασίες
που απαιτούνται. Μέσω της πειραματικής διαδικασίας, αξιολογούμε το PY-TPCC
benchmark για την CockroachDB και συγκρίνουμε με την υπάρχουσα υλοποίηση του
native TPC-C benchmark για την CockroachDB γραμμένο σε γλώσσα προγραμματισμού Go, χρησιμοποιώντας τον pq PostgreSQL προσαρμογέα. Παρουσιάζουμε τα
αποτελέσματα αυτής της σύγκρισης, σημειώνοντας διαφορές τόσο σε ποιοτικά χαρα-
κτηριστικά, όσο και σε επίπεδο αρχιτεκτονικής κώδικα. Τέλος, οδηγούμενοι από τα
αποτελέσματα, συμπεραίνουμε ότι τα σημεία στα οποία υπερτερεί το native TPC-C
benchmark είναι η καλύτερη απόδοση του συστήματος σε επίπεδο δοσοληψιών, ενώ
από την άλλη, το Py-TPCC benchmark υστερεί σε θέματα απόδοσης και κλιμάκω-
σης, ωστόσο ευνοεί την εύκολη υλοποίηση ενός νέου προγράμματος οδήγησης από
τον προγραμματιστή.
(EL)
The process of benchmarking transactional database systems has a long history and
provides important insight into the efficiency and scalability of such systems. Recent
advances in scalable transactional databases have motivated the adaptation of traditional
transactional benchmarks, such as TPC-C, to a variety of new database architectures.
However, a challenge with the proliferation of database architectures today
is the need to develop and evaluate new database drivers (ports of the benchmarkdatabase
interface to a new database architecture) for a wide range of systems. In this
thesis, we develop and evaluate a driver for the Py-TPCC benchmark targeting the
CockroachDB scalable SQL database. The driver lowers complexity by leveraging the
psycopg2 PostgreSQL adapter for the Python programming language. We evaluate the
Py-TPCC benchmark for CockroachDB and compare to an existing TPC-C benchmark
implementation for CockroachDB written in Go, using the pq PostgreSQL adapter.
Our results indicate that the use of a SQL interface (when offered by the scalable
database) simplifies the development of TPC-C benchmark drivers. Despite similarities
in the two implementations of the TPC-C benchmark, we observe performance
differences that can be attributed to the variable efficiencies of use of CockroachDB
resources across implementations of the PostgreSQL adapter.
(EN)