Servidor Couchbase - Couchbase Server

Servidor Couchbase
CouchbaseLogo.svg
Captura de tela do servidor Couchbase
Desenvolvedor (s) Couchbase, Inc.
lançamento inicial Agosto de 2010 ( 2010-08 )
Versão estável
7.0.2 / 15 de outubro de 2021 ( 2021-10-15 )
Escrito em C ++ , Erlang , C , Go , Java
Modelo Banco de dados multi-modelo , distribuído banco de dados de valor-chave , banco de dados orientado a documentos , banco de dados JSON
Licença Licença Apache 2.0 , freemium
Local na rede Internet couchbase .com
Couchbase no AWS Summit

Couchbase Server , originalmente conhecido como Membase , é um pacote de software de banco de dados orientado a documentos NoSQL de código aberto , distribuído ( arquitetura nada compartilhada ) e otimizado para aplicativos interativos. Esses aplicativos podem servir a muitos usuários simultâneos criando, armazenando, recuperando, agregando, manipulando e apresentando dados. Em suporte a esses tipos de necessidades de aplicativos, o Couchbase Server foi projetado para fornecer acesso fácil de valor-chave ou documento JSON com baixa latência e alta taxa de transferência sustentada. Ele foi projetado para ser agrupado a partir de uma única máquina para implementações em grande escala, abrangendo várias máquinas.

O Couchbase Server forneceu compatibilidade de protocolo de cliente com memcached , mas adicionou persistência de disco , replicação de dados , reconfiguração de cluster ao vivo, rebalanceamento e multilocação com particionamento de dados .

História do produto

Membase foi desenvolvido por vários líderes do projeto memcached , que fundaram uma empresa, NorthScale, para desenvolver um armazenamento de valor-chave com a simplicidade, velocidade e escalabilidade do memcached, mas também os recursos de armazenamento, persistência e consulta de um banco de dados. O código-fonte original do membase foi contribuído pela NorthScale e pelos co-patrocinadores do projeto Zynga e Naver Corporation (então conhecido como NHN) para um novo projeto no membase.org em junho de 2010.

Em 8 de fevereiro de 2011, os fundadores do projeto Membase e Membase, Inc. anunciaram uma fusão com a CouchOne (uma empresa com muitos dos principais participantes por trás do CouchDB ) com uma fusão de projeto associada. A empresa resultante da fusão foi chamada Couchbase, Inc. Em janeiro de 2012, a Couchbase lançou o Couchbase Server 1.8. Em setembro de 2012, a Orbitz disse que havia mudado alguns de seus sistemas para usar o Couchbase. Em dezembro de 2012, o Couchbase Server 2.0 (anunciado em julho de 2011) foi lançado e incluiu um novo armazenamento de documentos JSON , indexação e consulta, MapReduce incremental e replicação entre data centers .

Arquitetura

Cada nó Couchbase consiste em um serviço de dados, serviço de índice, serviço de consulta e componente gerenciador de cluster. A partir da versão 4.0, os três serviços podem ser distribuídos para serem executados em nós separados do cluster, se necessário. No jargão do teorema CAP de Eric Brewer , Couchbase é normalmente um sistema do tipo CP, o que significa que fornece consistência e tolerância de partição , ou pode ser configurado como um sistema AP com vários clusters.

Gerenciador de clusters

O gerenciador de cluster supervisiona a configuração e o comportamento de todos os servidores em um cluster Couchbase. Ele configura e supervisiona o comportamento entre os nós, como o gerenciamento de fluxos de replicação e operações de reequilíbrio. Ele também fornece agregação de métricas e funções de consenso para o cluster e uma interface de gerenciamento de cluster RESTful . O gerenciador de cluster usa a linguagem de programação Erlang e a plataforma Open Telecom .

Replicação e failover

A replicação de dados nos nós de um cluster pode ser controlada com vários parâmetros. Em dezembro de 2012, foi adicionado suporte para replicação entre diferentes data centers .

Gerenciador de dados

O gerenciador de dados armazena e recupera documentos em resposta às operações de dados dos aplicativos. Ele grava dados de forma assíncrona no disco após reconhecê-los ao cliente. Na versão 1.7 e posterior, os aplicativos podem opcionalmente garantir que os dados sejam gravados em mais de um servidor ou no disco antes de reconhecer uma gravação no cliente. Os parâmetros definem as idades dos itens que afetam quando os dados são persistentes e como a memória máxima e a migração da memória principal para o disco são tratadas. Ele oferece suporte a conjuntos de trabalho maiores que uma cota de memória por "nó" ou "depósito". Os sistemas externos podem assinar fluxos de dados filtrados, suportando, por exemplo, indexação de pesquisa de texto completo, análise de dados ou arquivamento.

