CouchDB – Implementação

O CouchDB é feito na plataforma Erlang OTP, uma linguagem de programação funcional, concorrente e uma plataforma de desenvolvimento. Erlang foi desenvolvida para aplicações em tempo real de telecomunicações com ênfase na extrema confiabilidade e disponibilidade.

Na sintaxe e na semântica, Erlang é muito diferente de linguagens de programação convencionais como C ou Java. Erlang usa “processos” leves e passagem de mensagem por concorrência, não tem compartilhamento de estado de thread e todos os dados são imutáveis. A natureza robusta e concorrente do Erlang é ideal para um servidor de banco de dados.

O CouchDB é projetado para concorrência livre de locks, no modelo conceitual e na implementação atual do Erlang. Reduzindo gargalos e evitando locks mantém o sistema inteiro funcionando previsivelmente sobre cargas pesadas. O CouchDB pode acomodar muitas mudanças de replicação de clientes, abrir e atualizar documentos, consultar views cujos índices estão sendo simultaneamente sendo atualizados por outros clientes, sem precisar de locks.

Para alta disponibilidade e mais usuários concorrentes, o Couchdb é projetado para um cluster “shared nothing”. Em um cluster “shared nothing”, cada máquina é independente e replica dados com seus companheiros de cluster, deixando falhas individuas de servidores com zero de downtime. E porque scans de consistência e consertos não são necessários no restart, se o cluster inteiro falhar – devido a uma queda de energia no datacenter, por exemplo – todo o sistema distribuído do CouchDB volta a ficar disponível depois de um restart.

O CouchDB é construído desde o início com uma visão consistente de um sistema distribuído de banco de dados orientado a documento. Ao contrário de tentativas pesadas em construir recursos distribuídos no topo da mesma herança de modelos e base de dados, ele é o resultado de um projeto, engenharia e integração cuidadosos. O documento, view, segurança e modelos de replicação, a proposta especial da linguagem de query, o layout robusto e eficiente de disco e a natureza concorrente e real da plataforma Erlang são cuidadosamente integrados para um sistema real e eficiente.

Essa é uma tradução adaptada:
http://couchdb.apache.org/docs/overview.html

3 thoughts on “CouchDB – Implementação

  1. Olá Lucas! Uma coisa puxa a outra: assisti a palestra do Tapajós no EDTED no sábado e vi no blog dele uma referência para o seu! Ótimos conteúdos sobre CouchDB. Tenho a curiosidade de experimentar o uso do banco (para ser sincero já li sobre CouchDB alguns meses atrás mas não “toquei o barco adiante”, mas agora animei de novo com isto).

    Estou para baixar e instalar o Couch em minha máquina mas gostaria de tirar uma dúvida que o Tapajós não soube me responder: você consegue indicar um servidor que ofereça o serviço de CouchDB? Infelizmente este banco parece que AINDA não despontou comercialmente né.

    Abraço, e se desejar, mantenha contato por email.

  2. Felipe,

    obrigado pelo elogio ao conteúdo do blog, o Tapajós foi muito legal em divulgar no blog dele. Essas palestras do EDTED foram gravadas? Não fiquei sabendo muito sobre o evento, pois estava concentrado em uma aplicação para o Yahoo Hack Day hehehe.
    Com relação a hospedagem específica para o CouchDB, a única que eu conheço é a http://hosting.couch.io/. A CouchIO é a empresa do criador (Damien Katz) e dos commiters (Jan Lehnardt, Chris Anderson etc) do CouchDB, mas eu não cheguei a utiliza-la. No meu caso, em produção estou utilizando um Cloud Server da Locaweb, então eu mesmo tenho que administrar o servidor (vale ressaltar que está funcionando muito bem).
    Com relação a “despontar comercialmente” não sei se isso é fato ou não (afinal eu utilizo o CouchDB em uma aplicação comercial que é rentável). Os bancos considerados NoSQL começaram a serem utlizados recentemente, mas logo irão alcançar mais popularidade. Talvez o MongoDB seja mais popular comercialmente que o CouchDB pelo marketing que a 10gen faz. (não tenho certeza se é esse o nome da empresa “por trás” do Mongo)
    Bom, acho que respondi sua pergunta, qualquer coisa estamos as ordens.

  3. Com certeza, Renan! Valeu pela atenção dispensada! Vou procurar me informar sobre esta emprega (hosting). Já imaginava que quem usasse CouchDB por aqui o fizesse em Cloud, no seu caso esta alternativa é bem válida. Estes bancos “NoSQL” têm tudo para crescer! Bem, sucesso a você e novamente parabéns por estes conteúdos de CouchDB!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>