Apakah munculnya SSD memiliki implikasi untuk optimasi basis data?

26

Hari ini saya sedang menelusuri buku tentang optimasi SQL Server dan tampaknya sejumlah ide didasarkan pada model penyimpanan linier. Karena SSD memiliki model penyimpanan yang sama sekali berbeda, apakah SSD dengan cara apa pun mengubah permainan sehubungan dengan bagaimana orang berpikir tentang penyetelan atau pengoptimalan basis data?

FrustratedWithFormsDesigner
sumber
Dengan SSD, tampaknya Anda perlu mengoptimalkan lebih banyak untuk meminimalkan keausan daripada meningkatkan kinerja mentah ...
Trezoid
pemikiran yang menarik, dan beberapa jawaban keren, +1
Drew

Jawaban:

9

Ya, mereka memang mengubah permainan. Optimalisasi berdasarkan karakteristik disk magnetik berputar (seperti waktu mencari dan penundaan rotasi ) mungkin tidak relevan pada drive SSD. Sebuah makalah * baru-baru ini yang diterbitkan dalam FITME 2010 menyajikan satu algoritma optimisasi kueri baru berdasarkan karakteristik SSD.

Namun, perubahan ini mungkin akan menjadi perubahan tingkat rendah (untuk algoritma penyimpanan dan pengambilan, misalnya) yang dapat diimplementasikan secara efektif oleh pengembang basis data. Mereka mungkin tidak akan terlalu mempengaruhi pengguna basis data.

* IEEE Xplore - Optimasi kueri penyimpanan berorientasi kolom untuk basis data berbasis flash

Rein Henrichs
sumber
3
Ya - tetapi sebagian besar optimisasi basis data telah hilang ketika kami hanya memasukkan semuanya ke dalam ram. Begitu 64Gb RaM menjadi lebih murah daripada ahli SQL, hal-hal sudah berubah, tidak yakin berapa banyak SSD yang ditambahkan
Martin Beckett
3
@ Martin setuju. Di sisi lain, ada perubahan yang diputuskan menuju skala horisontal (cloud, dll) daripada vertikal (mengerikan $ 500k kotak DB) skala baru-baru ini. Sistem terdistribusi dapat memperoleh peningkatan kinerja global non-linear dari jenis optimasi linear lokal ini. Ini seringkali bisa menjadi model biaya yang lebih baik juga.
Rein Henrichs
8

Performa

SSD berkinerja tinggi: mereka tidak harus mencari, dan throughput sedang menyala. Sebagian besar perangkat lunak yang berurusan dengan disk, sejauh dioptimalkan, dioptimalkan untuk mengurangi jumlah upaya sinkron. Dengan melakukan itu, mereka memperkenalkan sejumlah kompleksitas. Dengan munculnya penulisan yang cepat dan tak terhindarkan ke penyimpanan yang persisten, sistem penyimpanan data baru tidak lagi membutuhkan kompleksitas seperti itu.

Daya tahan

SSD saat ini memiliki tingkat kegagalan yang tinggi. SSD Anda akan gagal. SSD Anda akan gagal pada tingkat yang jauh lebih tinggi daripada disk magnetik. Anda harus mengatasi ini dengan replikasi, backup, dll. Ini memperkenalkan kerumitannya sendiri.

yfeldblum
sumber
1
Um, apa? SSD memiliki tingkat kegagalan yang tinggi? Tingkat kegagalan tahunan untuk SSD secara signifikan lebih kecil dari HDD. Sejauh ini hanya sedikit orang yang berhasil menulis di SSD, terutama dengan pengontrol yang lebih canggih (misalnya SandForce LSI).
Mircea Chirea
5

Pengurangan keseluruhan harga penyimpanan memiliki efek yang jauh lebih mendalam.

Sebelum kami memiliki SQL, kami memiliki basis data jaringan dan hierarki yang sangat dioptimalkan di mana DBA harus merencanakan dengan hati-hati penempatan data dan penempatan silinder.

Database SQL jauh lebih efisien. Tetapi sekarang disk murah, besar dan cepat, kami hampir tidak peduli.

Basis data NoSQL ("Dokumen") dapat menjadi agak kurang efisien daripada SQL karena tidak ada kemampuan pemetaan logis-ke-fisik yang sama antara skema logis SQL dan skema fisik yang mendasari file atau tablespace atau apa pun. Dan kami nyaris tidak peduli.

Peningkatan kinerja SSD kemungkinan akan hilang dalam perubahan yang disebabkan oleh penggunaan basis data NoSQL dengan cara kami merancang sistem secara keseluruhan.

S.Lott
sumber
2

Masalah utama dengan mengoptimalkan segala sesuatu untuk SSD berkaitan dengan bagaimana mereka menulis data. Hard drive tradisional biasanya menyimpan data di sektor kecil sekitar 512 byte dan benar-benar dapat memanipulasi sektor secara langsung pada atau bahkan di bawah level itu.

SSD memiliki beberapa kelemahan terkait dengan penulisan:

  • Ukuran tulis blok minimum sekitar 4-8KB.
  • Menulis hanya dapat dilakukan pada halaman penuh berdasarkan 256KB biasanya.
  • Hanya blok kosong yang dapat ditulis.

Skenario mimpi buruk yang umum, yang disebut sebagai Tulis amplifikasi , adalah ketika Anda ingin menulis satu byte ke lokasi pada disk yang memiliki beberapa blok sudah digunakan. Untuk menulis di sana, Anda harus terlebih dahulu menyalin seluruh halaman 256KB ke dalam memori, menghapus seluruh blok, mengubah byte tunggal di halaman, kemudian menulis kembali seluruh halaman 256KB yang dimodifikasi. Jadi untuk menulis satu byte, sudah ada sekitar setengah megabyte "traffic"!

Ada banyak optimasi untuk masalah ini diimplementasikan pada SSD, pengontrol dan bahkan tingkat sistem operasi, tetapi tidak diragukan lagi DBMSs bisa mendapatkan manfaat dengan menyesuaikan pengoptimalan ini dengan cara kerja spesifik mereka.

Namun ini bukan sesuatu yang perlu dipikirkan oleh pengguna basis data (seperti dalam, menggunakan basis data dalam aplikasi mereka), karena ini akan sangat tergantung pada keputusan desain / implementasi di tingkat DBMS.

Deckard
sumber
2

Dari apa yang saya kumpulkan dari blog ServerFault , server database harus memiliki perangkat keras yang kekar. Server database situs pertukaran stack menjalankan SSD (lihat http://blog.serverfault.com/post/our-storage-decision/ ) dan saya akan membayangkan bahwa optimisasi permintaan masih sangat dibutuhkan. CPU dan memori yang dipengaruhi oleh query database serta IO.

Namun, kinerja basis data sangat tergantung pada IO, jadi SSD pasti akan membantu.

Jon Onstott
sumber
1

Ya, untuk alasan yang telah dinyatakan oleh semua orang.

Saya sedang mendengarkan podcast yang mengatakan bahwa sejumlah besar RDBMS seperti Oracle, SQL Server dll akan mulai "dipilih keluar" jika mereka dapat menyelesaikan pemisahan dengan baik. Mendeteksi apakah ini drive SSD dan optimalkan sesuai.

Ada banyak kode tambahan yang dibangun ke dalam caching dan penulisan data yang tidak diperlukan lagi.

Yang lebih menarik adalah RAMSAN dan variannya. Pada dasarnya hard disk drive terbuat dari chip RAM dengan built in X jam UPS dan kemampuan untuk menulis latar belakang untuk penyimpanan HDD jangka panjang.

Robin Vessey
sumber