On 6/9/06,
Ruda Filgueiras <[EMAIL PROTECTED]> wrote:
Investigando um problema de performance em uma aplicação desenvolvida
por nosso colega Juracy Filho, descobrimos um sério problema de
performance.
A aplicação dele usa containers BTreeFolder e estava demorando até 5
minutos para gravar um novo registro. Alteração e listagem com boa
performance.
Ao debugar o problema descobrimos que o método contentIds em:
Products.CMFCore.PortalFolder.contentIds()
Acorda todos os objetos do container Btree, pois retorna uma chamada
de _filteredItems().
Mas por que um método que deveria retornar apenas os Ids, chama um
método que retorna Items?
A solução foi modificar:
_at_rename_after_creation = False
Pois ele é que precisa do método contentIds()
Porém a melhor solução seria fazer uma sobrecarga desse método em
CMFBtreeFolder ou em BaseBtreeFolder.
Recentemente eu criei uma base de testes com 70000 objetos em um único
container Btree e fiquei muito insatisfeito com o resultado. Ele gerou
um Data.fs de 700MB e cerca de 50s para abrir cada página, com acesso
a disco muito alto.
Isso compromete muito a escalabilidade do Zope :-(.
--
Rudá Porto Filgueiras
Empresa Livre
http://www.empresalivre.com.br
--
Fabiano Weimar dos Santos
Plone Developer and Consultant __._,_.___
Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.