全部产品
Search
文档中心

Lindorm:Metode Pengujian

更新时间:Jul 02, 2025

Uji benchmark dalam topik ini membandingkan throughput dan latensi respons antara kluster Apache HBase dan kluster Lindorm.

Uji throughput menggunakan jumlah thread yang sama untuk menguji throughput kluster Apache HBase dan kluster Lindorm. Uji latensi respons menggunakan beban kerja yang sama untuk menguji latensi respons kedua kluster tersebut. Uji rasio kompresi menulis jumlah data yang sama ke dalam kluster Apache HBase dan kluster Lindorm untuk menguji rasio kompresi.

Buat tabel

Buat tabel di kluster Apache HBase dan kluster Lindorm. Semua tabel yang digunakan dalam pengujian memiliki skema yang sama. Saat membuat tabel, buat 200 partisi berdasarkan data Yahoo Cloud Serving Benchmark (YCSB).

Catatan

Untuk informasi lebih lanjut tentang cara menggunakan HBase Shell untuk membuat tabel, lihat Gunakan Lindorm Shell untuk terhubung ke LindormTable.

  • Kluster Lindorm mendukung algoritma pengkodean INDEX dan algoritma kompresi Zstandard. Pengkodean INDEX adalah algoritma kompresi eksklusif untuk Lindorm. Jika Anda mengatur algoritma pengkodean ke DIFF, algoritma pengkodean INDEX akan digunakan. Jalankan pernyataan berikut untuk membuat tabel:

    create 'test', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'ZSTD'}, {SPLITS => (1..199).map{|i| "user#{(i * ((2**63-1)/199)).to_s.rjust(19, "0")}"} }            
  • Kluster Apache HBase menggunakan algoritma pengkodean DIFF dan algoritma kompresi SNAPPY yang direkomendasikan oleh Apache HBase. Jalankan pernyataan berikut untuk membuat tabel:

    create 'test', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'SNAPPY'}, {SPLITS => (1..199).map{|i| "user#{(i * ((2**63-1)/199)).to_s.rjust(19, "0")}"} }            

Siapkan data

Siapkan data yang akan dibaca dari baris individu dan dari beberapa baris.

Setiap tabel berisi 2 miliar baris. Setiap baris memiliki 20 kolom dengan ukuran masing-masing kolom sebesar 20 byte.

Blok kode berikut menunjukkan profil YCSB:

recordcount=2000000000
operationcount=150000000
workload=com.yahoo.ycsb.workloads.CoreWorkload

readallfields=false
fieldcount=20
fieldlength=20

readproportion=1.0
updateproportion=0.0
scanproportion=0
insertproportion=0

requestdistribution=uniform
            

Jalankan perintah berikut untuk melakukan uji stres:

bin/ycsb load hbase10 -P <workload> -p table=test -threads 200 -p columnfamily=f -s
            

Uji throughput

Uji throughput membandingkan throughput kluster Apache HBase dengan kluster Lindorm berdasarkan jumlah thread yang sama. Pengujian mencakup empat skenario yang independen satu sama lain.

  • Baca Data dari Baris Individu

    Tabel berisi 2 miliar baris. Setiap baris memiliki 20 kolom dengan ukuran masing-masing kolom sebesar 20 byte. Rentang kueri adalah 10 juta baris. Setelah data disiapkan, lakukan major compaction dan tunggu hingga sistem menyelesaikannya. Jalankan uji pemanasan selama 20 menit, kemudian jalankan uji formal selama 20 menit.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=10000000
    operationcount=2000000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=20
    fieldlength=20
    
    readproportion=1.0
    updateproportion=0.0
    scanproportion=0
    insertproportion=0
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 200 -p columnfamily=f -p maxexecutiontime=1200
                        
  • Baca Data dari Rentang Tertentu

    Tabel berisi 2 miliar baris. Setiap baris memiliki 20 kolom dengan ukuran masing-masing kolom sebesar 20 byte. Rentang kueri adalah 10 juta baris. 50 baris dibaca setiap kali. Setelah data disiapkan, lakukan major compaction dan tunggu hingga sistem menyelesaikannya. Jalankan uji pemanasan selama 20 menit, kemudian jalankan uji formal selama 20 menit.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=10000000
    operationcount=2000000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=20
    fieldlength=20
    
    readproportion=0.0
    updateproportion=0.0
    scanproportion=1.0
    insertproportion=0
    
    requestdistribution=uniform
    maxscanlength=50
    Lindorm.usepagefilter=false
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 100 -p columnfamily=f -p maxexecutiontime=1200
                        
  • Masukkan Data ke Baris Individu

    Masukkan satu kolom ke tabel setiap kali. Ukuran kolom yang dimasukkan adalah 20 byte. Jalankan pengujian selama 20 menit.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=2000000000
    operationcount=100000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=1
    fieldlength=20
    
    readproportion=0.0
    updateproportion=0.0
    scanproportion=0
    insertproportion=1.0
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 200 -p columnfamily=f -p maxexecutiontime=1200
                        
  • Masukkan Data ke Beberapa Baris

    Masukkan satu kolom ke tabel setiap kali. Ukuran kolom yang dimasukkan adalah 20 byte. Setiap batch memasukkan data ke 100 baris. Jalankan pengujian selama 20 menit.

    recordcount=2000000000
    operationcount=10000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    fieldcount=1
    fieldlength=20
    cyclickey=true
    
    readallfields=false
    readproportion=0
    updateproportion=0
    scanproportion=0
    insertproportion=0.0
    batchproportion=1.0
    batchsize=100
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 100  -p columnfamily=f -p maxexecutiontime=1200
                        

