BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

ScaleUp: Resolvendo Várias limitações de Upload no IIS

por Abel Avram , traduzido por Pedro Mariano em 11 Mai 2010 |

A LeanServer criou, para o IIS 7.0, uma extensão chamada ScaleUp, com o intuito de resolver problemas relacionados ao upload de arquivos que assolam a plaforma web da Microsoft. De acordo com seus criadores, o ScaleUp melhora a velocidade de upload, realiza upload de arquivos de qualquer tamanho, possibilita milhares de uploads por servidor, disponibiliza relatórios sobre o progresso e streaming.

O ASP e o ASP.NET possuem um grande número de problemas relacionados a upload de arquivos. No começo, um não conseguia extrair o arquivo de uma mensagem POST a não ser que fosse escrito um código customizado que convertesse o post recuperando os dados do arquivo.O ASP.NET introduziu o controle FileUpload o qual melhorou o processo de upload sincronizando o carregamento da mensagem POST na memória, parseando os dados para extrair o arquivo, e consequentemente salvando ele no disco. Essa solução possui vários problemas, o mais perigoso é que ocorre muita fragmentação do disco o que leva a exceptions como OutOfMemory pois o arquivo inteiro vai para a memória antes e depois ser salvo no disco. O ASP.NET 2.0 melhorou isso incluindo a opção de buffer do disco salvando qualquer arquivo maior que 80KB diretamente no disco. Mesmo assim, existiam algumas limitações

  • O tamanho máximo dos arquivos era 2GB (ASP.NET) ou 4GB (IIS).
  • Apenas uma thread por upload.
  • Buffer de disco possuia sérios impactos negativos sobre a performance.
  • Os uploads não ofereciam streaming e não havia relatórios sobre o progresso.

O ScaleUp promete resolver todos esses problemas. As funcionalidades do framework são:

  • Uploads cerca da 20x mais rápidos.
  • Sem limite de tamanho para upoload
  • Milhares de uploads simultâneos por servidor
  • Funcionalidades como relatório do progesso, streaming e filtragem.
  • Monitoramento dos processos de upload entre servidores

Mike Volodarsky, atual CTO da LeanServer, explicou como o ScaleUp funciona:

O segredo atrás do ScaleUP é que ele usa a camada nativa de extensão do IIS 7.0 substituindo completamente a plataforma de upload por uma de alta performance. Isso elimina a limitação de tamanho dos uploads.

A engine é totalmente assíncrona para ler dados da internet, para converter multipart/form-data uploads, para fazer streaming, e guardar em disco. Internamente, nós utilizamos tecnologias avanças de performance do Windows, como o unbuffed de IO assíncrono, gerenciamento avançado de cache e muitas outras coisas que o IIS 7.0 nos oferecia, tudo para melhor o troughput do upload e reduzir o uso do disco no servidor.

Atualmente, o ScaleUp é utilizado pelo MySpace para gerenciar 25 milhões de uploads por dia, eles disseram que reduziram o número de servidores após instalar a extensão do IIS. O ScaleUp pode ser usado com aplicações ASP, ASP.NET e PHP, e pode ser inserido em uma aplicação existente sem a necessidade de fazer qualquer modificação.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT