BR112019014478A2 - Método para a determinação do estado da base de dados e dispositivo para a determinação do estado da base de dados - Google Patents

Método para a determinação do estado da base de dados e dispositivo para a determinação do estado da base de dados Download PDF

Info

Publication number
BR112019014478A2
BR112019014478A2 BR112019014478-1A BR112019014478A BR112019014478A2 BR 112019014478 A2 BR112019014478 A2 BR 112019014478A2 BR 112019014478 A BR112019014478 A BR 112019014478A BR 112019014478 A2 BR112019014478 A2 BR 112019014478A2
Authority
BR
Brazil
Prior art keywords
data
database
state
state transition
value
Prior art date
Application number
BR112019014478-1A
Other languages
English (en)
Inventor
Zhao Boran
Original Assignee
Alibaba Group Holding Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Limited filed Critical Alibaba Group Holding Limited
Publication of BR112019014478A2 publication Critical patent/BR112019014478A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

o presente pedido revela um método para a determinação do estado da base de dados, para aliviar um problema da tecnologia existente, de que uma quantidade relativamente grande de recursos de computação é consumido quando um valor de estado da base de dados é determinado. o método inclui: determinar uma operação de transição de estado executada em uma base de dados de destino; e determinar, com base na operação de transição de estado determinada e um valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, em que o valor de estado é usado para representar um estado da base de dados de destino. o presente pedido revela ainda um dispositivo para a determinação do estado da base de dados e um método e dispositivo para a verificação da consistência da base de dados.

Description

