Professional Documents
Culture Documents
October 1, 2011
Agenda
Motivao ca ZODB RelStorage Benchmarks Referncias e Perguntas
Motivao ca
Sistemas baseados em Plone / Zope Grandes portais de conteudo: Imagens, Videos, Audio Desempenho, escalabilidade e disponibilidade Facilidade de utilizar infra-estrutura existente
ACID Arquivo append-only para armazenar os objetos e transaoes c NoSQL Transparencia para armazenamento de objetos Python (tipo Persistent) FileStorage: Permite que apenas um processo acesse a base de dados
Criado para permitir o compartilhamento da base de dados entre multiplos processos ZRPC: protocolo de rede para comunicaao entre o cliente c (Zope) e o servidor (ZEO) Normalmente o ZEO e um processo IO bound Nao possui (ate a versao 3.10) threads para concorrencia de acesso de forma que cada cliente ca na sua propria thread
RelStorage
O projeto RelStorage criado por Shane Hathaway tem como objetivo permitir que o ZODB seja armazenado em um backend relacional: Desenvolvido com objetivo de melhorar a escalabilidade do ZODB quando existem muitos Zope clients conectados a uma mesma base de dados ZODB Implementa um novo StorageLayer para o ZODB Os dados sao armazenados de forma opaca no banco de dados SQL (nao ha como consultar os dados e extrair informacoes diretamente do banco de dados SQL) Suporta diferentes bancos de dados: Oracle, MySQL, PostgreSQL Suporta ambientes clusterizados e tambem uso de Memcached para minimizar o overhead no backend e aumentar o desempenho
RelStorage: Instalao ca
Instalar bibliotecas de desenvolvimento e pacotes do backend SQL: psycopg2, MySQL-python, etc Instalar bibliotecas de desenvolvimento do memcached: libmemcached-dev Congurar buildout para instalar pacotes python: pylibmc ou python-memcached e RelStorage Alterar conguraao da instancia Zope2 para utilizar c rel-storage
1 2 3 4 5 6 7 8 9 10 11
[ instance ] recipe = plone . recipe . zope2instance ... r e l s t o r a g e = type p o s t g r e s q l dsn dbname=zodb u s e r=r u d a h o s t=l o c a l h o s t b l o b d i r $ { b u i l d o u t : d i r e c t o r y } / v a r / b l o b s t o r a g e s h a r e d b l o b d i r y e s p o l l i n t e r v a l 60 cache s e r v e r s 127 . 0 . 0 . 1 : 11211 r e p l i c a c o n f dsn dbname=zodb u s e r=r u d a h o s t=o u t r o h o s t
Benchmarks: concorrencia = 2
1 2 3 4 5 6 7 8
** c o n c u r r e n c y=2 ** psql , psql mc , mysql , Add 4662 , 3976 , 6100 , Update 4673 , 4196 , 5865 , Warn 3580 , 18462 , 4142 , Cold 3505 , 2504 , 9164 , Hot 36200 , 35989 , 36256 , S t e a m i n 3643260 , 2538156 , 3179912 ,
mysql mc , z e o f s 5615 , 3930 5102 , 3204 16525 , 3405 3042 , 3441 35941 , 35263 2710374 , 3530558
Benchmarks: concorrencia = 4
1 2 3 4 5 6 7 8
** c o n c u r r e n c y=4 ** psql , psql mc , mysql , Add 5456 , 4405 , 6807 , Update 5109 , 4738 , 6442 , Warm 3735 , 16860 , 3538 , Cold 3490 , 2457 , 7892 , Hot 37322 , 39988 , 36288 , S t e a m i n 5840123 , 4748044 , 6680157 ,
mysql mc , z e o f s 7084 , 4188 6404 , 3215 16830 , 2884 3162 , 2833 36447 , 35306 3631432 , 6962945
Referncias e
Perguntas?