• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
CouchDB vs PostgreSQL no Rails
 

CouchDB vs PostgreSQL no Rails

on

  • 2,346 views

Palestra realizada no 1° Rs on Rails no dia 29 de agosto de 2009 na PUCRS. ...

Palestra realizada no 1° Rs on Rails no dia 29 de agosto de 2009 na PUCRS.

A palestra abordou diferenças entre os SGBDs PostgreSQL CouchDB, ressaltando as diferenças conceituais e apresentando comparativos de performance.

Statistics

Views

Total Views
2,346
Views on SlideShare
2,330
Embed Views
16

Actions

Likes
0
Downloads
20
Comments
0

2 Embeds 16

http://www.slideshare.net 10
http://www.linkedin.com 6

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.
  • CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.
  • CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.
  • CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.

CouchDB vs PostgreSQL no Rails CouchDB vs PostgreSQL no Rails Presentation Transcript

  • CouchDB vs PostgreSQL em Rails Diogo Biazus (diogob@gmail.com) e Johalf Farina (johalffarina@gmail.com)
  • CouchDB ?
    • Projeto da Apache.org;
    • Nasceu em 2005;
    • OpenSource;
    • SGDB orientado a documentos;
    • Versão atual 0.9.1.
    CouchDB
  • MySQL PostgreSQL SQLite SGBDs relacionais SimpleDB MongoDB CouchDB SGBDs orientados a documentos Cenário atual de SGBDs
  • SGBD orientado a documentos
    • Os dados não são armazenados em linhas e colunas de tabelas relacionadas ou não e sim em documentos ;
    • Não há limite no armazenamento das informações;
    • Documentos são armazenados e acessados atravéz de um identificador;
    • Livre de schemas.
  • Agner Krarup
  • Porque CouchDB ?
  • { "_id": "acdd4a90-6e85-012c-a43d-001e68078287", "_rev": "4-1059007316", "name": "Lorem ipsum dolor asit amet", "created_at": "2009/08/18 21:32:18 +0000", "email": "lipsum@lipsum.com" } Json rules!!
  • MapReduce!
  • Interface HTTP RESTfull
    • C reate: HTTP POST /banco/db
    • R ead: HTTP GET /banco/doc_id
    • U pdate: HTTP PUT /banco/doc_id
    • D elete: HTTP DELETE /banco/doc_id
  • Replicaçãoooo!!!!
  • RDBMS Slave Slave Slave Master
  • Time to Relax!!
  •  
  • Versionamento
  • Rááááááá
  • Os dados nunca são sobrescritos
  • CouchDB on Rails = Plugin ou Gem
  • ActiveCouch http://github.com/arunthampi/activecouch/tree/master
  • RelaxDB http://github.com/paulcarey/relaxdb/tree/master
  • Couch_potato http://github.com/langalex/couch_potato/tree/master
  • CouchRest + Couch_foo = Happiness http://github.com/jchris/couchrest/tree/master http://github.com/georgepalmer/couch_foo/tree/master
  • Couch_foo Model class Participant < CouchFoo::Base property :name, String property :email, String property :created_at, DateTime validates_presence_of :name validates_presence_of :email validates_format_of :email, :with => %r{^(?:[_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-zA-Z0-9-.]+)*(.[a-z]{2,4})$}i, :if => :email? end
  • Alguns recursos
    • http://couchdb.apache.org/
    • http://en.wikipedia.org/wiki/CouchDB
    • http://books.couchdb.org/relax/
    • http://planet.couchdb.org/
    • http://twitter.com/CouchDB
  • PostgreSQL ?
    • Nasceu em 1996;
    • OpenSource;
    • SGDB SQL/Relacional;
    • Versão atual 8.4;
    • Desenvolvido em C;
    • Diversas extensões;
    PostgreSQL
  • Porque PostgreSQL ?
  • Extensões
    • PGTemporal
    • DBI-Link
    • Diversas funções de criptografia e digests
    • Levenshtein, Soundex e trigramas
  • I hate javascript
    • PL/Ruby
    • PL/Python
    • PL/Perl
    • PL/Java
    • etc...
  • CouchDB != Relacional
    • O Rails foi desenvolvido para bases SQL
    • Trabalhar com Rails é preferir convenções a configurações
    • Tentar usar o CouchDB como base SQL ou o Rails com uma base orientada a documentos não é elegante
    • Funcional x Declarativo
  • PostgreSQL on Rails
    • Gem ruby-pg
    • Integração nativa com AR
    • Plugin sexy_pg_constraints
    • Plugin para integrar via Sequel
  • Alguns recursos
    • http://www.postgresql.org/
    • http://en.wikipedia.org/wiki/PostgreSQL
    • http://www.postgresql.org.br/
    • http://planet.postgresql.org/
    • http://planeta.postgresql.org.br/
    • http://twitter.com/PostgreSQL
  • Performance
    • O momento que todos esperavam
    • Testes feitos com script/performance/profiler
    • Cada teste foi feito com uma média de tempo de 1000 repetições de chamadas diretas ao modelo
    • A comparação é de CouchFoo x ruby-pg e não de CouchDB x PostgreSQL
  • Performance
    • CouchDB 0.9.1
    • PostgreSQL 8.3.4
    • Testes muito simples, não levam em consideração:
      • Consultas complexas
      • Concorrência
      • Múltiplos núcleos (somente 2)
  • Performance Operação PG (ms) CouchDB (ms) .all (banco vazio) 13,80 39,71 .create 117,58 296,57 .all (após .create) 35,24 60,18 .find_by 26,64 58,51