Questão Como sites como o Pinterest conseguem manter todas essas fotos?


Alguém sabe como os sites mantêm um grande número de fotos em geral? Eu tentei pesquisar isso, mas parece que eles precisariam de espaços de armazenamento massivos para armazenar todos esses, a menos que houvesse um truque para isso? Tenho certeza de que eles são compactados, mas ainda é uma quantidade enorme de dados para um site.


4


origem


howstuffworks.com/pinterest.htm você não viu isso? - BlueBerry - Vignesh4303
Sim, eles apenas os armazenam. O armazenamento é barato em relação à CPU e à memória. - Paul
Uma coisa que um site como o Pinterest obviamente pode fazer é deduplicação: armazenar cada imagem apenas uma vez, não importando quantas páginas de pessoas ela aparece. - Michael Borgwardt
Meu palpite é que mais de um disco rígido! :) - Dave


Respostas:


Quando se trata de armazenar ampla quantidades de dados, os provedores de conteúdo usam as redes de área de armazenamento, também conhecidas como SANs e hardware de armazenamento SAN.

Da Wikipedia:

Uma rede de área de armazenamento (SAN) é uma rede dedicada que fornece acesso a armazenamento de dados em nível de bloco consolidado. As SANs são usadas principalmente para criar dispositivos de armazenamento, como matrizes de disco, bibliotecas de fitas e jukeboxes ópticas, acessíveis a servidores para que os dispositivos apareçam como dispositivos conectados localmente ao sistema operacional. Uma SAN normalmente possui sua própria rede de dispositivos de armazenamento que geralmente não são acessíveis pela rede local por outros dispositivos. O custo e a complexidade das SANs caíram no início dos anos 2000, atingindo níveis que permitem uma adoção mais ampla nos ambientes corporativos e de pequenas e médias empresas.

Então, como é um dispositivo de armazenamento SAN? Alguns se parecem com o seguinte:

this.

Cada um desses slots (o quadrado vermelho é o botão de ejeção da unidade) é uma unidade de disco rígido. O da foto é um dispositivo de armazenamento SAN relativamente pequeno, outros podem parecer muito diferentes e podem ser muito maior no tamanho.

Onde eu trabalhava, tínhamos caixas de armazenamento SAN, basicamente do tamanho de 3 geladeiras lado a lado preenchidas com discos rígidos. Em seguida, pegamos essas unidades conforme necessário e criamos matrizes RAID para redundância. Como precisávamos de mais espaço, poderíamos solicitar mais dispositivos de armazenamento SAN e anexá-los à nossa rede de área de armazenamento. Isso nos permitiu ter petabytes de armazenamento redundante.

Sites como Flickr, Picassa, Facebook, etc. muito grande SANS preenchendo datacenters massivos.


5





De sua pergunta, eu entendo que você não tem formação em Ciência da Computação, então eu evitarei lançar termos que pareçam nerds.

Sites populares, lidando com quantidades extremamente grandes de dados (ou tráfego), não são nada novo ou muito original. Geralmente, não há truques em termos de compactação massiva (já que a maioria das fotos carregadas como JPEG já estão altamente compactadas e a compactação adicional pode resultar em perda de detalhes). O que acontece é uma arquitetura inteligente, muitos e muitos computadores, uma rede rápida e confiável e, é claro, vários terabytes (ou até petabytes) de armazenamento. Na verdade, o armazenamento é geralmente o menor dos problemas. O armazenamento e o poder computacional são bastante baratos hoje em dia.

O que acontece é que os dados são frequentemente distribuídos (várias cópias) em vários computadores, para redundância e recuperação mais rápida, e a busca / busca de dados acontece em paralelo. Manter os dados usados ​​com frequência mais próximos da borda da rede ou dos usuários e manter esses dados atualizados com base no uso são algumas das técnicas.

Algumas palavras-chave nerds que são frequentemente usadas e podem ser vistas como feitiços são:

  • Armazenamento em cache de vários níveis
  • Armazenamento distribuído
  • Armazenamento de dados
  • NoSQL
  • Mapa-Reduzir
  • Sharding de dados (principalmente no mundo SQL)
  • Processamento paralelo
  • CDN (Content Delivery Networks)

Como fazer isso bem, mais eficientemente, efetivamente é um campo de estudo e também de pesquisa, na área de ciência da computação e arquitetura de computadores. Diferentes técnicas são usadas com base na natureza dos dados, natureza / frequência de acesso (mais gravações, versus mais leituras), tipo de confiabilidade necessária, etc.

