O RYOW (read your own write, leia sua própria gravação) pode ser complicado com alguns dos bancos de dados NoSQL, mas não com o Couchbase Server. Com o Couchbase Server ativo, o vbucket assume as gravações e leituras por padrão (embora você possa ler das réplicas a qualquer momento), o que significa que, em estado estável, você pode ler suas próprias gravações... sem problemas! O Couchbase Server grava primeiro na memória e replica rapidamente por meio do DCP para as réplicas e persiste no disco. Você pode esperar por confirmações na replicação ou persistência quando emitir uma atualização. Esse ack lhe dá a mesma garantia de RYOW, mesmo em uma reinicialização de nó ou failover (também conhecido como sinalizadores ReplicateTo e PersistTo).
Quando se trata de consultas, ao contrário dos bancos de dados relacionais, as consultas do Couchbase Server oferecem a opção de ler o que foi processado na visualização sem esperar OU a consulta pode esperar até que todas as atualizações sejam processadas, até o ponto da solicitação de consulta para garantir RYOW na consulta. Portanto, a primeira é de baixa latência e é chamada de consulta com "stale=ok". E a posterior é conhecida como consulta "stale=false", que aguarda o processamento e, portanto, pode ter uma latência mais alta! As consultas do tipo stale=false são muito úteis. Imagine criar um aplicativo de mensagens. Se a mensagem que você enviou não aparecer na pasta "mensagens enviadas" (que normalmente é uma consulta de visualização), você poderá enviá-la novamente! Ou você salva uma nova lista de reprodução em seu aplicativo móvel, volta às suas listas de reprodução e, se não vir essa nova lista de reprodução, ficará confuso! Portanto, o stale-false é essencial!
Com esse histórico, vamos dar uma olhada em como a versão 3.0 melhora a situação. Para obter o RYOW em versões anteriores do Couchbase Server, você precisava fazer duas coisas;
- sua atualização precisa usar o sinalizador PersistTo
- Sua consulta precisa usar o sinalizador stale=false
1 2 3 4 |
<forte><extensão estilo="color: green">//2.5 para Read Your Own Write</span></strong> <extensão estilo="color: blue" (cor: azul)>cliente.ExecuteStore(StoreMode.Conjunto, chave, val, <forte>Couchbase.Operações.PersistTo.Um,</forte> Couchbase.Operações.ReplicarPara.Zero);</extensão> |
Isso lhe daria RYOW em versões anteriores, como o Couchbase Server 2.5. O PersistTo obviamente reduz a velocidade do disco. No entanto, com a replicação de streaming (DCP) + Visualizações Incremental Map/Reduce, obter RYOW não requer mais persistTo no Couchbase Server 3.0. Esta é a aparência da mesma chamada na versão 3.0. Você não precisa mais de #1, portanto PersistTo.Zero.
1 2 3 4 |
<forte><extensão estilo="color: green">//3.0 para o Read Your Own Write</span></strong> <extensão estilo="color: blue" (cor: azul)>cliente.ExecuteStore(StoreMode.Conjunto, chave, val, <forte>Couchbase.Operações.PersistTo.Zero,</forte> Couchbase.Operações.ReplicarPara.Zero);</extensão> |
A latência pode ser 50 vezes menor na versão 3.0 em comparação com as versões anteriores, como o Couchbase Server 2.5. Isso é um ótimo retorno para o investimento! Se você estiver usando exibições e precisar de consultas "stale=false", o Couchbase Server 3.0 lhe trará muitos benefícios. A atualização é fácil e on-line. Você pode fazer o download da versão 3.0 aqui.
Feliz teste.