Scalability of NewSQL Databases in a Cloud Environment
Abstract
De siste årene har det vært en økt etterspørsel etter NewSQL databaser, som er systemer som både skalerer godt horisontalt, men også kan garantere isolasjon og konsistens mellom transaksjoner. NewSQL er et ganske nytt område, og det finnes lite forskning om forskjellene i databasenes ytelse og arkitektur. Denne oppgaven undersøker tre NewSQL systemer i dybden og evaluerer deres ytelse. Disse systemene er CockroachDB, TiDB og YugabyteDB, og har alle åpen kildekode.
For å evaluere disse databasene har vi bygget en ny automatisk testmetode som kan opprette og evaluere databaseclustere uten manuelle handlinger. Gjennom vårt forskningsarbeid har vi brukt denne metoden til å automatisk evaluere over 200 clustere ved bruk av over 1,500 virtuelle maskiner i en sky. Størrelsen på disse tallene viser at denne testmetoden har vært vellykket.
Gjennom evalueringen av ovennevnte databasesystemer fant vi at ytelsen deres er sammenlignbar, men at systemene har ulike kompromisser. CockroachDB og serialiserbar YugabyteDB har sterkere transaksjonsgarantier enn TiDB og øyeblikksbilde YugabyteDB, men for skriveoperasjoner har de lavere datagjennomstrømming og høyere forsinkelse. For leseoperasjoner oppnår derimot CockroachDB bedre resultater enn de andre systemene, hvilket betyr at kompromisset kun påvirker ytelsen til skriveoperasjoner. In recent years, there has been an increased demand for NewSQL databases, which are systems that both scale horizontally and can guarantee transaction isolation and consistency. NewSQL systems are quite new, and little research exists about the difference between their architecture and performance. In this thesis, we investigate the open source NewSQL systems CockroachDB, TiDB and YugabyteDB in depth, and perform several evaluations of their performance characteristics.
To evaluate these databases, we have built a novel automated testing approach, which can create and evaluate clusters without any manual intervention. During our research, we used this system to automatically test over 200 separate clusters using more than 1,500 virtual machines in a cloud, which speaks to the success of this approach.
During our evaluation, we found that the performance of the databases is comparable, but that they have different trade-offs. CockroachDB and serializable YugabyteDB provide higher levels of transaction isolation than TiDB and snapshot YugabyteDB, but for write operations, they have lower throughput and higher latency. However, CockroachDB outperforms the other systems in reads, which means that the transaction isolation trade-off only affects write operations.