“MÉTODO PARA A DETERMINAÇÃO DO ESTADO DA BASE DE DADOS E DISPOSITIVO PARA A DETERMINAÇÃO DO ESTADO DA BASE DE DADOS”
Campo da invenção
[001] O presente pedido refere-se ao campo das tecnologias informáticas e, em particular, ao método e dispositivo para a determinação do estado da base de dados e a um método e dispositivo para a verificação da consistência da base de dados.
Antecedentes da Invenção
[002] Ao armazenar dados, um computador às vezes armazena os mesmos dados em uma pluralidade de bases de dados diferentes. Os dados armazenados nesses diferentes bases de dados de forma geral precisam ser sincronizados com base em um requisito de serviço, ou seja, os dados armazenados nos bases de dados de forma geral precisam ser consistentes. A tecnologia de protocolo de confiança é usada como exemplo. Após a verificação ser executada, uma pluralidade de registros de transação é gravada em todos os nós (bases de dados que correspondem aos nós) que armazenam dados de protocolo de confiança. Para garantir que um novo bloco aceito por todos os nós seja gerado, os dados armazenados em todas as bases de dados que correspondem a todos os nós devem ser consistentes. Por outro exemplo, no caso de uma base de dados primário/ secundário no armazenamento distribuído, para ajudar a restaurar dados de outra base de dados (a base de dados secundário) quando ocorrer um erro nos dados da base de dados principal, os dados armazenados na base de dados primário e os dados armazenados na base de dados base de dados secundário de forma geral também precisa ser consistente.
[003] Para assegurar que os dados armazenados em uma pluralidade de bases de dados sejam consistentes, a verificação da
Petição 870190065828, de 12/07/2019, pág. 83/117
2/30 consistência pode ser executada nos dados na pluralidade de bases de dados, e uma medida corretiva pode ser tomada em tempo hábil quando os dados são inconsistentes. Como a base de dados de forma geral inclui muitos dados, a verificação da consistência da base de dados de forma geral é executada comparando um valor de estado usado para representar um estado de dados na base de dados, em vez de comparar todos os dados na pluralidade de bases de dados um por um. Para facilitar a descrição, o estado dos dados na base de dados pode ser chamado de estado da base de dados.
[004] Na tecnologia existente, após que os dados em uma base de dados mudam a cada vez, um valor de estado da base de dados precisa ser redeterminado. Quando o valor de estado é determinado, o valor de estado é de forma geral calculado usando todos os dados na base de dados. Por exemplo, o valor de estado pode ser um valor de hash dos dados na base de dados. Nesse caso, quando o valor de hash é determinado, todos os dados na base de dados precisam ser unidos (unidos) para obter uma corda (string). Em seguida, a sequência de caracteres é usada como a entrada de uma função de hash e o valor de hash é calculado usando a função de hash. Nesse caso, quando a base de dados inclui uma quantidade relativamente grande de dados, uma quantidade relativamente grande de recursos de computação é consumida quando o valor de estado da base de dados é determinado.
Descrição Resumida da Invenção
[005] As formas de realização da presente invenção fornecem um método para a determinação do estado da base de dados, para aliviar um problema de tecnologia existente, em que uma quantidade relativamente grande de recursos de união é consumida quando é determinado um valor de estado da base de dados.
[006] As seguintes soluções técnicas são utilizadas nas formas de realização do presente pedido.
Petição 870190065828, de 12/07/2019, pág. 84/117
3/30
[007] Um método para a determinação do estado da base de dados é fornecido, incluindo: determinação de uma operação de transição de estado executada em uma base de dados de destino; e determinar, com base na operação de transição de estado determinada e um valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, em que o valor de estado é usado para representar um estado da base de dados de destino.
[008] As formas de realização da presente invenção proporcionam ainda um dispositivo para a determinação do estado da base de dados, para aliviar um problema de tecnologia existente, em que uma quantidade relativamente grande de recursos de união é consumida quando é determinado um valor de estado da base de dados.
[009] Um dispositivo para a determinação do estado da base de dados é fornecido, incluindo: uma primeira unidade de determinação, configurada para determinar uma operação de transição de estado executada em uma base de dados de destino; e uma segunda unidade de determinação, configurada para determinar, com base na operação de transição de estado determinada e um valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, em que o valor de estado é usado para representar um estado da base de dados de destino.
[010] Um método para a verificação da consistência da base de dados é fornecido, incluindo: determinar se um valor de estado de uma primeira base de dados a ser verificado e um valor de estado de uma segunda base de dados a ser verificado são os mesmos, em que o valor de estado da primeira
Petição 870190065828, de 12/07/2019, pág. 85/117
4/30 base de dados e o valor de estado da segunda base de dados são determinados, usando o método para a determinação do estado da base de dados fornecido no presente pedido; e se o valor de estado da primeira base de dados e o valor de estado da segunda base de dados forem os mesmos, determinar que um estado da primeira base de dados e um estado da segunda base de dados são consistentes.
[011] Um dispositivo para a verificação da consistência da base de dados é fornecido, incluindo: uma unidade de determinação do estado, configurada para determinar se um valor de estado de uma primeira base de dados a ser verificado e um valor de estado de uma segunda base de dados a ser verificado são os mesmos, em que o valor de estado da primeira base de dados e o valor de estado da segunda base de dados são determinados, usando o dispositivo para a determinação do estado da base de dados fornecido no presente pedido; e uma unidade de determinação de consistência, configurada para: quando for determinado que o valor de estado da primeira base de dados e o valor de estado da segunda base de dados são os mesmos, determinar que um estado da primeira base de dados e um estado da segunda base de dados são consistentes.
[012] Pelo menos uma das soluções técnicas anteriores utilizadas nas formas de realização do presente pedido pode alcançar os seguintes efeitos benéficos.
[013] Quando o valor de estado da base de dados cujos dados são alterados devido à operação de transição de estado é determinado, a operação de transição de estado executada na base de dados de destino é determinada e, em seguida, o valor de estado da base de dados e que existe após a operação de transição de estado ser executada é determinada com base na operação de transição de estado determinada e no valor de estado que é da base de dados e que existe antes da operação de transição
Petição 870190065828, de 12/07/2019, pág. 86/117
5/30 de estado ser executada. Em comparação com a tecnologia existente, não há necessidade de executar uma operação em todos os dados em toda base de dados, reduzindo assim o consumo excessivo de recursos de computação.
Breve Descrição das Figuras
[014] Os desenhos anexos aqui descritos pretendem proporcionar uma compreensão adicional do presente pedido e constituem uma parte do presente pedido. As formas de realização ilustrativas do presente pedido e descrições das formas de realização destinam-se a descrever o presente pedido e não constituem limitações no presente pedido. Nos desenhos anexos:
A Figura 1 é um diagrama esquemático que ilustra uma estrutura de dados de uma árvore de hash, de acordo com o presente pedido;
A Figura 2 é um fluxograma de forma de realização esquemática que ilustra um método para a determinação do estado da base de dados, de acordo com a presente invenção;
A Figura 3 é um fluxograma de forma de realização esquemática que ilustra um método para a verificação da consistência da base de dados, de acordo com a presente invenção;
A Figura 4 é um fluxograma de forma de realização esquemática que ilustra um método para a determinação do estado da base de dados, de acordo com a presente invenção;
A Figura 5 é um diagrama esquemático que ilustra uma estrutura específica de um dispositivo para a determinação do estado da base de dados, de acordo com a presente invenção; e
A Figura 6 é um diagrama esquemático que ilustra uma estrutura específica de um dispositivo para a verificação da consistência da
Petição 870190065828, de 12/07/2019, pág. 87/117
6/30 base de dados, de acordo com a presente invenção.
Descrição Detalhada da Invenção
[015] Para tornar mais claros os objetivos, soluções técnicas e vantagens do presente pedido, o que se segue descreve de forma clara e completa as soluções técnicas do presente pedido com referência a formas de realização específicas e desenhos anexos que correspondem do presente pedido. Aparentemente, as formas de realização descritas são apenas algumas e não todas as formas de realização do presente pedido. Todas as outras formas de realização obtidas por um técnico no assunto com base nas formas de realização do presente pedido sem esforços criativos devem caber no escopo de proteção do presente pedido.
[016] As soluções técnicas fornecidas nas formas de realização do presente pedido são descritas em detalhe abaixo com referência aos desenhos anexos.
[017] À medida que as tecnologias de computação se desenvolvem, é cada vez mais comum verificar se os dados em todas as bases de dados são consistentes. Um protocolo de confiança é usado como um exemplo. O protocolo de confiança é uma base de dados distribuído, uma mudança de cada parte dos dados no de protocolo de confiança é transmitida para cada nó de protocolo de confiança em toda a rede, e todos os nós precisam ter dados completos e consistentes. Os dados são de forma geral armazenados em uma pluralidade de unidades de dados em cada nó. Uma unidade de dados pode ser um bloco no de protocolo de confiança, ou pode ser uma unidade de dados que inclui uma pluralidade de blocos. Quando um valor de estado do nó é determinado, uma árvore de hash como uma árvore Merkle é construída usando um valor de hash de dados em cada unidade de dados como um nó folha e, em seguida, um valor de hash de um nó de raiz da árvore de hash é usado como o valor de estado da base de dados, para que o valor
Petição 870190065828, de 12/07/2019, pág. 88/117
7/30 de estado seja usado para representar de maneira exclusiva um estado da base de dados.
[018] A Figura 1 é um diagrama esquemático ilustrando uma estrutura de dados de uma árvore de hash construída para uma determinada base de dados. Quando um valor de hash de um nó de raiz da árvore de hash é calculado, um valor de hash de dados em cada unidade de dados é calculado primeiro. Em seguida, o valor de hash obtido é usado como um valor de um nó folha da árvore de hash e um valor de hash de um nó pai de cada nó folha é calculado, de forma que o valor de hash do nó de raiz da árvore de hash seja finalmente obtido. Após que os dados na base de dados forem alterados, um valor de estado da base de dados precisará ser determinado novamente. Como tal, o processo anterior de calcular o valor de hash do nó de raiz da árvore de hash precisa ser repetido. Se houver uma grande quantidade de dados na base de dados, uma operação de hash precisará ser executada em uma grande quantidade de dados. Isso consome uma grande quantidade de recursos de computação.
[019] Em alguns cenários semelhantes, quando o valor de estado da base de dados é determinado, uma quantidade relativamente grande de recursos de computação também é consumida. Detalhes são omitidos aqui para simplificar. Para aliviar o problema, o presente aplicativo fornece um método para a determinação do estado da base de dados, para que um estado de uma base de dados de destino seja determinado com base em uma operação de transição de estado executada na base de dados de destino.
[020] O texto abaixo descreve em detalhes o método para a determinação do estado da base de dados fornecido no presente pedido. O método pode ser executado por um dispositivo de computação, por exemplo, um nó da base de dados em uma base de dados distribuído ou um nó em um protocolo de confiança. Além disso, o método pode ser realizado por um
Petição 870190065828, de 12/07/2019, pág. 89/117
8/30 programa aplicativo que implementa o método para a determinação do estado da base de dados fornecido no presente pedido. Para facilitar a descrição, uma forma de realização do método é descrita abaixo usando um exemplo de que o método é executado por um dispositivo de computação. Pode ser entendido que, o método é realizado por um dispositivo de computação é apenas um exemplo para descrição, e não deve ser considerado como uma limitação no método.
[021] A Figura 2 é um fluxograma de forma de realização esquemática que ilustra um método para a determinação do estado da base de dados, de acordo com a presente invenção. O método inclui as etapas abaixo.
[022] Etapa (S101): Determinar uma operação de transição de estado executada em uma base de dados de destino.
[023] A operação de transição de estado aqui pode ser uma operação da base de dados que causa uma alteração de estado de uma base de dados e pode ser de forma específica uma operação como uma operação de gravação de dados, uma operação de atualização de dados ou uma operação de exclusão de dados. A operação de transição de estado pode incluir dados unidos e um método para processar os dados. Por exemplo, a operação de gravação de dados inclui dados a serem gravados e um local específico para o qual os dados precisam ser gravados na base de dados. A base de dados de destino aqui pode ser uma base de dados no qual a operação de transição de estado é executada e a base de dados de destino pode ser qualquer base de dados cujo valor de estado deve ser determinado.
[024] Em aplicações reais, pode haver muitos métodos para determinar a operação de transição de estado. Por exemplo, em um programa de aplicação orientado a objeto, se a operação de transição de estado é implementada por um objeto, a operação de transição de estado pode ser determinada pela determinação de um objeto de operação de dados que
Petição 870190065828, de 12/07/2019, pág. 90/117
9/30 corresponde à operação de transição de estado; ou a operação de transição de estado pode ser determinada com base em uma declaração de operação da base de dados que corresponde à operação de transição de estado. O objeto de operação de dados aqui é um objeto de dados que está em um programa aplicativo orientado a objetos e é usado para executar uma operação da base de dados. No programa de aplicativo orientado a objetos, um “objeto” de forma geral é uma instância cuja classe é carregada em uma memória e tem variáveis de membro e funções de membro relacionadas.
[025] Como uma operação de transição de estado causa uma alteração de dados em uma base de dados, após que a operação de transição de estado é determinada, um estado da base de dados e que existe após a operação de transição de estado ser executada pode ser determinado.
[026] Etapa (S102): Determinar, com base na operação de transição de estado determinada e um valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e que existe após a operação de transição de estado é executado.
[027] O valor de estado aqui é usado para representar um estado da base de dados de destino. Como o valor de estado pode ser usado para executar a verificação da consistência na base de dados de destino, o valor de estado pode ser usado para representar exclusivamente uma característica dos dados armazenados na base de dados de destino. Por exemplo, o valor de estado pode ser um valor de hash ou pode ser um identificador global exclusivo. O valor de hash é obtido executando uma operação de hash em um parâmetro de entrada usando uma função de hash. O identificador global exclusivo pode ser um identificador alocado por um sistema e usado para identificar exclusivamente um estado da base de dados no sistema.
[028] Vale a pena notar que, um técnico no assunto deve estar
Petição 870190065828, de 12/07/2019, pág. 91/117
10/30 ciente de que “representar exclusivamente” não deve ser interpretado como exclusividade absoluta, mas significa exclusividade dentro de um intervalo de erro permitido. Atualmente, para o algoritmo de hash mais amplamente utilizado, teoricamente, diferentes dados de entrada têm o mesmo valor de hash de saída, ou seja, existe uma colisão de hash.
[029] Um estado existente após os dados em uma base de dados é relacionado a um estado existente antes da alteração dos dados e uma operação de transição de estado. Assim, após a determinação da operação de transição de estado ser executada na base de dados de destino, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado pode ser determinado com base na operação de transição de estado determinada e no valor de estado que é da base de dados de destino e que existe antes da operação ser executada.
[030] Em aplicações reais, como descrito na etapa (S101), no programa de aplicação orientado a objeto, a operação de transição de estado pode ser determinada pela determinação do objeto de operação de dados que corresponde à operação de transição de estado. Subsequentemente, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada pode ser determinado com base no objeto de operação de dados determinado e no valor de estado que é da base de dados de destino e antes da operação de transição de estado realizado.
[031] Para ajudar a distinguir entre operações de transição de estado diferentes usando um identificador curto, a operação de transição de estado também pode ser representada exclusivamente usando um determinado valor de característica. O valor característico da operação de transição de estado pode ser um valor de hash ou pode ser um identificador global exclusivo usado para identificar exclusivamente a operação de transição de estado. Detalhes são omitidos aqui para simplificar. Para ajudar a calcular o
Petição 870190065828, de 12/07/2019, pág. 92/117
11/30 valor característico da operação de transição de estado e o valor de estado que é da base de dados de destino para obter o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, um formato de dados do valor de característica pode ser o mesmo ou semelhante a um formato de dados do valor de estado que é da base de dados de destino.
[032] Em aplicações reais, para o programa de aplicativo orientado a objeto, um valor de hash do objeto de operação de dados pode ser determinado e, em seguida, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, é determinado com base no valor de hash determinado do objeto de operação de dados e o valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada.
[033] O texto abaixo descreve de forma específica um processo de determinação do valor de hash do objeto de operação de dados nesta forma de realização do presente pedido.
[034] Quando o valor de hash do objeto de operação de dados é determinado, para converter um formato de dados do objeto de operação de dados em um formato suportado pela entrada de um algoritmo de hash, uma operação de serialização pode ser executada no objeto de operação de dados. A operação de serialização pode converter informações de estado do objeto em um formato que pode ser armazenado ou transmitido. Após que a operação de serialização é executada no objeto de operação de dados, os dados serializados que correspondem ao objeto de operação de dados podem ser obtidos. Por exemplo, um formato de dados dos dados serializados pode ser um formato binário e os dados no formato binário podem ser usados como entrada do algoritmo de hash.
[035] Após que os dados serializados que correspondem ao
Petição 870190065828, de 12/07/2019, pág. 93/117
12/30 objeto de operação de dados são obtidos, uma operação de hash pode ser executada nos dados serializados para obter um valor de hash dos dados serializados, e o valor de hash dos dados serializados pode ser usado como o valor de hash do objeto de operação de dados.
[036] Vale a pena notar que, uma operação de transição de estado único de forma geral corresponde a mais de um objeto de operação de dados, por exemplo, cada operação de transição de estado executada por um nó em um protocolo de confiança de forma geral corresponde a uma pluralidade de objetos de operação de dados. Como tal, quando o objeto de operação de dados que corresponde à operação de transição de estado é serializado, todos os objetos de operação de dados podem ser serializados separadamente; em seguida, todos os dados serializados obtidos são unidos sequencialmente; e, finalmente, os dados serializados unidos obtidos são usados como dados serializados que correspondem à operação de transição de estado.
[037] Quando todos os dados serializados obtidos são unidos sequencialmente, se uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados for fixa, os dados serializados que correspondem a todos os objetos de operação de dados são unidos com base na sequência de execução da operação de transição de estado, para obter os dados serializados unidos. De forma alternativa, se uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados não for fixa, os dados serializados que correspondem a todos os objetos de operação de dados são unidos com base em uma primeira sequência pré-determinada, para obter os dados serializados unidos. Em seguida, um valor de hash dos dados serializados unidos pode ser calculado usando uma função de hash e o valor de hash dos dados serializados unidos é usado como o valor de hash do objeto de operação de
Petição 870190065828, de 12/07/2019, pág. 94/117
13/30 dados que corresponde à operação de transição de estado.
[038] A primeira sequência pré-determinada pode ser uma sequência de união pré-determinada. Por exemplo, se um formato de dados em cada objeto de operação de dados for um formato de valor-chave, os dados serializados que correspondem a todos os objetos de operação de dados podem ser unidos em ordem decrescente de valores-chave.
[039] Após que o valor de hash do objeto de operação de dados que corresponde à operação de transição de estado for determinado, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado pode ser determinado com base no valor de hash determinado da operação de dados objeto e o valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada. De forma específica, o valor de hash do objeto de operação de dados e o valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada podem ser unidos com base em uma segunda sequência pré-determinada, para obter dados unidos. Um valor de hash dos dados unidos é determinado. O valor de hash dos dados unidos é usado como o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
[040] A primeira sequência pré-determinada e a segunda sequência pré-determinada aqui, cada uma, pode ser uma sequência de união pré-determinada. Quando os valores de estado de todas as bases de dados são calculados, a mesma sequência de união deve ser usada quando os dados são unidos. Caso contrário, mesmo se os dados em todas as bases de dados forem consistentes, os valores de estado calculados serão diferentes e a consistência entre as bases de dados não poderá ser verificada com precisão.
[041] Vale a pena observar que, em alguns casos, dois grupos de dados diferentes possivelmente se tornam os mesmos dados unidos após a
Petição 870190065828, de 12/07/2019, pág. 95/117
14/30 execução da união. Por exemplo, dados “hello” e “world” podem ser unidos para obter o dado unido ’’helloworld”, e da mesma forma, os dados “he” e “Howorld” são unidos para obter “helloworld”. Aparentemente, os dois grupos de dados são dados diferentes antes que a união seja executada. Nesse caso, para evitar que dados diferentes se tornem os mesmos dados após a execução da união, quando uma operação de união é executada, um separador pode ser usado para garantir a exclusividade dos dados unidos. De forma específica, um separador pré-determinado pode ser colocado em um local de união de dados. O separador pré-determinado pode ser pré-definido por um desenvolvedor. Por exemplo, o separador é 123. Neste caso, os dados “hello” e “world” podem ser unidos para obter “hello123world” e os dados “he” e “Howorld” podem ser unidos para obter “he123lloworld”. Como tal, pode ser assegurado que duas partes de dados são dados diferentes após a execução da união.
[042] Com base no método anterior para unir dados usando um separador, quando os dados serializados que correspondem a todos os objetos de operação de dados são unidos, um separador pré-determinado pode ser colocado entre pelo menos duas partes de dados serializados que serão unidos e todas as partes dos dados serializados obtidos após a colocação do separador pré-determinado são unidos, para obter os dados serializados unidos. Certamente, antes que os dados sejam unidos usando um separador, se diferentes grupos de dados são os mesmos dados após a execução da união pode ser determinado primeiro. Quando um resultado de determinação é que os dados unidos são os mesmos, cada grupo de dados é unido usando o separador, para obter dados serializados unidos.
[043] De acordo com o método para a determinação do estado da base de dados fornecido nesta forma de realização do presente pedido, quando o valor de estado da base de dados cujas alterações de dados são determinadas, a operação de transição de estado executada na base de dados
Petição 870190065828, de 12/07/2019, pág. 96/117
15/30 de destino é determinada e, em seguida, o valor de estado da base de dados e que existe após a operação de transição de estado ser executada pode ser determinada com base na operação de transição de estado determinada e no valor de estado que é da base de dados e que existe antes da operação de transição de estado ser executada. Em comparação com a tecnologia existente, não há necessidade de executar uma operação em todos os dados em todo a base de dados, reduzindo assim o consumo excessivo de recursos de computação. Além disso, comparado a um valor de hash de um nó é calculado usando uma estrutura de árvore como uma árvore de hash na tecnologia de protocolo de confiança existente, nesta forma de realização do presente pedido, uma estrutura de árvore não precisa ser construída, e um valor de hash de cada nó na estrutura de árvore não precisa ser calculado, reduzindo assim o consumo de verificação da consistência de recursos de computação excessivos.
[044] Em algumas soluções preferidas fornecidas nesta forma de realização do presente pedido, uma operação de serialização é executada em um objeto de operação de dados e uma operação de hash é executada em dados serializados, e isso consome uma certa quantidade de recursos de computação. No entanto, em uma base de dados distribuído, particularmente em um protocolo de confiança, a base de dados de forma geral armazena uma quantidade muito grande de dados, e os recursos de computação consumidos pela execução de uma operação de hash nos dados da base de dados são muito mais do que os recursos de computação consumidos pela operação anterior nesta forma de realização do presente pedido.
[045] De acordo com o método anterior de determinação do estado da base de dados, um valor de estado de uma base de dados pode ser determinado. Posteriormente, a verificação da consistência pode ser executada na base de dados com base no valor de estado determinado. O texto abaixo
Petição 870190065828, de 12/07/2019, pág. 97/117
16/30 descreve em detalhes um método para a verificação da consistência da base de dados fornecido no presente pedido.
[046] A Figura 3 é um fluxograma de forma de realização esquemática que ilustra o método para a verificação da consistência da base de dados. O método inclui as etapas abaixo.
[047] Etapa (S201): Determinar se um valor de estado de uma primeira base de dados a ser verificado e um valor de estado de uma segunda base de dados a ser verificado são os mesmos.
[048] A primeira base de dados e a segunda base de dados aqui são bases de dados a serem verificados. Neste caso, o valor de estado da primeira base de dados e o valor de estado da segunda base de dados podem ser determinados separadamente com base no método para a determinação do estado da base de dados fornecido nesta forma de realização do presente pedido. Para um processo de determinação específico, podem ser feitas referências a descrições relacionadas no presente pedido. Detalhes são omitidos aqui para simplificar.
[049] Etapa (S202): Se o valor de estado da primeira base de dados e o valor de estado da segunda base de dados forem os mesmos, determinar que um estado da primeira base de dados e um estado da segunda base de dados são consistentes.
[050] Se o valor de estado da primeira base de dados e o valor de estado da segunda base de dados forem diferentes, será determinado que o estado da primeira base de dados e o estado da segunda base de dados estão inconsistentes.
[051] Com base no conceito inventivo anterior no presente pedido, para ajudar a entender melhor os recursos técnicos, meios e efeitos do presente pedido, o texto abaixo usa um exemplo de que uma base de dados de destino é usado como uma base de dados de um nó em uma tecnologia de
Petição 870190065828, de 12/07/2019, pág. 98/117
17/30 protocolo de confiança para descrever ainda mais o método para a determinação do estado da base de dados no presente pedido.
[052] Nesta forma de realização do presente pedido, um exemplo de que um aplicativo de protocolo de confiança é um aplicativo de protocolo de confiança de malha, uma base de dados de destino é uma base de dados LevelDB e um valor de estado da base de dados é um valor de hash usado para descrição. Uma operação de transição de estado pode ser executada na base de dados LevelDB usando um objeto de operação de dados. O objeto de operação de dados pode gravar dados em um formato de valor-chave na base de dados LevelDB. Quando a operação de transição de estado ser executada em um protocolo de confiança, um algoritmo de consenso é usado para assegurar que as operações de transição de estado sejam consistentes entre todos os nós e que a transição de estado seja executada na mesma ordem.
[053] Para cada nó de protocolo de confiança, quando nenhum dado é gravado em uma base de dados, um estado inicial Sinit de cada base de dados está vazio. Nesse caso, um valor de hash pode ser fornecido. Aqui, o valor de hash do estado inicial da base de dados é denotado como Hinit.
[054] Nesse caso, quando é determinado que uma operação de transição de estado is - Transição' é executada na base de dados de destino, um valor de hash da base de dados de destino pode ser recalculado com base na operação. A Figura 4 é um fluxograma de forma de realização esquemática do processo e o processo inclui as etapas abaixo.
[055] Etapa (S301): Determinar um objeto de operação de dados que corresponde à operação de transição de estado.
[056] Uma operação de transição de estado único de forma geral corresponde a uma pluralidade de objetos de operação de dados, e a operação de transição de estado i para o nó pode ser denotada como um conjunto {op1, op2... opN}, em que op é a abreviação de “operação”, indica um único objeto
Petição 870190065828, de 12/07/2019, pág. 99/117
18/30 de operação de dados e significa uma operação de gravação para um único par de valores-chave. Um formato de cada op é Chave: = NovoVal. Como tai, {op1, op2... opN} indica operações de gravação para N pares de valores-chave durante a operação de transição de estado i.
[057] Etapa (S302): Serializar cada objeto de operação de dados em dados serializados em um formato binário.
[058] Etapa (S303): Determinar se uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados é fixa; e se sim, executar a etapa (S304); ou se não, executar a etapa (S305).
[059] Etapa (S304): Se a sequência de execução da operação de transição de estado por todos os objetos de operação de dados for fixa, unir, com base na sequência de execução da operação de transição de estado, os dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos; e executar a etapa (S306).
[060] Etapa (S305): Se a sequência de execução da operação de transição de estado por todos os objetos de operação de dados não for fixa, unir, com base em uma primeira sequência pré-determinada, os dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos.
[061] A primeira sequência pré-determinada aqui pode ser uma ordem decrescente de valores de chave.
[062] Etapa (S306): Determinar um valor de hash dos dados serializados unidos e usar o valor de hash como um valor de hash que corresponde à operação de transição de estado.
[063] Os dados serializados unidos são usados como entrada do algoritmo de hash para executar uma operação de hash, de modo a obter o valor de hash dos dados serializados unidos, ou seja, um valor de hash - Hash
Petição 870190065828, de 12/07/2019, pág. 100/117
19/30 (Transição') da operação de transição de estado Transição'.
[064] Etapa (S307): Unir, com base em uma segunda sequência pré-determinada, o valor de hash que corresponde à operação de transição de estado e um valor de hash H'1 que é da base de dados de destino e que existe antes da operação de transição de estado ser executada para obter dados unidos.
[065] Etapa (S308): Determinar um valor de hash dos dados unidos e usar o valor de hash dos dados unidos como um valor de hash H' que é da base de dados de destino e que existe após a operação de transição de estado Transição' ser executada.
[066] O valor de hash finalmente obtido H' que é da base de dados de destino e que existe após a operação de transição de estado Transição' ser executada, pode ser representado pela seguinte equação: H': = Hash (HM || Hash (Transição')).
[067] H° = Hinit, em que || indica uma operação de unir, Hash (x) é uma função de hash e indica que uma operação de hash é executada nos dados de entrada x, e a função de hash pode ser, por exemplo, SHA3.
[068] De acordo com o método para a determinação do estado da base de dados fornecido nesta forma de realização do presente pedido, quando o valor de hash da base de dados cujos dados são alterados, a operação de transição de estado Transição' executada na base de dados de destino é determinada; então, o valor de hash - Hash (Transição) que corresponde à operação de transição de estado é determinado; e o valor de estado H' que é da base de dados e que existe após a operação de transição de estado ser executada pode ser determinado com base no valor de hash H'1 que é da base de dados e que existe antes da operação de transição de estado ser executada. Em comparação com a tecnologia existente, não há necessidade de executar uma operação em todos os dados na base de dados
Petição 870190065828, de 12/07/2019, pág. 101/117
20/30 do nó inteiro para obter um valor de hash, reduzindo assim o consumo excessivo de recursos de computação. Além disso, comparado a um valor de hash de um nó é calculado usando uma estrutura de árvore como uma árvore de hash na tecnologia de protocolo de confiança existente, nesta forma de realização do presente pedido, uma estrutura de árvore não precisa ser construída, e um valor de hash de cada nó na estrutura de árvore não precisa ser calculado, de forma que o consumo de recursos de computação seja ainda mais reduzido.
[069] O método para a determinação do estado da base de dados fornecido nas formas de realização da presente invenção é descrito acima. Como mostrado na Figura 5, com base na mesma ideia, uma forma de realização da presente invenção fornece ainda um dispositivo para a determinação do estado da base de dados que corresponde. O dispositivo inclui de forma específica: uma primeira unidade de determinação (401), configurada para determinar uma operação de transição de estado executada em uma base de dados de destino; e uma segunda unidade de determinação (402), configurada para determinar, com base na operação de transição de estado determinada e um valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e existe após a operação de transição de estado ser executada, em que o valor de estado é usado para representar um estado da base de dados de destino.
[070] Nesta forma de realização da presente invenção, ainda existem muitas formas de realização específicas de determinação de um estado da base de dados. Em uma forma de realização, a primeira unidade de determinação (401) é configurada para determinar um objeto de operação de dados, usado para executar a operação de transição de estado na base de dados de destino.
Petição 870190065828, de 12/07/2019, pág. 102/117
21/30
[071] A segunda unidade de determinação (402) é configurada para determinar, com base no objeto de operação de dados determinado e no valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
[072] Em uma forma de realização, a segunda unidade de determinação (402) inclui de forma específica um primeiro valor de hash que determina a subunidade (403) e uma primeira subunidade de determinação de valor de estado (404).
[073] A primeira subunidade de determinação de valor de hash (403) é configurada para determinar um valor de hash do objeto de operação de dados.
[074] A primeira subunidade (404) de determinação do estado é configurada para determinar, com base no valor de hash determinado do objeto de operação de dados e do valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
[075] Em uma forma de realização, a primeira subunidade de determinação do valor de hash (403) inclui de forma específica uma subunidade de determinação de dados serializados (405) e uma segunda subunidade de determinação de valor de hash (406).
[076] A subunidade de determinação de dados serializados (405) é configurada para serializar o objeto de operação de dados para obter dados serializados.
[077] A segunda subunidade de determinação de valor de hash (406) é configurada para: determinar um valor de hash dos dados serializados
Petição 870190065828, de 12/07/2019, pág. 103/117
22/30 e usar o valor de hash dos dados serializados como o valor de hash do objeto de operação de dados.
[078] Em uma forma de realização, a subunidade (405) de determinação de dados serializados inclui de forma específica uma primeira subunidade (407) de união e uma segunda subunidade (408) de união.
[079] Em uma forma de realização, a primeira subunidade de união (407) é configurada para: quando houver mais de um objeto de operação de dados usado para executar a operação de transição de estado na base de dados de destino e é executada uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados, unir, com base na sequência de execução da operação de transição de estado, dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos.
[080] A segunda subunidade de união (408) é configurada para: quando houver mais de um objeto de operação de dados usado para executar a operação de transição de estado na base de dados de destino, e uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados não for fixa, unir, com base em uma primeira sequência pré-determinada, dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos.
[081] Para impedir que diferentes grupos de dados sejam os mesmos dados após a execução da união, em uma forma de realização, a segunda subunidade de união (408) é configurada para: colocar um separador pré-determinado entre pelo menos duas partes de dados serializados e unir todas as partes de dados serializados obtidos após o separador prédeterminado ser colocado, para obter os dados serializados unidos.
[082] Em uma forma de realização, a subunidade (404) de determinação do primeiro estado é configurada para: unir, com base em uma
Petição 870190065828, de 12/07/2019, pág. 104/117
23/30 segunda sequência pré-determinada, o valor de hash do objeto de operação de dados e o valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado é realizado para obter dados unidos; e determinar um valor de hash dos dados unidos e usar o valor de hash dos dados unidos como o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
[083] Em uma forma de realização, a base de dados de destino é uma base de dados que corresponde a qualquer nó em um protocolo de confiança.
[084] Em uma forma de realização, o valor de estado é usado para representar exclusivamente uma característica dos dados armazenados na base de dados de destino.
[085] De acordo com o dispositivo para a determinação do estado da base de dados fornecido nesta forma de realização do presente pedido, quando o valor de estado da base de dados cujas alterações de dados são determinadas, a operação de transição de estado executada na base de dados de destino é determinada, em que a operação de transição de estado é uma operação de transição de estado que causa a mudança de dados. Em seguida, o valor de estado que é da base de dados e que existe após a operação de transição de estado ser executada é determinado com base na operação de transição de estado determinada e no valor de estado da base de dados e que existe antes da operação de transição de estado. Em comparação com a tecnologia existente, não há necessidade de executar uma operação em todos os dados em todo a base de dados, reduzindo assim o consumo excessivo de recursos de computação.
[086] Uma forma de realização da presente invenção fornece ainda um dispositivo para a verificação da consistência da base de dados que corresponde. Como mostrado na Figura 6, o dispositivo inclui de forma
Petição 870190065828, de 12/07/2019, pág. 105/117
24/30 específica: uma unidade de determinação (501), configurada para determinar se um valor de estado de uma primeira base de dados a ser verificado e um valor de estado de uma segunda base de dados a ser verificado são os mesmos, em que o valor de estado da primeira base de dados e o valor de estado da segunda base de dados são determinados, usando o dispositivo fornecido na forma de realização anterior do presente pedido; e uma unidade de determinação de consistência (502), configurada para: quando é determinado que o valor de estado da primeira base de dados e o valor de estado da segunda base de dados são os mesmos, determinar que um estado da primeira base de dados e um estado da segunda base de dados são consistente.
[087] Vale a pena notar que, nos anos 90, se uma melhoria técnica é uma melhoria de hardware (por exemplo, uma melhoria para uma estrutura de circuito como um diodo, um transistor ou um comutador) ou uma melhoria de software (uma melhoria para um procedimento do método) pode ser claramente distinguido. No entanto, conforme as tecnologias se desenvolvem, as melhorias atuais em muitos procedimentos de métodos podem ser consideradas como melhorias diretas nas estruturas dos circuitos de hardware. Um projetista de forma geral programa um procedimento de método aprimorado em um circuito de hardware, para obter uma estrutura de circuito de hardware que corresponde. Portanto, um procedimento de método pode ser aprimorado usando um módulo de entidade de hardware. Por exemplo, um dispositivo lógico programável (PLD) (por exemplo, um FPGA (Field Programmable Gate Array)) é um circuito integrado, e uma função lógica do PLD é determinada por um usuário através da programação do dispositivo. O projetista realiza a programação para “integrar” um sistema digital a um PLD sem solicitar um fabricante de chip para projetar e produzir um chip de circuito integrado específico da aplicação. Além disso, atualmente, em vez de fabricar
Petição 870190065828, de 12/07/2019, pág. 106/117
25/30 manualmente um chip de circuito integrado, essa programação é implementada principalmente usando o software “compilador lógico”. O software compilador lógico é semelhante a um compilador de software usado para desenvolver e escrever um programa. O código original precisa ser escrito em uma linguagem de programação específica para compilação. A linguagem é referida como uma linguagem de descrição de hardware (HDL). Existem muitos HDLs, como o Linguagem de Expressão Booleana Avançada (ABEL), a Linguagem de Descrição de Hardware Altera (AHDL), Confluence, a Linguagem de Programação da Universidade Cornell (CUPL), HDCal, a Linguagem de Descrição de Hardware Java (JHDL), Lava, Lola, MyHDL, PALASM e a linguagem de descrição de hardware do Ruby (RHDL). A linguagem de descrição de hardware de circuito integrado de altíssima velocidade (VHDL) e a Verilog são as mais usadas. Um técnico no assunto também deve compreender que um circuito de hardware que implementa um procedimento de método lógico pode ser prontamente obtido uma vez que o procedimento do método é logicamente programado usando as várias linguagens de descrição de hardware descritas e é programado em um circuito integrado.
[088] Um controlador pode ser implementado usando qualquer método apropriado. Por exemplo, o controlador pode ser um microprocessador ou um processador ou um meio legível por computador que armazena código de programa legível por computador (como software ou firmware) que pode ser executado pelo microprocessador ou pelo processador, uma porta lógica, um comutador, um circuito integrado específico da aplicação (ASIC), um controlador lógico programável ou um microprocessador incorporado. Exemplos do controlador incluem, mas não estão limitados aos seguintes microprocessadores: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 e Silicone Labs C8051F320. O controlador de memória também pode ser implementado como parte da lógica de controle da memória. Um técnico no
Petição 870190065828, de 12/07/2019, pág. 107/117
26/30 assunto também sabe que, além de implementar o controlador usando o código de programa legível por computador, a programação lógica pode ser executada nas etapas do método para permitir que o controlador implemente a mesma função em formas da porta lógica, switch, o circuito integrado específico da aplicação, o controlador lógico programável e o microcontrolador incorporado. Portanto, o controlador pode ser considerado como um componente de hardware, e um aparelho configurado para implementar várias funções no controlador também pode ser considerado como uma estrutura no componente de hardware. Ou o aparelho configurado para implementar várias funções pode até ser considerado como um módulo de software que implementa o método e uma estrutura no componente de hardware.
[089] O sistema, aparelho, módulo ou unidade ilustrados nas formas de realização anteriores podem ser implementados usando um chip de computador ou uma entidade, ou podem ser implementados usando um produto tendo uma certa função. Um dispositivo de forma de realização típico é um computador. O computador pode ser, por exemplo, um computador pessoal, um computador portátil, um telefone celular, um telefone com câmera, um smartphone, um assistente digital pessoal, um reprodutor de mídia, um dispositivo de navegação, um dispositivo de e-mail, um console de jogos, um tablet computador, ou um dispositivo vestível, ou uma combinação de qualquer um desses dispositivos.
[090] Para facilitar a descrição, o aparelho acima é descrito dividindo funções em várias unidades. Certamente, quando a presente invenção é implementada, uma função de cada unidade pode ser implementada em uma ou mais partes de software e/ ou hardware.
[091] Um técnico no assunto deve compreender que a forma de realização da presente invenção pode ser fornecida como um método, um sistema ou um produto de programa de computador. Portanto, o presente
Petição 870190065828, de 12/07/2019, pág. 108/117
27/30 aplicativo pode usar uma forma de formas de realização somente de hardware, formas de realização somente de software ou formas de realização com uma combinação de software e hardware. Além disso, a presente invenção pode usar uma forma de produto de programa de computador que é implementado em uma ou mais mídias de armazenamento usáveis por computador (incluindo, mas não limitado a uma memória de disco, um CD-ROM, uma memória ótica, etc.) que incluem código de programa utilizável pelo computador.
[092] A presente invenção é descrita com referência aos fluxogramas e/ ou diagramas de blocos do método, o dispositivo (sistema) e o produto de programa de computador com base nas formas de realização da presente invenção. Vale a pena notar que as instruções do programa de computador podem ser usadas para implementar cada processo e/ ou cada bloco nos fluxogramas e/ ou diagramas de blocos e uma combinação de um processo e/ ou um bloco nos fluxogramas e/ ou nos diagramas de blocos. Estas instruções de programas de computador podem ser fornecidas para um computador de propósito geral, um computador dedicado, um processador embutido ou um processador de outro dispositivo de processamento de dados programável para gerar uma máquina, para que as instruções executadas pelo computador ou processador de outro programável dispositivo de processamento de dados gera um dispositivo para implementar uma função específica em um ou mais processos nos fluxogramas e / ou em um ou mais blocos nos diagramas de bloco.
[093] Essas instruções de programas de computador podem ser armazenadas em uma memória legível por computador que pode instruir o computador ou outro dispositivo de processamento de dados programável a funcionar de uma maneira específica, de forma que as instruções armazenadas na memória gerada por computador gerem um artefato que inclua um dispositivo de instrução. O dispositivo de instrução implementa uma função
Petição 870190065828, de 12/07/2019, pág. 109/117
28/30 específica em um ou mais processos nos fluxogramas e/ ou em um ou mais blocos nos diagramas de bloco.
[094] Estas instruções de programas de computador podem ser carregadas no computador ou em outro dispositivo de processamento de dados programável, de modo que uma série de operações, operações e etapas sejam executadas no computador ou em outro dispositivo programável, gerando assim processamento implementado pelo computador. Portanto, as instruções executadas no computador ou em outro dispositivo programável fornecem etapas para implementar uma função específica em um ou mais processos nos fluxogramas e/ ou em um ou mais blocos nos diagramas de bloco.
[095] Em uma configuração típica, um dispositivo de cálculo inclui um ou mais processadores (CPU), uma interface de entrada/ saída, uma interface de rede e uma memória.
[096] A memória pode incluir uma memória não persistente, uma memória de acesso aleatório (RAM), uma memória não volátil e/ ou outra forma em um meio legível por computador, por exemplo, uma memória somente leitura (ROM) ou um flash memória (flash RAM). A memória é um exemplo do meio legível por computador. A memória é um exemplo do meio legível por computador.
[097] O meio legível por computador inclui mídia persistente, não persistente, móvel e imóvel que armazena armazenamento de informações usando qualquer método ou tecnologia. A informação pode ser uma instrução legível por computador, uma estrutura de dados, um módulo de programa ou outros dados. Exemplos de um meio de armazenamento de computador incluem mas não estão limitados a uma memória de mudança de fase (PRAM), uma memória de acesso aleatório estática (SRAM), uma memória de acesso aleatório dinâmica (DRAM), outro tipo de memória de acesso aleatório (RAM), uma leitura memória única (ROM), uma memória apenas de leitura
Petição 870190065828, de 12/07/2019, pág. 110/117
29/30 programável e apagável eletricamente (EEPROM), uma memória flash ou outra tecnologia de memória, uma memória de leitura em disco compacto (CD-ROM), um disco versátil digital (DVD) ou outro armazenamento, uma cassete de fita magnética, uma fita magnética/ armazenamento de disco magnético ou outro dispositivo de armazenamento magnético. O meio de armazenamento do computador pode ser usado para armazenar informações acessíveis pelo dispositivo de cálculo. Com base na definição da presente especificação, o meio legível por computador não inclui meios transitórios (meios transitórios), por exemplo, um sinal de dados modulado e portadora.
[098] Vale a pena observar ainda que os termos “incluir”, “incluindo” ou qualquer outra variante pretendem cobrir uma inclusão não exclusiva, portanto, um processo, um método, um produto ou um dispositivo que inclua uma lista de elementos não só incluem esses elementos, mas também inclui outros elementos que não estão expressamente listados, ou ainda inclui elementos inerentes a tal processo, um método, um produto ou um dispositivo. Um elemento precedido por “inclui um...” não exclui, sem mais restrições, a existência de elementos idênticos adicionais no processo, método, produto ou dispositivo que inclui o elemento.
[099] A presente invenção pode ser descrita no contexto geral de instruções executáveis por computador executadas por um computador, por exemplo, um módulo de programa. De forma geral, o módulo do programa inclui uma rotina, um programa, um objeto, um componente, uma estrutura de dados, etc., executando uma tarefa específica ou implementando um tipo de dados abstrato específico. O presente aplicativo também pode ser praticado em ambientes de computação distribuída. Nos ambientes de computação distribuída, as tarefas são executadas por dispositivos de processamento remoto conectados por meio de uma rede de comunicações. Em um ambiente de computação distribuída, o módulo do programa pode estar localizado tanto
Petição 870190065828, de 12/07/2019, pág. 111/117
30/30 na mídia de armazenamento do computador local quanto remoto, incluindo dispositivos de armazenamento.
[0100] As formas de realização na presente especificação são descritas de uma maneira progressiva. Para partes iguais ou semelhantes das formas de realização, referências podem ser feitas às formas de realização. Cada forma de realização se concentra em uma diferença de outras formas de realização. Particularmente, uma forma de realização do sistema é basicamente semelhante à forma de realização de um método e, portanto, é descrita resumidamente. Para partes relacionadas, referências podem ser feitas a descrições relacionadas na forma de realização do método.
[0101] As formas de realização anteriores são apenas formas de realização do presente pedido e não se destinam a limitar o presente pedido. Um técnico no assunto pode fazer várias modificações e alterações no presente pedido. Qualquer modificação, substituição equivalente, ou melhoria feita sem se afastar do espírito e princípio do presente pedido, cairá no escopo das reivindicações do presente pedido.

Claims (14)

1. MÉTODO PARA A DETERMINAÇÃO DO ESTADO DA BASE DE DADOS, caracterizado pelo fato de que o método compreende:
determinar uma operação de transição de estado executada em um objeto de operação de dados de uma base de dados de destino; e determinar, com base na operação de transição de estado e um valor de pré-estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, um valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada, em que o valor de estado é usado para representar um estado da base de dados de destino.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o objeto de operação de dados compreende:
uma instância cuja classe é carregada em uma memória do banco de dados de destino e possui variáveis de membro e funções de membro relacionadas.
3. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo fato de que a determinação do valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada compreende:
determinar, com base no objeto de operação de dados e no valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
4. MÉTODO, de acordo com a reivindicação 3, caracterizado pelo fato de que a base de dados de destino é uma base de dados de protocolo de confiança.
Petição 870190065828, de 12/07/2019, pág. 113/117
2/4
5. MÉTODO, de acordo com a reivindicação 4, caracterizado pelo fato de que a determinação do valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada compreende:
determinar um valor de hash do objeto de operação de dados; e determinar, com base no valor de hash do objeto de operação de dados e do valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
6. MÉTODO, de acordo com a reivindicação 5, caracterizado pelo fato de que a determinação de um valor de hash do objeto de operação de dados compreende:
serializar o objeto de operação de dados para obter dados serializados; e determinar um valor de hash dos dados serializados e usar o valor de hash dos dados serializados como o valor de hash do objeto de operação de dados.
7. MÉTODO, de acordo com a reivindicação 6, caracterizado pelo fato de que a serialização do objeto de operação de dados para obter os dados serializados compreende:
determinar se uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados é fixa; e se a sequência de execução da operação de transição de estado por todos os objetos de operação de dados for fixa (fixed), unir (splicing), com base na sequência de execução da operação de transição de estado, os dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos.
Petição 870190065828, de 12/07/2019, pág. 114/117
3/4
8. MÉTODO, de acordo com a reivindicação 6, caracterizado pelo fato de que a serialização do objeto de operação de dados para obter os dados serializados compreende:
determinar se uma sequência de execução da operação de transição de estado por todos os objetos de operação de dados é fixa; e se a sequência de execução da operação de transição de estado por todos os objetos de operação de dados não for fixa, unir, com base em uma primeira sequência pré-determinada, os dados serializados que correspondem a todos os objetos de operação de dados, para obter dados serializados unidos.
9. MÉTODO, de acordo com a reivindicação 7, caracterizado pelo fato de que obter os dados serializados unidos compreende:
colocar um separador pré-determinado entre pelo menos duas partes dos dados serializados e unir todas as partes dos dados serializados obtidos após o separador pré-determinado ser colocado, para obter os dados serializados unidos.
10. MÉTODO, de acordo com a reivindicação 5, caracterizado pelo fato de que a determinação do valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada compreende:
unir, com base em uma segunda sequência pré-determinada, o valor de hash do objeto de operação de dados e o valor de estado que é da base de dados de destino e que existe antes da operação de transição de estado ser executada, para obter dados unidos; e determinar um valor de hash dos dados unidos e usar o valor de hash dos dados unidos como o valor de estado que é da base de dados de destino e que existe após a operação de transição de estado ser executada.
Petição 870190065828, de 12/07/2019, pág. 115/117
4/4
11. MÉTODO, de acordo com qualquer uma das reivindicações
1 a 7, caracterizado pelo fato de que a base de dados de destino é uma base de dados que corresponde a qualquer nó em um protocolo de confiança.
12. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de estado é usado para representar exclusivamente uma característica de dados armazenados na base de dados de destino.
13. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda:
determinar se o valor de pré-estado da base de dados de destino a ser verificado é o mesmo que o valor de estado; e em resposta à determinação de que o valor de pré-estado é o mesmo que o valor de estado da base de dados de destino, determinar que o pré-estado e o estado da base de dados de destino são consistentes.
14. DISPOSITIVO PARA A DETERMINAÇÃO DO ESTADO DA BASE DE DADOS, caracterizado pelo fato de que o dispositivo compreende uma pluralidade de módulos, configurados para executar o método, conforme definido em qualquer uma das reivindicações 1 a 13.
BR112019014478-1A 2017-05-25 2018-05-23 Método para a determinação do estado da base de dados e dispositivo para a determinação do estado da base de dados BR112019014478A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710377721.8 2017-05-25
CN201710377721.8A CN107247749B (zh) 2017-05-25 2017-05-25 一种数据库状态确定方法、一致性验证方法及装置
PCT/CN2018/087966 WO2018214897A1 (zh) 2017-05-25 2018-05-23 一种数据库状态确定方法、一致性验证方法及装置

Publications (1)

Publication Number Publication Date
BR112019014478A2 true BR112019014478A2 (pt) 2020-05-26

Family

ID=60017352

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019014478-1A BR112019014478A2 (pt) 2017-05-25 2018-05-23 Método para a determinação do estado da base de dados e dispositivo para a determinação do estado da base de dados

Country Status (14)

Country Link
US (1) US10789243B2 (pt)
EP (1) EP3557452B1 (pt)
JP (1) JP6921206B2 (pt)
KR (1) KR102231058B1 (pt)
CN (1) CN107247749B (pt)
AU (1) AU2018274424B2 (pt)
BR (1) BR112019014478A2 (pt)
CA (1) CA3049831C (pt)
MX (1) MX2019008383A (pt)
PH (1) PH12019501637A1 (pt)
RU (1) RU2725760C1 (pt)
SG (1) SG11201906495TA (pt)
TW (1) TWI710916B (pt)
WO (1) WO2018214897A1 (pt)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247749B (zh) * 2017-05-25 2020-08-25 创新先进技术有限公司 一种数据库状态确定方法、一致性验证方法及装置
CN107807982B (zh) * 2017-10-27 2020-09-18 中国农业银行股份有限公司 一种异构数据库的一致性校验方法及装置
CN107729541A (zh) * 2017-10-31 2018-02-23 咪咕数字传媒有限公司 一种数据处理方法、装置及计算机可读存储介质
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11146407B2 (en) 2018-04-17 2021-10-12 Digicert, Inc. Digital certificate validation using untrusted data
CN108615156A (zh) * 2018-05-09 2018-10-02 上海魅联信息技术有限公司 一种基于区块链的数据结构
CN109345159A (zh) * 2018-08-21 2019-02-15 深圳市口袋网络科技有限公司 一种数据写入方法及装置、设备、存储介质
CN109446211B (zh) * 2018-10-08 2020-08-14 联动优势科技有限公司 一种一致性校验方法及装置
TWI710238B (zh) * 2018-12-17 2020-11-11 財團法人國家實驗研究院 分散式儲存系統之同步刪除方法
US11044096B2 (en) * 2019-02-04 2021-06-22 Accenture Global Solutions Limited Blockchain based digital identity generation and verification
US11122091B2 (en) * 2019-04-16 2021-09-14 FireMon, LLC Network security and management system
CN110175758A (zh) * 2019-05-08 2019-08-27 杭州宇链科技有限公司 一种基于区块链的链上多层自动分润方法
KR102620584B1 (ko) * 2019-05-17 2024-01-02 삼성에스디에스 주식회사 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법
CN111108478B (zh) 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
SG11202001975SA (en) * 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
SG11202001989WA (en) 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
CN112559484A (zh) * 2019-09-25 2021-03-26 伊姆西Ip控股有限责任公司 用于管理数据对象的方法、设备和计算机程序产品
CN111639952A (zh) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 基于区块链的退货核验方法、系统、服务器及终端
CN112463132B (zh) * 2020-11-13 2023-06-06 四川新网银行股份有限公司 一种数据库切换工具及切换方法
CN113420036A (zh) * 2021-06-22 2021-09-21 南方电网数字电网研究院有限公司 一种电网监控系统内存库关系库一致性校验方法
US20230185670A1 (en) * 2021-12-13 2023-06-15 Scality, S.A. Method and apparatus for monitoring storage system replication

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03152992A (ja) 1989-10-27 1991-06-28 W R Grace & Co 印刷回路板及びその製造方法
CN1054886A (zh) 1990-03-19 1991-10-02 湖南省森林植物园 一种固体碳酸饮料的生产工艺
US9824107B2 (en) * 2006-10-25 2017-11-21 Entit Software Llc Tracking changing state data to assist in computer network security
CN101957858A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 数据比对方法和装置
CN102354292A (zh) * 2011-09-21 2012-02-15 国家计算机网络与信息安全管理中心 主、备数据库记录一致性校验方法及系统
CN102662946B (zh) * 2012-02-20 2015-10-07 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
US9697238B2 (en) * 2012-03-01 2017-07-04 Microsoft Technology Licensing, Llc Drift detection and notification
US9032247B2 (en) * 2012-07-26 2015-05-12 Apple Inc. Intermediate database management layer
JP2014059757A (ja) * 2012-09-18 2014-04-03 International Business Maschines Corporation 木構造を有するデータを処理する装置、処理方法およびプログラム
CN103164523A (zh) * 2013-03-19 2013-06-19 华为技术有限公司 数据一致性检查方法、装置及系统
CN103345521B (zh) * 2013-07-17 2016-04-13 腾讯科技(深圳)有限公司 一种在哈希表数据库中处理键值的方法和装置
CN103678583B (zh) * 2013-12-11 2017-07-21 北京华胜天成科技股份有限公司 结构化数据比较的方法及系统
CN104731792B (zh) * 2013-12-19 2018-09-21 中国银联股份有限公司 数据库一致性校验方法及系统、定位数据库差异的方法及系统
CN105447046A (zh) * 2014-09-02 2016-03-30 阿里巴巴集团控股有限公司 一种分布式系统数据一致性处理方法、装置和系统
CN104346454B (zh) * 2014-10-30 2017-12-05 上海新炬网络技术有限公司 基于Oracle数据库的数据一致性校验方法
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
US11200564B2 (en) * 2015-03-31 2021-12-14 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CN106484690A (zh) * 2015-08-24 2017-03-08 阿里巴巴集团控股有限公司 一种数据迁移的验证方法及装置
US9390154B1 (en) * 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
JP6452156B2 (ja) * 2015-09-03 2019-01-16 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
CN105488675B (zh) * 2015-11-25 2019-12-24 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法
CN105976232B (zh) * 2016-06-24 2020-04-28 深圳前海微众银行股份有限公司 资产交易方法和装置
CN106230808A (zh) 2016-07-28 2016-12-14 杭州云象网络技术有限公司 一种基于区块链技术的个人征信系统建设方法
CN106250721A (zh) * 2016-07-28 2016-12-21 杭州云象网络技术有限公司 一种基于区块链的电子版权保护方法
CN106357405A (zh) * 2016-09-19 2017-01-25 弗洛格(武汉)信息科技有限公司 一种基于区块链技术一致性算法的数据管理方法及系统
CN107247749B (zh) 2017-05-25 2020-08-25 创新先进技术有限公司 一种数据库状态确定方法、一致性验证方法及装置

