ScaleUp: Resolvendo Várias limitações de Upload no IIS
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.
Conteúdo educacional
Lean na Globo.com
Bernardo Heynemann 24 Mai, 2013
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião