Bagaimana situs seperti Pinterest dapat menyimpan semua gambar itu?


4

Adakah yang tahu bagaimana situs menyimpan gambar dalam jumlah besar secara umum? Saya mencoba meneliti ini, tetapi sepertinya mereka membutuhkan ruang penyimpanan besar untuk menampung semua ini, kecuali ada trik untuk itu? Saya yakin mereka mengompres mereka, tapi itu masih menyimpan sejumlah besar data untuk satu situs.



4
Ya, mereka hanya menyimpannya. Penyimpanan relatif murah untuk cpu dan memori.
Paul

4
Satu hal yang bisa dilakukan oleh situs seperti Pinterest adalah deduplikasi: menyimpan setiap gambar hanya sekali, tidak peduli berapa banyak halaman orang yang muncul.
Michael Borgwardt

Dugaan saya adalah, lebih dari 1 hard drive! :)
Dave

Jawaban:


5

Ketika datang ke menyimpan besar jumlah data, penyedia konten menggunakan Storage Area Networks, juga dikenal sebagai SAN dan perangkat keras penyimpanan SAN.

Dari Wikipedia:

Jaringan area penyimpanan (SAN) adalah jaringan khusus yang menyediakan akses ke penyimpanan data tingkat blok yang terkonsolidasi. SAN terutama digunakan untuk membuat perangkat penyimpanan, seperti larik disk, librari tape, dan jukebox optik, dapat diakses oleh server sehingga perangkat tersebut tampak seperti perangkat yang terpasang secara lokal ke sistem operasi. SAN biasanya memiliki jaringan perangkat penyimpanannya sendiri yang umumnya tidak dapat diakses melalui jaringan area lokal oleh perangkat lain. Biaya dan kompleksitas SAN turun pada awal 2000-an ke tingkat yang memungkinkan adopsi yang lebih luas di kedua perusahaan dan lingkungan bisnis kecil hingga menengah.

Jadi seperti apa bentuk perangkat penyimpanan SAN? Beberapa terlihat seperti berikut:

this.

Setiap slot itu (kotak merah adalah tombol drive eject) adalah hard disk drive. Yang ada dalam gambar adalah perangkat penyimpanan SAN yang relatif kecil, yang lain bisa terlihat jauh berbeda dan bisa jadi jauh lebih besar dalam ukuran.

Di mana saya dulu bekerja, kami memiliki penyimpanan SAN yang kotak, pada dasarnya ukuran 3 kulkas berdampingan terisi dengan hard drive. Kami kemudian mengambil drive tersebut sesuai kebutuhan dan membuat array RAID untuk redundansi. Karena kami membutuhkan lebih banyak ruang, kami dapat memesan lebih banyak perangkat penyimpanan SAN dan melampirkannya ke jaringan area penyimpanan kami. Ini memungkinkan kami untuk memiliki petabyte penyimpanan berlebihan.

Situs-situs seperti Flickr, Picassa, Facebook, dll. Miliki sangat besar SANS mengisi pusat data besar-besaran.


2

Dari pertanyaan Anda, saya berpendapat bahwa Anda tidak memiliki latar belakang Ilmu Komputer, jadi saya akan menghindari melemparkan istilah yang terdengar culun.

Situs web populer, yang menangani sejumlah besar data (atau lalu lintas), bukanlah hal yang baru atau sangat unik. Biasanya tidak ada tipu daya dalam hal kompresi besar-besaran (karena sebagian besar foto yang diunggah sebagai JPEG sudah sangat terkompresi, dan kompresi lebih lanjut sering dapat mengakibatkan hilangnya rincian). Yang terjadi adalah beberapa arsitektur pintar, banyak dan banyak komputer, cepat & amp; jaringan yang andal, dan tentu saja, beberapa terabyte (atau bahkan petabytes) penyimpanan. Sebenarnya, penyimpanan seringkali merupakan masalah yang paling kecil. Penyimpanan dan daya hitung cukup murah akhir-akhir ini.

Apa yang terjadi adalah data sering didistribusikan (beberapa salinan) di beberapa komputer, untuk redundansi dan pengambilan lebih cepat, dan pencarian / pencarian data terjadi secara paralel. Menjaga agar data yang sering digunakan lebih dekat ke tepi jaringan atau pengguna dan menjaga data tersebut diperbarui berdasarkan penggunaan, adalah beberapa tekniknya.

Beberapa kata kunci culun yang sering digunakan, dan mungkin dilihat sebagai sihir adalah:

  • Caching multi-level
  • Penyimpanan terdistribusi
  • Pergudangan Data
  • NoSQL
  • Peta-Mengurangi
  • Sharding data (kebanyakan di dunia SQL)
  • Proses paralel
  • CDN (Jaringan Pengiriman Konten)

Cara melakukan ini dengan baik, lebih efisien, efektif adalah bidang studi dan juga penelitian, di bidang ilmu komputer dan arsitektur komputer. Teknik yang berbeda digunakan berdasarkan sifat data, sifat / frekuensi akses (lebih banyak menulis, dibandingkan lebih banyak membaca), jenis keandalan yang diperlukan dll.

