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?
sql
database-design
optimization
ssd
FrustratedWithFormsDesigner
sumber
sumber
Jawaban:
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
sumber
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.
sumber
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.
sumber
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:
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.
sumber
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.
sumber
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.
sumber