Formato de dados

Um documento é a unidade mais básica de manipulação de dados no Couchbase Server. Os documentos são armazenados no formato de documento JSON sem esquemas predefinidos. Documentos não JSON também podem ser armazenados no Couchbase Server (binários, valores serializados, XML, etc.)

Cache gerenciado por objeto

O Couchbase Server inclui um cache integrado gerenciado por objetos multithread que implementa APIs compatíveis com memcached, como get, set, delete, append, prepend etc.

Motor de armazenamento

O Couchbase Server tem um design de armazenamento anexo que é imune à corrupção de dados, eliminadores de OOM ou perda repentina de energia. Os dados são gravados no arquivo de dados de maneira apenas anexada, o que permite que o Couchbase faça principalmente gravações sequenciais para atualização e fornece padrões de acesso otimizados para E / S de disco.

atuação

Um benchmark de desempenho feito pela Altoros em 2012, comparou o Couchbase Server com outras tecnologias. A Cisco Systems publicou um benchmark que mediu a latência e a taxa de transferência do Couchbase Server com uma carga de trabalho mista em 2012.

Licenciamento e suporte

Couchbase Server é uma versão empacotada da tecnologia de software de código aberto Couchbase e está disponível em uma edição da comunidade sem correções de bug recentes com uma licença Apache 2.0 e uma edição para uso comercial. As compilações do Couchbase Server estão disponíveis para os sistemas operacionais Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows e macOS.

Couchbase oferece suporte a kits de desenvolvedores de software para as linguagens de programação .NET , PHP , Ruby , Python , C , Node.js , Java , Go e Scala .

N1QL

Uma linguagem de consulta chamada linguagem de consulta de forma não-primeira normal, N1QL (pronuncia-se níquel), é usada para manipular os dados JSON no Couchbase, assim como o SQL manipula dados no RDBMS. Possui instruções SELECT, INSERT, UPDATE, DELETE, MERGE para operar em dados JSON. Foi anunciado em março de 2015 como "SQL para documentos".

O modelo de dados N1QL não é o primeiro formato normal (N1NF) com suporte para atributos aninhados e normalização orientada ao domínio . O modelo de dados N1QL também é um superconjunto adequado e generalização do modelo relacional .

Exemplo

{
  "email": "testme@example.org",
  "friends": [
    {"name": "rick"},
    {"name": "cate"}
  ]
}
Consulta de gosto
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Consulta de matriz
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "cate" END;

Couchbase Mobile

Couchbase Mobile / Couchbase Lite é um banco de dados móvel que fornece replicação de dados.

Couchbase Lite (originalmente TouchDB) fornece bibliotecas nativas para bancos de dados NoSQL offline com mecanismos de replicação ponto a ponto ou cliente-servidor integrados . O Sync Gateway gerencia o acesso seguro e a sincronização de dados entre o Couchbase Lite e o Couchbase Server.

Bibliografia

  • Brown, MC (22 de junho de 2012). Introdução ao Couchbase Server (1ª ed.). O'Reilly Media. p. 88. ISBN 978-1449331061.
  • Ostrovsky, David; Haji, Mohammed; Rodenski, Yaniv (26 de novembro de 2015), Pro Couchbase Server 2ª ed. (2ª ed.), Apress , p. 349, ISBN 978-1484211861
  • Potsangbam, Henry (23 de novembro de 2015), Learning Couchbase (1ª ed.), Packt , p. 202, ISBN 978-1785288593
  • Vohra, Deepak (3 de agosto de 2015), Pro Couchbase Development: A NoSQL Platform for the Enterprise (1ª ed.), Apress , p. 331, ISBN 978-1484214350
  • Sangudi, Gerald; et al. (20 de outubro de 2017), N1QL: A Practical Guide (2ª edição) (2ª ed.), Auto-publicado , p. 423
  • Vemulapalli, Sitaram; et all. (10 de maio de 2018), A Guide to N1QL features in Couchbase 5.5: Special Edition , Auto-publicado, p. 112
  • Chamberlin, Don ; (19 de outubro de 2018) SQL ++ para usuários de SQL: um tutorial, Couchbase

Referências

links externos