Diedit: Gambar google ini rak server (dari 1999) epik :! Catat harddisk yang terbuka (3-4 di antaranya) di tengah setiap "baki" server (terutama yang berlabel "g61").

enter image description here

dan perjalanan penuh ditangkap di pos ini sini :


Tidak punya cukup repetisi untuk memberikan komentar pada @tanggahan Keltari jika tidak, maka komentar di sini. SAN adalah pendekatan yang populer, lebih umum dan sedikit lebih tradisional, yang disukai banyak perusahaan besar dan TI mereka. Namun ada pendekatan alternatif yang dipopulerkan oleh orang-orang seperti Google dan Yahoo. Secara kasar, pendekatan ini didasarkan pada prinsip memiliki sekelompok besar server (pizzaboxes), masing-masing dengan penyimpanan terlampir yang besar, di mana setiap server tidak hanya menyumbang ruang penyimpanan, tetapi juga daya komputasi. Perhitungan yang didistribusikan digunakan untuk ...
jay

... memecah pencarian kompleks, mencari operasi menjadi operasi yang lebih kecil yang tersebar di seluruh cluster dan berjalan secara paralel. Hasil pencarian kemudian digabungkan bersama untuk membentuk jawaban atas pertanyaan yang lebih kompleks. Ini tipikal jaringan pencarian, dan operasi "baca-berat". Perhatikan bahwa hari ini, Google, Yahoo dan sejenisnya juga menggunakan SAN. Organisasi-organisasi itu terlalu rumit dan telah berkembang pesat untuk berpegang pada satu teknologi tunggal untuk penyimpanan atau komputasi. Pada akhirnya, itu bermuara pada menggunakan alat yang tepat untuk pekerjaan yang tepat.
jay

1

Mereka tidak dapat mengompres foto, karena foto hampir pasti sudah dikompres, baik dengan kompresi JPEG atau PNG, dan tidak mungkin untuk mengompres data yang sudah dikompres. (Itu terlalu menyederhanakan hal itu, tetapi kecuali Anda ingin mendapatkannya dalam dalam teori informasi, terimalah itu sebagai suatu pemberian

Benar-benar tidak ada jalan pintas. Sebuah situs yang menyimpan sejumlah besar data memiliki sejumlah besar komputer untuk menyimpannya.

Katakanlah sebuah gambar berbobot 1 MB. Ada banyak yang lebih besar, dan banyak yang lebih kecil, tetapi hanya demi kesederhanaan katakanlah gambar rata-rata adalah 1 MB. Tidak sulit menemukan drive 2 TB yang terjangkau saat ini, yang berarti bahwa setiap drive secara teoritis dapat menampung sekitar 2 juta gambar. (Jelas akan ada beberapa ruang yang hilang karena overhead, tetapi Anda mendapatkan idenya.)

Server dapat memiliki konfigurasi RAID yang diatur dengan banyak hard drive. Beberapa data hilang karena redundansi, tetapi meskipun demikian Anda dapat memiliki beberapa drive senilai TB per komputer. Dan server farm dapat menampung puluhan, ratusan, atau bahkan ribuan server. Begitulah cara situs-situs seperti Pinterest dan Facebook mengelola begitu banyak konten.

Mereka cenderung memiliki server farm besar, dengan komputer di depannya yang merutekan permintaan dari browser Web, mencari konten di tempat yang sesuai di server farm dan menyajikannya kembali kepada pengguna. Ini topik yang sangat besar untuk dicoba dibahas di sini, tapi itu ide dasarnya.


1
jumlah komputer tidak ada harus dilakukan dengan kapasitas atau kemampuan penyimpanan.
Keltari

1
@Keltari yakin, Anda hanya bisa menghubungkan begitu banyak drive ke controller, dan hanya begitu banyak controller ke server. Ada jumlah ruang terbatas yang bisa ditangani oleh satu server, sehingga perlu didistribusikan ke beberapa server.
Richie Frame

@ Richie: Itulah salah satu alasan Anda menggunakan SAN - Anda tidak lagi memerlukan pengontrol untuk "begitu banyak drive", Anda hanya perlu kartu antarmuka untuk berbicara dengan SAN, dan server tidak perlu peduli berapa banyak drive yang berisi SAN. Tentu saja, mungkin masih ada ukuran partisi maksimum di OS, tapi itu biasanya sangat tinggi.
sleske

@RichieFrame, Anda benar bahwa server secara fisik dapat menampung begitu banyak drive. Namun, ini adalah alasan untuk SAN dan NAS - penyimpanan diabstraksikan, yang membuatnya hampir tidak terbatas. Server dapat menyimpan 0 drive dan hanya terhubung ke SAN atau NAS.
Keltari

Dalam semua keadilan, SAN benar-benar hanya sekelompok komputer, masing-masing bisa tahan sejumlah besar disk. Mereka dibangun khusus untuk tujuan itu. Tetapi bahkan sebelum SAN menjadi populer, beberapa server dapat menampung lebih dari 100 disk.
MSalters
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.