BT

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.

Avalie esse artigo

Relevância
Estilo/Redaçã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
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.