Uji latensi respons

Uji latensi respons membandingkan latensi respons kluster Apache HBase dengan kluster Lindorm berdasarkan Operations per Second (OPS) yang sama.

  • Baca Data dari Baris Individu

    Tabel berisi 2 miliar baris. Setiap baris memiliki 20 kolom dengan ukuran masing-masing kolom sebesar 20 byte. Rentang kueri adalah 10 juta baris. OPS maksimum adalah 5.000. Setelah data disiapkan, lakukan major compaction dan tunggu hingga sistem menyelesaikannya. Jalankan uji pemanasan selama 20 menit, kemudian jalankan uji formal selama 20 menit.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=10000000
    operationcount=2000000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=20
    fieldlength=20
    
    readproportion=1.0
    updateproportion=0.0
    scanproportion=0
    insertproportion=0
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 200 -p columnfamily=f -p maxexecutiontime=1200 -p target=5000
                        
  • Baca Data dari Rentang Tertentu

    Tabel berisi 2 miliar baris. Setiap baris memiliki 20 kolom dengan ukuran masing-masing kolom sebesar 20 byte. Rentang kueri adalah 10 juta baris. 50 baris dibaca setiap kali. OPS maksimum adalah 5.000. Setelah data disiapkan, lakukan major compaction dan tunggu hingga sistem menyelesaikannya. Jalankan uji pemanasan selama 20 menit, kemudian jalankan uji formal selama 20 menit.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=10000000
    operationcount=2000000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=20
    fieldlength=20
    
    readproportion=0.0
    updateproportion=0.0
    scanproportion=1.0
    insertproportion=0
    
    requestdistribution=uniform
    maxscanlength=50
    Lindorm.usepagefilter=false
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=test -threads 100 -p columnfamily=f -p maxexecutiontime=1200 -p target=5000
                        
  • Masukkan Data ke Baris Individu

    Masukkan satu kolom ke tabel setiap kali. Ukuran kolom yang dimasukkan adalah 20 byte. Jalankan pengujian selama 20 menit. OPS maksimum adalah 50.000.

    Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

    recordcount=2000000000
    operationcount=100000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=false
    fieldcount=1
    fieldlength=20
    
    readproportion=0.0
    updateproportion=0.0
    scanproportion=0
    insertproportion=1.0
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=testwrite -threads 200 -p columnfamily=f -p maxexecutiontime=1200 -p target=50000
                        
  • Masukkan Data ke Beberapa Baris

    Masukkan satu kolom ke tabel setiap kali. Ukuran kolom yang dimasukkan adalah 20 byte. Setiap batch memasukkan data ke 100 baris. Jalankan pengujian selama 20 menit. OPS maksimum adalah 2.000.

    recordcount=2000000000
    operationcount=10000000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    fieldcount=1
    fieldlength=20
    cyclickey=true
    
    readallfields=false
    readproportion=0
    updateproportion=0
    scanproportion=0
    insertproportion=0.0
    batchproportion=1.0
    batchsize=100
    
    requestdistribution=uniform
                        

    Jalankan perintah berikut untuk melakukan uji stres:

    bin/ycsb run hbase10 -P <workload> -p table=testwrite -threads 100 -p columnfamily=f -p maxexecutiontime=1200 -p target=2000
                        

Uji rasio kompresi

Semua uji rasio kompresi berikut mengikuti prosedur yang sama. Pemicu flush dan major compaction secara manual dengan menggunakan YCSB untuk menyisipkan 5 juta baris ke tabel. Setelah data dimasukkan ke tabel, periksa ukuran tabel.

Jumlah kolom dalam setiap baris

Ukuran setiap kolom

1

10

20

10

20

20

100

10

Blok kode berikut menunjukkan konfigurasi workload dalam profil YCSB:

recordcount=5000000
operationcount=150000000
workload=com.yahoo.ycsb.workloads.CoreWorkload

readallfields=false
fieldcount=<Jumlah kolom dalam setiap baris>
fieldlength=<Ukuran setiap kolom>

readproportion=1.0

requestdistribution=uniform
            

Jalankan perintah berikut untuk menyisipkan data:

bin/ycsb load hbase10 -P <workload> -p table=test -threads 200 -p columnfamily=f -s