Toleransi kesalahan mengacu pada kemampuan sistem untuk mempertahankan operasi normal bahkan ketika komponen tertentu gagal atau tidak berfungsi. Kemampuan ini penting untuk sistem dengan ketersediaan tinggi, misi kritis, dan bahkan sistem kritis masa pakai. Toleransi kesalahan secara khusus mengacu pada sistem yang tidak mengalami penurunan atau waktu henti saat terjadi kesalahan. Saat terjadi kesalahan, pengguna akhir tidak menyadari adanya masalah. Sebaliknya, sistem yang mengalami kesalahan tetapi masih memiliki layanan yang berjalan disebut "sistem tangguh". Sistem seperti itu dapat beradaptasi dengan terjadinya kesalahan dan mempertahankan layanan tetapi menunjukkan dampak kinerja tertentu.
Toleransi kesalahan secara khusus digunakan untuk menggambarkan sistem komputer yang memastikan bahwa sistem secara keseluruhan terus berfungsi bahkan jika terjadi masalah perangkat keras atau perangkat lunak.
Dalam sejarah pengembangan komputer, komputer toleran kesalahan paling awal adalah SAPO yang dibuat oleh Antonín Svoboda di Cekoslowakia pada tahun 1951. Desain dasar komputer diimplementasikan sebagai drum magnetik berlilit kawat dan menggunakan metode pemungutan suara untuk deteksi kesalahan memori, sebuah teknik yang dikenal sebagai redundansi rangkap tiga. Seiring berjalannya waktu, banyak perangkat serupa lainnya dikembangkan, sebagian besar untuk keperluan militer. Kemudian, tiga jenis opsi secara bertahap muncul: komputer yang dapat berjalan dalam waktu lama tanpa memerlukan perawatan apa pun, seperti komputer dan satelit eksplorasi ruang angkasa NAASA; komputer yang sangat andal tetapi memerlukan pemantauan konstan, seperti yang digunakan untuk memantau dan mengendalikan pembangkit listrik tenaga nuklir atau eksperimen superkonduktor; dan komputer yang beroperasi di bawah beban berat, seperti banyak superkomputer yang digunakan untuk pemantauan probabilistik oleh perusahaan asuransi.
Banyak penelitian tentang apa yang disebut komputer LLNM (umur panjang, tanpa perawatan) yang dilakukan oleh NASA pada tahun 1960-an membuka jalan bagi misi luar angkasa di masa mendatang. Komputer-komputer ini mendukung metode pemulihan memori melalui penggunaan susunan memori cadangan, seperti komputer JSTAR, yang dapat mendeteksi sendiri dan memperbaiki kesalahan atau mengaktifkan modul redundan. Komputer-komputer ini terus beroperasi hingga saat ini.
Desain-desain sebelumnya cenderung berfokus pada diagnostik internal, di mana kesalahan dapat ditemukan dan diganti oleh para profesional.
Namun, desain-desain selanjutnya menunjukkan perlunya sistem untuk melakukan penyembuhan diri dan diagnostik, mampu mengisolasi kesalahan dan melakukan pencadangan redundan ketika terjadi kegagalan. Hal ini penting untuk menerapkan sistem komputasi yang sangat tersedia.
Misalnya, beberapa sistem toleransi kesalahan perangkat keras mengharuskan komponen yang rusak dilepas dan diganti saat sistem sedang berjalan, yang disebut "hot swapping." Sistem seperti itu biasanya memiliki satu cadangan, yang disebut titik toleransi tunggal, dan sebagian besar sistem toleransi kegagalan termasuk dalam kategori ini. Teknik toleransi kesalahan telah mencapai keberhasilan luar biasa dalam aplikasi komputer.
Tandem Computer didasarkan pada hal ini dan menetapkan sistem NonStop untuk perhitungan waktu berjalan tahunan.
Selain perangkat keras, toleransi kesalahan juga dapat tercermin dalam perangkat lunak komputer, seperti desain replikasi proses dan format data yang sempurna, sehingga dapat menurun dengan baik. HTML adalah contoh umum, yang memungkinkan peramban web mengabaikan entitas HTML baru dan yang tidak didukung tanpa memengaruhi kegunaan dokumen secara keseluruhan. Desain serupa juga muncul di banyak situs web populer, yang menyediakan antarmuka ringan di Deepin untuk mempertahankan aksesibilitas yang luas.
Menerapkan desain yang toleran terhadap kesalahan tidak selalu merupakan pilihan yang praktis karena redundansi yang terkait menimbulkan masalah seperti peningkatan bobot, biaya, dan waktu desain. Oleh karena itu, perancang harus mempertimbangkan dengan cermat komponen mana yang memerlukan kemampuan toleransi kesalahan.
Setiap komponen perlu dievaluasi dengan cermat untuk kemungkinan kegagalan, kekritisan, dan biayanya.
Misalnya, radio mobil, meskipun bukan komponen penting, relatif kurang penting, sedangkan sistem penahan penumpang (seperti sabuk pengaman) dianggap perlu karena fungsinya yang sangat penting dalam memberikan keselamatan saat terjadi kecelakaan. Desain redundan.
Karakteristik dasar sistem yang toleran terhadap kesalahan meliputi: tidak ada titik kegagalan tunggal; kemampuan untuk mengisolasi komponen yang rusak; dan kebutuhan untuk pemulihan kesalahan, yang biasanya memerlukan klasifikasi dan definisi kesalahan sistem.
Dalam menghadapi dunia teknologi yang semakin kompleks, dapatkah desain yang toleran terhadap kesalahan benar-benar melindungi berbagai sistem dalam kehidupan kita sehari-hari dan memungkinkan kita menghindari bahaya yang tidak perlu dalam kehidupan berteknologi tinggi di masa depan?