Editado: Esta foto do google rack de servidor (a partir de 1999) é épico:! Observe os discos rígidos expostos (3-4 deles) no meio de cada "bandeja" do servidor (especialmente aquele identificado como "g61").

enter image description here

e a jornada completa é capturada neste post Aqui:


2



Não tem representantes suficientes para deixar um comentário sobre a resposta do @ Keltari, caso contrário, vai comentar aqui. As SANs são uma abordagem popular, mais comum e um pouco mais tradicional, que muitas grandes empresas e seus departamentos de TI preferem. Há, no entanto, uma abordagem alternativa que foi popularizada pelos gostos do Google e do Yahoo. Grosso modo, esta abordagem baseia-se no princípio de ter um enorme cluster de servidores (pizzaboxes), cada um com um grande armazenamento anexado, onde cada servidor não apenas contribui com espaço de armazenamento, mas também poder de computação. Essa computação distribuída é usada para ... - jay
... detalhar a pesquisa complexa, pesquisar operações em operações menores espalhadas pelo cluster e executadas em paralelo. Os resultados da pesquisa são então combinados para formar a resposta para a questão mais complexa. Isso é típico de redes de pesquisa e operações de "leitura pesada". Note-se que nos dias de hoje, o Google, Yahoo e os gostos usam SAN também. Essas organizações são complexas demais e cresceram rapidamente para se ater a uma única tecnologia para armazenamento ou computação. No final, resume-se a usar a ferramenta certa para o trabalho certo. - jay


Eles não podem comprimir as fotos, porque as fotos quase certamente já estão compactadas, seja com compactação JPEG ou PNG, e não é possível compactar dados já compactados. (Isso é simplificar um pouco, mas a menos que você queira profundo na teoria da informação, apenas aceite isso como um dado.)

Não há realmente nenhum atalho. Um site que armazena grandes quantidades de dados tem grandes quantidades de computadores para mantê-lo.

Digamos que uma imagem pesa 1 MB. Há muitas que são maiores e muitas que são menores, mas apenas para simplificar, digamos que a imagem média seja de 1 MB. Não é difícil encontrar unidades de 2 TB acessíveis nos dias de hoje, o que significa que cada unidade poderia, teoricamente, conter cerca de 2 milhões de imagens. (Obviamente, haverá algum espaço perdido para sobrecarga, mas você começa a idéia.)

Um servidor pode ter uma configuração RAID configurada com vários discos rígidos. Alguns dos dados são perdidos para redundância, mas mesmo assim você pode ter vários TB de unidades por computador. E um farm de servidores pode conter dezenas, centenas ou até milhares de servidores. É assim que sites como Pinterest e Facebook gerenciam tanto conteúdo.

Eles tendem a ter grandes farms de servidores, com computadores na frente deles que encaminham solicitações de navegadores da Web, procurando o conteúdo no local apropriado no farm de servidores e servindo-o de volta ao usuário. É realmente um grande tópico para tentar cobrir aqui, mas essa é a ideia básica.


1



o número de computadores tem nada para fazer com capacidade de armazenamento ou capacidade. - Keltari
@Keltari certeza de que, você só pode ligar tantas unidades para um controlador, e apenas tantos controladores para um servidor. Há uma quantidade finita de espaço que um único servidor pode manipular, portanto, ele precisa ser distribuído em vários servidores. - Richie Frame
@Richie: Esse é um dos motivos pelos quais você usa SANs - não precisa mais de um controlador para "tantas unidades", precisa apenas de uma placa de interface para falar com a SAN, e o servidor não precisa se preocupar com quantas unidades a SAN contém. É claro que ainda pode haver um tamanho máximo de partição no sistema operacional, mas isso normalmente é muito alto. - sleske
@RichieFrame, você está certo de que um servidor pode suportar fisicamente tantas unidades. No entanto, essa é a razão para SANs e NASs - o armazenamento é abstraído, o que permite que ele seja virtualmente ilimitado. Os servidores podem escolher 0 unidades e simplesmente estar conectados a uma SAN ou NAS. - Keltari
Com toda a justiça, um SAN realmente é apenas um monte de computadores, cada um dos quais posso mantenha uma enorme quantidade de discos. Eles são construídos especialmente para esse propósito. Mas, mesmo antes de as SANs se tornarem populares, alguns servidores poderiam suportar mais de 100 discos. - MSalters