Also Published As

Publication number Publication date
KR20190096391A (ko) 2019-08-19
JP2020509451A (ja) 2020-03-26
AU2018274424A1 (en) 2019-08-01
AU2018274424B2 (en) 2020-07-02
EP3557452A1 (en) 2019-10-23
SG11201906495TA (en) 2019-08-27
JP6921206B2 (ja) 2021-08-18
CA3049831C (en) 2021-12-14
US10789243B2 (en) 2020-09-29
CN107247749A (zh) 2017-10-13
TWI710916B (zh) 2020-11-21
EP3557452B1 (en) 2021-09-15
RU2725760C1 (ru) 2020-07-06
KR102231058B1 (ko) 2021-03-25
PH12019501637A1 (en) 2020-03-16
MX2019008383A (es) 2019-09-11
WO2018214897A1 (zh) 2018-11-29
TW201901484A (zh) 2019-01-01
EP3557452A4 (en) 2020-01-22
CA3049831A1 (en) 2018-11-29
CN107247749B (zh) 2020-08-25
US20200057760A1 (en) 2020-02-20

Similar Documents

Publication Publication Date Title
BR112019014478A2 (pt) Método para a determinação do estado da base de dados e dispositivo para a determinação do estado da base de dados
JP6804668B2 (ja) ブロックデータ検証方法および装置
BR112019014589A2 (pt) Método de processamento de serviço e aparelho
BR112019010368B1 (pt) Método para processar uma solicitação de serviço e dispositivo para processar uma solicitação de serviço
BR112019013441A2 (pt) método para armazenamento de dados e dispositivo para armazenamento de dados
BR112019013204A2 (pt) método para processamento de serviços e dispositivo para processamento de serviços
BR112019013394A2 (pt) Método de processamento de dados e dispositivo para processamento de dados
BR112019013379A2 (pt) método para consenso com base em protocolo de confiança e dispositivo para consenso com base em protocolo de confiança
BR112019013412B1 (pt) Método para processamento de dados com base em um protocolo de confiança, meio legível por computador e sistema implementado por computador.
BR112019020374B1 (pt) Método, mídia de armazenamento legível por computador não transitória e sistema para consenso de blockchain
BR112019013367B1 (pt) Método para a verificação de consenso e dispositivo para a verificação de consenso
BR112019012905A2 (pt) método para o envio das informações de transação e dispositivo para o envio das informações de transação
BR112019019871A2 (pt) método e aparelho para verificação de consenso
BR112019009591A2 (pt) método de consenso de protocolo de confiança e dispositivo de consenso de protocolo de confiança
TWI731233B (zh) 用於校準元件的方法、電路與電腦可讀取媒體
BR112016025249B1 (pt) Método e dispositivo incorporado para carregar acionador
WO2020211493A1 (zh) 一种块链式账本中的数据验证方法、系统、装置及设备
TW201523447A (zh) 伺服器系統與韌體更新方法
TWI714017B (zh) 資料處理方法和裝置、伺服器

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY)

B25A Requested transfer of rights approved

Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY)

B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B11D Dismissal acc. art. 38, par 2 of ipl - failure to pay fee after grant in time