Topik ini menjelaskan performa Confidential Database dalam berbagai kondisi enkripsi untuk membantu Anda mengevaluasi dan memilih solusi enkripsi.
Lingkungan pengujian
Item konfigurasi | Instance ECS (client pengujian dideploy pada instance ECS) | Kluster PolarDB untuk MySQL | Deskripsi |
Wilayah dan zona | Hangzhou Zona H (primary), Hangzhou Zona J | Hangzhou Zona H | Pengujian dilakukan di wilayah dan zona yang sama. |
Tipe jaringan | Virtual Private Cloud (VPC) | Virtual Private Cloud (VPC) | Pengujian dilakukan di VPC yang sama. |
CPU dan memori | 8 core, 32 GB | 64 core, 512 GB | Tidak berlaku |
Tipe instance | ecs.s6-c1m4.2xlarge | polar.mysql.x8.8xlarge | Tidak berlaku |
Versi instance/Image | Alibaba Cloud Linux 2.1903 LTS 64-bit Quick Launch | Versi kernel: 8.0.2.2.12 | Tidak berlaku |
Tool pengujian (oltpbench)
Oltpbench adalah tool benchmark open source untuk Online Transactional Processing (OLTP) yang menguji performa dan skalabilitas sistem manajemen database. Tool ini menyediakan berbagai program benchmark, seperti TPC-C, TPC-E, dan YCSB, untuk mensimulasikan berbagai jenis workload. Topik ini menggunakan pengujian TPC-C dari oltpbench untuk mengevaluasi performa Confidential Database dalam skenario OLTP.
Metrik
Transactions Per Second (TPS): Jumlah transaksi yang dieksekusi database per detik. Metrik ini diukur berdasarkan jumlah operasi COMMIT yang berhasil.
Langkah pengujian
Database rahasia mengenkripsi data berdasarkan aturan enkripsi yang Anda tetapkan. Pengujian ini melakukan analisis what-if terhadap performa database rahasia dalam berbagai skenario dengan menyesuaikan kolom data terenkripsi dalam pengujian TPC-C.
Konfigurasikan proyek oltpbench pada instance ECS Anda. Untuk informasi selengkapnya, lihat Configure oltpbench.
Integrasikan EncJDBC dengan oltpbench. Untuk informasi selengkapnya, lihat Integrate EncJDBC.
Buat file konfigurasi oltpbench sebagai berikut:
<?xml version="1.0"?> <parameters> <!-- Detail koneksi --> <dbtype>mysql</dbtype> <driver>com.aliyun.encdb.mysql.jdbc.EncDriver</driver> <DBUrl>jdbc:mysql:encdb://xxxx.rwlb.rds.aliyuncs.com:3306/xxxx</DBUrl> <DBName>xxxx</DBName> <username>xxxx</username> <password>xxxxx</password> <isolation>TRANSACTION_SERIALIZABLE</isolation> <scalefactor>1</scalefactor> <!-- Beban kerja --> <terminals>8</terminals> <works> <work> <time>180</time> <rate>unlimited</rate> <weights>45,43,4,4,4</weights> </work> </works> <!-- Spesifik TPCC --> <transactiontypes> <transactiontype> <name>NewOrder</name> </transactiontype> <transactiontype> <name>Payment</name> </transactiontype> <transactiontype> <name>OrderStatus</name> </transactiontype> <transactiontype> <name>Delivery</name> </transactiontype> <transactiontype> <name>StockLevel</name> </transactiontype> </transactiontypes> </parameters>Setelah mengompilasi proyek oltpbench, jalankan perintah berikut untuk mengimpor data ke dalam database.
./oltpbenchmark -b tpcc -c tpcc_encmysql.xml --load=true --create=true -s 1 -o tpccLakukan penyesuaian berulang terhadap pengaturan enkripsi Confidential Database, parameter TPC-C, dan konfigurasi lainnya untuk menguji secara komprehensif performa (TPS/QPS) dalam skenario OLTP.
./oltpbenchmark -b tpcc -c tpcc_encmysql.xml --execute=true -s 1 -o tpcc
Skenario dan hasil pengujian
Deskripsi skenario
Setiap hasil pengujian merupakan rata-rata TPS dari tiga kali pengujian. Setiap pengujian berlangsung selama satu menit.
Hasil uji performa mencakup overhead dekripsi field terenkripsi yang dikembalikan di sisi client.
Dalam skenario pengujian TPC-C ini, Queries Per Second (QPS) merupakan kelipatan tetap dari TPS, yaitu sekitar 9 hingga 10 kali nilai TPS. Oleh karena itu, pengujian ini hanya menggunakan TPS sebagai ukuran performa.
Parameter Terminal mensimulasikan jumlah client konkuren dalam TPC-C, yang sesuai dengan jumlah thread pengujian paralel.
Skenario 1: Enkripsi 20% kolom data bisnis
Dalam skenario ini, kolom yang berisi informasi ID diprioritaskan untuk dienkripsi. Hal ini mensimulasikan kebutuhan untuk mengenkripsi data seperti nomor KTP dan nomor pesanan dalam skenario bisnis nyata.
Hasil pengujian
Jumlah terminal | Teks biasa (TPS) | 20% kolom sensitif dienkripsi (TPS) | Performance Overhead |
8 | 260,55 | 237,64 | 8,79% |
16 | 302,78 | 280,28 | 7,43% |
24 | 330,04 | 298,03 | 9,70% |
32 | 343,65 | 315,25 | 8,26% |
Hasil pengujian menunjukkan bahwa ketika 20% kolom data bisnis sensitif dienkripsi, overhead performa Confidential Database dalam pengujian TPC-C berkisar antara 7% hingga 9% dibandingkan dengan database teks biasa.
Skenario 2: Enkripsi 50% kolom data bisnis
Selain kolom informasi ID yang dienkripsi pada Skenario 1, kolom informasi bisnis sensitif lainnya juga dienkripsi. Kolom-kolom tersebut mencakup data seperti harga, tanggal, dan kuantitas.
Hasil pengujian
Jumlah terminal | Teks biasa (TPS) | 50% kolom sensitif dienkripsi (TPS) | Overhead performa |
8 | 260,55 | 221,01 | 15,18% |
16 | 302,78 | 256,64 | 15,24% |
24 | 330,04 | 273,53 | 17,12% |
32 | 343,65 | 293,65 | 14,55% |
Hasil pengujian menunjukkan bahwa ketika 50% kolom data bisnis sensitif dienkripsi, overhead performa Confidential Database dalam pengujian TPC-C berkisar antara 14% hingga 17% dibandingkan dengan database teks biasa.
Skenario 3: Enkripsi semua kolom data bisnis
Hasil pengujian
Jumlah terminal | Teks biasa (TPS) | 100% kolom sensitif dienkripsi (TPS) | Overhead performa |
8 | 260,55 | 201,62 | 22,62% |
16 | 302,78 | 238,45 | 21,25% |
24 | 330,04 | 256,36 | 22,32% |
32 | 343,65 | 267,92 | 22,04% |
Hasil pengujian menunjukkan bahwa ketika semua kolom data bisnis dienkripsi, overhead performa Confidential Database dalam pengujian TPC-C berkisar antara 21% hingga 22% dibandingkan dengan database teks biasa.