BRPI0922990B1 - Sistema e métodos de armazenamento, varredura e desduplicação de índices de objetos em sistema de replicação de dados distribuídos, dispositivo de pluralidade de dispositivos em sistema de replicação de dados distribuídos e memória legível em computador - Google Patents
Sistema e métodos de armazenamento, varredura e desduplicação de índices de objetos em sistema de replicação de dados distribuídos, dispositivo de pluralidade de dispositivos em sistema de replicação de dados distribuídos e memória legível em computador Download PDFInfo
- Publication number
- BRPI0922990B1 BRPI0922990B1 BRPI0922990-6A BRPI0922990A BRPI0922990B1 BR PI0922990 B1 BRPI0922990 B1 BR PI0922990B1 BR PI0922990 A BRPI0922990 A BR PI0922990A BR PI0922990 B1 BRPI0922990 B1 BR PI0922990B1
- Authority
- BR
- Brazil
- Prior art keywords
- index
- deduplication
- storage
- replica
- data replication
- Prior art date
Links
- 230000010076 replication Effects 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000015654 memory Effects 0.000 title claims description 31
- 238000012217 deletion Methods 0.000 claims description 32
- 230000037430 deletion Effects 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 7
- 230000003362 replicative effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
SISTEMAS E MÉTODOS DE ARMAZENAMENTO, VARREDURA E DESDUPLICAÇÃO DE ÍNDICE DE OBJETOS EM SISTEMA DE REPLICAÇÃO DE DADOS DISTRIBUÍDOS, DISPOSITIVO DE PLURALIDADE DE DISPOSITIVOS EM SISTEMA DE REPLICAÇÃO DE DADOS DISTRIBUÍDOS E MEMÓRIA LEGÍVEL EM COMPUTADOR Um método é realizado por um dispositivo de um grupo de dispositivos num sistema de replicação de dados distribuídos. O método inclui armazenar um índice de objetos no sistema de replicação de dados distribuídos, sendo o índice replicado ao mesmo tempo em que os objetos são armazenados localmente pela pluralidade de dispositivos no sistema de replicação de dados distribuídos. O método inclui também conduzir uma varredura de pelo menos uma parte do índice e identificar uma(s) réplica(s) redundante(s) de pelo menos um dos objetos com base na varredura do índice. O método inclui ainda desduplicar a(s) réplica(s) redundante(s), e atualizar o índice para refletir a condição da réplica redundante.
Description
A paisagem para computação empresarial tem passado por uma mudança fundamental nas arquiteturas de armazenamento pelo fato de que a arquitetura do serviço central tem produzido meios para os agrupamentos (clusters) de armazenamento distribuídos. Quando as empresas buscam formas de aumentar a eficiência de armazenamento, os agrupamentos de armazenamento construídos a partir da conveniência de computadores podem liberar alta performance, disponibilidade e escalabilidade para novas aplicações de dados intensivos em uma fração do custo comparada as organizações do disco monolítico. Para desbloquear o potencial total dos agrupamentos de armazenamento, os dados são replicados através dos diversos locais geográficos, desse modo aumentando a disponibilidade e reduzindo a distância da rede dos clientes.
A desduplicação dos dados pode identificar os objetos duplicados e reduzir o espaço de armazenamento necessário para a remoção dos duplicados. Como um resultado, a desduplicação dos dados está se tornando cada vez mais importante para uma indústria de armazenamento e está sendo acionada pelas necessidades dos sistemas em grande escala que podem conter muitos duplicados.
De acordo com uma implementação, um método pode ser realizado por meio de um dispositivo de um grupo de dispositivos em um sistema de replicação de dados distribuídos. O método pode incluir armazenar um índice de objetos no sistema de replicação de dados distribuídos, o índice sendo replicado ao mesmo tempo em que as réplicas de objetos são localmente armazenadas pela pluralidade de dispositivos no sistema de replicação de dados distribuídos. O método pode também incluir a condução de uma varredura de pelo menos uma parte do índice e identificar uma réplica redundante de pelo menos um dos objetos com base na varredura do índice. O método pode ainda incluir desduplicar a réplica redundante gravando um registro de desduplicação para uma parte do índice.
De acordo com outra implementação, um dispositivo, de um grupo de dispositivos em um sistema de replicação de dados distribuídos, pode incluir meios para armazenar um índice de objetos no sistema de replicação de dados distribuídos; meios para escrever as mudanças no índice para designar uma condição de uma réplica de um dos objetos; meios para replicar as mudanças no índice para a pluralidade de dispositivos no sistema de replicação de dados distribuídos; meios para conduzir uma varredura de pelo menos uma parte do índice; meios para identificar uma réplica redundante de um dos objetos com base na varredura do índice; e meios para desduplicar a réplica redundante.
De acordo com ainda outra implementação, um sistema pode incluir uma memória para armazenar as instruções, uma memória de dados de objetos e um índice dos objetos na memória de dados; e um processador. O processador pode executar as instruções na memória para identificar uma condição de um objeto na memória de dados, sendo a condição relativa a se o objeto tem uma réplica e se um pedido de deleção está associado com o objeto, gravar um registro de designação de desduplicação no índice com base na condição do objeto, replicar o índice com o registro de designação de desduplicação para um ou mais dispositivos, e receber, a partir de um do um ou mais dispositivos, outros registros de designação de desduplicação associados com o objeto, em que o registro de designação de desduplicação e os outros registros de designação de desduplicação fornecem uma base para a deleção de uma ou mais réplicas do objeto.
De acordo com ainda outra implementação, um método realizado por um ou mais dispositivos pode incluir armazenar um índice de objetos nos dispositivos múltiplos dentro de um sistema de replicação de dados distribuídos e replicar o índice ao longo do sistema de replicação de dados distribuídos ao mesmo tempo em que armazena os objetos localmente, em que cada dispositivo é responsável pela desduplicação dos objetos dentro de um subconjunto particular do índice; conduzir uma varredura de cada um dos subconjuntos do índice para identificar as réplicas redundantes com base na varredura; desduplicar o redundante; e copiar automaticamente um objeto a partir de um dispositivo com uma réplica tendo um pedido de deleção em andamento para um dispositivo com uma réplica tendo sido previamente desduplicada.
De acordo com uma outra implementação, uma memória legível em computador pode incluir as instruções executáveis em computador. A memória legível em computador pode incluir uma ou mais instruções para conduzir uma varredura de uma parte de um índice de objetos em um sistema de replicação de dados distribuídos; uma ou mais instruções para identificar uma réplica redundante de um dos objetos com base na varredura da parte do índice; uma ou mais instruções para desduplicar a réplica redundante.
Os desenhos que seguem, que são incorporados e constituem uma parte deste Relatório Descritivo, ilustram uma ou mais modalidades descritas aqui e, junto com a descrição, explicam estas modalidades. Nos desenhos:
A Figura 1 é um diagrama de uma rede exemplificativa em que os sistemas e os métodos descritos aqui podem ser implementados;
A Figura 2 é um diagrama de uma configuração exemplificativa do sistema de arquivo da Figura 1;
A Figura 3 é um diagrama de componentes exemplificativos de um agrupamento de armazenamento da Figura 1;
A Figura 4 é um diagrama em bloco funcional de um agrupamento de armazenamento exemplificativo da Figura 1;
A Figura 5 é um diagrama de uma estrutura de registro exemplificativa que pode ser empregada dentro de um índice de um sistema de replicação de dados de mestre múltiplo distribuído;
As Figuras 6A-6B são fluxogramas de processos exemplificativos para o gerenciamento do carregamento iniciado pelo cliente/ operações de deleção;
A Figura 7 é um fluxograma de processo exemplificativo para a execução da desduplicação em um sistema de replicação de dados de mestre múltiplo distribuído;
A Figura 8 é um fluxograma de processo exemplificativo para o gerenciamento um pedido de deleção;
A Figura 9 é um fluxograma de processo exemplificativo para a remoção das réplicas duplicadas;
A Figura 10 é um fluxograma de processo exemplificative para otimizar o consumo da largura da banda e reduzir a latência em um sistema de replicação de dados de mestre múltiplo distribuído; e
A Figura 11 é um diagrama que ilustra uma parte de um índice global exemplificative de acordo com uma implementação descrita aqui.
A descrição detalhada que segue se refere aos desenhos que seguem. Os mesmos números de referência em desenhos diferentes podem identificar os elementos iguais e semelhantes. Da mesma forma, a descrição detalhada que segue não limita a invenção.
Os sistemas e/ ou os métodos descritos aqui podem proporcionar um algoritmo de desduplicação distribuído assíncrono para os agrupamentos de armazenamento replicados que fornecem garantias de disponibilidade, de vivacidade e de consistência para objetos imutáveis. As implementações descritas aqui podem empregar a camada de replicação subjacente de um sistema de replicação de dados de mestre múltiplo distribuído para replicar um índice de conteúdo endereçável (também, referido como aqui como um “índice global”) entre diferentes agrupamentos de armazenamento. Cada objeto do índice global pode ter um único ponto de apoio de conteúdo (por exemplo, um valor hash ou assinatura digital). Nas implementações descritas aqui, o processo de remoção das réplicas redundantes pode manter pelo menos uma réplica viva.
A Figura 1 é um diagrama de um sistema exemplificativo 100 em que os sistemas e os métodos descritos aqui podem ser implementados. O sistema 100 pode incluir os clientes de 110-1 até 110-N (referido a coletivamente como clientes 110, e individualmente como cliente 110) e agrupamentos de armazenamento de 120-1 até 120-M (referido a coletivamente como agrupamentos de armazenamento 120, e individualmente como agrupamento de armazenamento 120) conectados através de uma rede 130. Os agrupamentos de armazenamento 120 podem formar um sistema de arquivo 140 (como mostrado pela linha pontilhada na Figura 1).
A rede 130 pode incluir uma ou mais redes, tal como, uma rede de área local (LAN), uma rede de área estendida (WAN), uma rede telefônica (por exemplo, a Rede Pública de Telefone Chaveada (PSTN)), uma intranet, a Internet, um rede semelhante ou diferente, ou uma combinação de redes. Os clientes 110 e os agrupamentos de armazenamento 120 podem se conectar a rede 130 através de conexões com fio e/ou sem fio.
Os clientes 110 podem incluir um ou mais tipos de dispositivos, tais como, um computador pessoal, um telefone sem fio, um assistente pessoal digital (PDA), um lap top, ou outro tipo de dispositivo de comunicação, e/ ou uma linha ou processo executando em um destes dispositivos. Em uma implementação, um cliente 110 inclui, ou está ligado a, uma aplicação em cujo nome do cliente 110 se comunica com o agrupamento de armazenamento 120 para ler ou modificar (por exemplo, escrever) os dados do arquivo.
O agrupamento de armazenamento 120 pode incluir um ou mais dispositivos do servidor, ou outros tipos de computação ou dispositivos de comunicação, que podem armazenar, processar, pesqui-sar, e/ou fornecem a informação de certo modo descrita aqui. Em uma implementação, o agrupamento de armazenamento 120 pode incluir um ou mais servidores (por exemplo, aplicações e/ou sistemas de computador) capazes de manter uma memória de dados de leitura aleatória/ acesso de escrita, em grande escala, para os arquivos. A memória de dados do agrupamento de armazenamento 120 pode permitir que um sistema de indexação rapidamente atualize as partes de um índice se ocorrer uma mudança. A memória de dados de agrupamento de armazenamento 120 pode incluir uma ou mais tabelas (por exemplo, uma tabela de documento que pode incluir uma série para o localizador uniformizado de recursos (URL), tabelas auxiliares com chave por meio de valores diferentes de URLs, etc.). Em um exemplo, o agrupamento de armazenamento 120 pode ser incluído em um sistema de armazenamento distribuído (por exemplo, um “Bigtable” como estabelecido em Chang e outros, “Bigtable: A Distributed Storage System for Structured Data,” Proc. da 7a OSDI, pp. 205-218 (Nov. 2006)) para o gerenciamento dos dados estruturados (por exemplo, a agrupamento de armazenamento de acesso aleatório dos documentos) que podem ser projetados para escala de um tamanho muito grande (por exemplo, petabytes dos dados através de milhares de servidores).
Se bem que não mostrado na Figura 1, o sistema 100 pode incluir uma variedade de outros componentes, tal como, um ou mais servidores para o usuário dedicado ou hubs. Um servidor para o usuário, por exemplo, pode armazenar uma cópia somente de leitura de uma memória de dados de um ou mais agrupamentos de armazenamento 120 para acessos pelos clientes 110. Um hub, por exemplo, pode armazenar uma cópia somente de leitura de uma memória de dados de um ou mais agrupamentos de armazenamento 120 para distribuição para um ou mais servidores para o usuário.
A Figura 2 é um diagrama de uma configuração exemplificativa do sistema de arquivo 140. Como mostrado na Figura 2, o sistema de arquivo 140 pode incluir os agrupamentos de armazenamento 120-1, 120-2, 120-3, e 120-4. Em uma implementação, o sistema de arquivo 140 pode ser um sistema de replicação de dados de mestre múltiplo distribuído, em que cada um dos agrupamentos de armazenamento 120-1, 120-2, 120-3, e 120-4 pode agir como um servidor mestre para os outros agrupamentos de armazenamento. No sistema de arquivo 140, os dados podem ser replicados através dos agrupamentos de armazenamento 120-1, 120-2, 120-3 e 120-4 (por exemplo, nos diversos locais geográficos) para aumentar a disponibilidade dos dados e reduzir a distância da rede dos clientes (por exemplo, clientes 110). De modo geral, as referências e os objetos distribuídos podem ser dinamicamente criados, mudados, clonados e deletados nos diferentes agrupamentos de armazenamento 120 e uma camada de replicação subjacente de dados (não mostrado) mantém a fidelidade ordem de gravação para assegurar que todos os agrupamentos de armazenamento 120 devem acabar com a mesma versão de dados. Deste modo, a camada de replicação de dados respeita a ordem de gravações para a mesma réplica de um único objeto.
Um índice global de todos os objetos no sistema de replicação de dados de mestre múltiplo distribuído pode ser associado com cada agrupamento de armazenamento 120. Cada objeto armazenado pode ser listado por um único ponto de apoio de conteúdo (tal como, um valor misturado, assinatura digital, etc.) no índice global. Os agrupamentos de armazenamento selecionados podem todos ser atribuídos ser responsável por uma faixa distinta dos pontos de apoio de conteúdo no índice global. Por exemplo, um único agrupamento de armazenamento 120 pode ser responsável pela desduplicação de objetos associada com os pontos de apoio de conteúdo particulares. As mudanças no índice global feitas por meio de um agrupamento de armazenamento podem ser replicadas para outros agrupamentos de armazenamento.
Se bem que a Figura 2 mostre os componentes funcionais e- xemplares do sistema de arquivo 140, em outras implementações, o sistema de arquivo 140 pode conter alguns, adicionais, diferentes ou componentes diferentemente dispostos do representado na Figura 2. Ainda em outras implementações, um ou mais componentes do sistema de arquivo 140 podem executar uma ou mais tarefas descritas como sendo realizadas por um ou mais outros componentes do sistema de arquivo 140.
A Figura 3 é um diagrama dos componentes exemplares do agrupamento de armazenamento 120. O agrupamento de armazenamento 120 pode incluir um barramento 310, um processador 320, uma memória principal 330, uma memória exclusiva de leitura (ROM) 340, um dispositivo de armazenamento 350, um dispositivo de entrada 360, um dispositivo de saída 370, e uma interface de comunicação 380. O barramento 310 pode incluir um ou mais condutores que permitem a comunicação entre os componentes do agrupamento de armazenamento 120. O processador 320 pode incluir qualquer tipo de processador ou microprocessador que pode interpretar e executar as instruções. A memória principal 330 pode incluir uma memória de acesso randômico (RAM) ou outro tipo de dispositivo de armazenamento dinâmico que pode armazenar informação e instruções para a execução por meio do processador 320. A ROM 340 pode incluir um dispositivo ROM ou outro tipo de dispositivo de armazenamento estático que pode armazenar informação estática e instruções para uso por meio do processador 320. O dispositivo de armazenamento 350 pode incluir um meio de gravação magnético e/ou óptico e sua unidade correspondente. Por exemplo, o dispositivo de armazenamento 350 pode incluir um ou mais discos locais 355 que fornecem o armazenamento persistente. Em uma implementação, o agrupamento de armazenamento 120 pode manter os metainformações, para os objetos armazenados no sistema de arquivo 140, dentro de um ou mais meios legíveis em computador, tal como, memória principal 330 e/ou dispositivo de armazenamento 350. Por exemplo, o agrupamento de armazenamento 120 pode armazenar um índice global dentro do dispositivo de armazenamento 350 para todos os objetos armazenados dentro de um sistema de replicação de dados de mestre múltiplo distribuído. O dispositivo de entrada 360 pode incluir um ou mais mecanismos que permitem um operador para fornecer a informação do agrupamento de armazenamento 120, tal como, um teclado, um miniteclado, um botão, um mouse, uma caneta etc. O dispositivo de saída 370 pode incluir um ou mais mecanismos que emite a informação para o operador, que inclui um display, um diodo emissor de luz (LED), etc. A interface de comunicação 380 pode incluir qualquer mecanismo tipo transceptor que permite o agrupamento de armazenamento 120 se comunicar com os outros dispositivos e/ou sistemas. Por exemplo, a interface de comunicação 380 pode incluir os mecanismos para se comunicar com os outros agrupamentos de armazenamento 120 e/ ou clientes 110.
A Figura 4 ilustra um diagrama em bloco funcional do agrupamento de armazenamento 120. Como mostrado na Figura 4, o agrupamento de armazenamento 120 pode incluir a memória de dados 410 e a lógica de desduplicação 420. Em uma implementação, como ilustrado na Figura 4, a memória de dados 410 pode ser fornecida dentro do agrupamento de armazenamento 120. Em outras implemen-tações, algumas ou toda a memória de dados 410 pode ser armazenada dentro de um ou mais outros dispositivos do sistema 100 em comunicação com o agrupamento de armazenamento 120, tais como, dispositivos de memória externa ou dispositivos associados com um sistema de indexação (não mostrado).
A memória de dados 410 pode incluir um armazenamento de índice replicado 412 e um armazenamento do objeto local 414. O armazenamento de índice replicado 412 pode ser incluído como parte da camada de replicação do sistema de replicação de dados de mestre múltiplo distribuído. O armazenamento de índice replicado 412 pode armazenar a informação associada com o índice global. Pelo menos uma parte do armazenamento de índice replicado 412 pode ser replicada nos diversos agrupamentos de armazenamento 120. O número de réplicas para cada armazenamento de índice replicado 412 pode ser configurável pelo usuário. O armazenamento do objeto local 414 pode armazenar os objetos localmente dentro do agrupamento de armazenamento 120. O armazenamento do objeto local 414 pode incluir os arquivos, tal como, imagens ou vídeos carregados pelos clientes (por exemplo, clientes 110).
A lógica de desduplicação 420 pode incluir a lógica para remover as réplicas redundantes dos agrupamentos de armazenamento dentro do sistema de replicação de dados de mestre múltiplo distribuído (por exemplo, agrupamentos de armazenamento 120-1, 120- 2, 120-3, e 120-4). A lógica de desduplicação 420 para cada grupo de armazenamento participante pode ser atribuída ser responsável por uma seção específica do índice global. Por exemplo, a lógica de desduplicação 420 pode ser atribuída a uma faixa particular dos pontos de apoio de conteúdo para o índice global. Deste modo, somente um agrupamento de armazenamento dentro do sistema de replicação de dados de mestre múltiplo distribuído pode ser capaz de executar operações destrutivas (por exemplo, a deleção das réplicas) em um objeto replicado dentro do sistema.
Para facilitar a desduplicação, os registros podem ser gerados por meio da lógica de desduplicação 420 e anexados a uma parte do índice global associado com um ponto de apoio de conteúdo específico. Os registros podem incluir, por exemplo, um designador de “Data” para iniciar uma réplica ao vivo, um designador de “DeleteRequest” para indicar um pedido de deleção em andamento para uma réplica, e um designador “Deduped” para indicar uma réplica que foi selecionada pela desduplicação. Os usos e os formatos do registro são descritos de forma mais detalhada abaixo.
Se bem que a Figura 4 mostra os componentes funcionais e- xemplares do agrupamento de armazenamento 120, em outras implementações, o agrupamento de armazenamento 120 pode conter alguns, adicionais, diferentes, ou componentes diferentemente dispostos funcionais do representado na Figura 4. Ainda em outras implementações, um ou mais componentes funcionais do agrupamento de armazenamento 120 podem executar uma ou mais outras tarefas descritas como sendo realizadas por um ou mais outros componentes funcionais.
A Figura 5 proporciona uma ilustração de uma estrutura de registro exemplificativa 500 para um registro de designação de desduplicação que pode ser escrito no índice global em uma implementação exemplar. O registro de designação de desduplicação pode estar associado no índice global com um ponto de apoio de conteúdo específico de uma réplica objeto. Como mostrado na Figura 5, à estrutura de registro 500 pode incluir a seção do identificador (“ID”) do agrupamento de armazenamento 510, uma seção do local de armazenamento 520, e seção de designação 530. A seção de identificação do agrupamento de armazenamento 510 pode incluir uma identificação única (por exemplo, “Cluster ID”) para o agrupamento de armazenamento 120 quer dizer armazenar a réplica objeto para a qual o registro está sendo escrito. A seção local 520 pode incluir um endereço para a localização da réplica dentro do agrupamento de armazenamento 120 que é identificada pela seção de identificação do agrupamento de armazenamento 510. A seção de designação 530 pode incluir, por exemplo, um designador de “Data”, um designador de “DeleteRequest”, ou um designador “Deduped”.
A estrutura de registro 500 pode ser listada na forma de “ClusterlD:Location:Designation.” Por exemplo, um registro para uma réplica pode ser adicionado no índice global por meio do agrupamento de armazenamento 120-1 com o registro “01 :234523/ 2000:DeleteRequest,” em que “01” é o agrupamento ID para o agrupamento de armazenamento 120-1, “234523/2000” é a localização, dentro do agrupamento de armazenamento 120-1 em que a réplica é armazenada, e “DeleteRequest” é o designador. Um registro para outra réplica do mesmo objeto no agrupamento de armazenamento 120-2 pode ser “02:234544/ 1000:Data,” em que “02” é o agrupamento ID para o agrupamento de armazenamento 120-2, “234544/1000” é a localização dentro do agrupamento de armazenamento 120-2, e “Data” é o designador.
As Figuras 6A e 6B são fluxogramas dos processos exemplares para o gerenciamento do carregamento iniciado pelo cliente/operações de deleção. A Figura 6A representa um fluxograma durante um processo exemplificativo 600 do carregamento um objeto de um cliente. A Figura 6B representa um fluxograma durante um processo exemplificativo 650 da remoção de um objeto deletado por um cliente. Em uma implementação, os processos 600 e 650 podem ser realizados por um dos agrupamentos de armazenamento 120. Os processos 600 e 650 podem ser implementados em resposta as atividades do cliente (por exemplo, cliente 110). Para os exemplos específicos dos processos 600 e 650 descritos abaixo, a referência pode ser feita para o agrupamento de armazenamento 120-1 do sistema de arquivo 140, em que o agrupamento de armazenamento 120-1 inclui um agrupamento ID de “01.”
Referindo-se à Figura 6A, o processo 600 pode começar quando um arquivo carregado é recebido de um cliente (bloco 610). Por exemplo, o agrupamento de armazenamento 120-1 pode receber um novo arquivo de um dos clientes 110. O arquivo carregado pode ser armazenado (bloco 620) e um designador de “Data” para o arquivo carregado pode ser escrito no índice global (bloco 630). Por exemplo, o agrupamento de armazenamento 120-1 pode armazenar o arquivo carregado em uma memória (por exemplo, dispositivo de armazenamento 350) e adicionar um ponto de apoio de conteúdo para o objeto no índice global. O agrupamento de armazenamento 120-1 pode, da mesma forma, escrever um registro de dados (por exemplo, “01 :Location:Data”) no índice global replicado endereçado pelo ponto de apoio de conteúdo do objeto.
Referindo-se a Figura 6B, o processo 650 pode começar quando um aviso de um arquivo deletado é recebido (bloco 660). Por exemplo, o agrupamento de armazenamento 120-1 pode receber uma indicação a fim de que um dos clientes 110 tenha deletado um arquivo. Um pedido de deleção pode ser iniciado (bloco 670) e um designador de “DeleteRequest” para o arquivo deletado pode ser escrito no índice global (bloco 680). Por exemplo, o agrupamento de armazenamento 120- 1 pode iniciar um pedido de deleção para assincronamente remover o arquivo de deleção do sistema de arquivo 140. O dispositivo de armazenamento 120-1 pode, da mesma forma, escrever um registro “DeleteRequest” (por exemplo, “01:Location:DeleteReqeust”) no índice global replicado endereçado pelo ponto de apoio de conteúdo do objeto.
A Figura 7 é um fluxograma de um processo exemplificative 700 para a execução da desduplicação em um sistema de replicação de dados de mestre múltiplo distribuído (por exemplo, sistema de arquivo 140). Em uma implementação, o processo 700 pode ser realizado por meio de um dos agrupamentos de armazenamento 120. Em outra implementação, alguns ou todo o processo 700 pode ser realizado por meio de outro dispositivo ou um grupo dos dispositivos, que incluem ou excluem o agrupamento de armazenamento 120. O processo 700 pode ser implementado periodicamente em cada agrupamento de armazenamento 120 e pode incluir uma varredura de todos ou de uma parte dos objetos no agrupamento de armazenamento 120. Para os exemplos específicos do processo 700 descrito abaixo, a referência pode ser feita para os agrupamentos de armazenamento 120-1 e 120-2 do sistema de arquivo 140, em que o agrupamento de armazenamento 120-1 inclui um agrupamento ID de “01” e o agrupamento de armazenamento 120-2 inclui um agrupamento ID de “02.”
Como ilustrado na Figura 7, o processo 700 pode começar com a condução de uma varredura do índice global (bloco 710). Por exemplo, o agrupamento de armazenamento 120-1 (empregando, por exemplo, lógica de desduplicação 420) pode conduzir uma varredura de todos ou uma parte dos objetos listados no índice global. A varredura pode identificar, por exemplo, diversas réplicas e/ou objetos marcados para a deleção.
Pode ser determinado se um pedido de deleção é encontrado (bloco 720). Por exemplo, o agrupamento de armazenamento 120-1 pode encontrar um objeto no índice global que inclui um pedido de designador de deleção (por exemplo, “02:Location:DeleteReqeust”) a partir de outro agrupamento de armazenamento (por exemplo, do agrupamento de armazenamento 120-2). Se for determinado que um pedido de deleção é encontrado (bloco 720 - SIM), em seguida o pedido de deleção pode ser processado (bloco 730). Por exemplo, o agrupamento de armazenamento 120-1 pode processar o pedido de deleção como descrito de forma mais detalhada no que diz respeito à Figura 8.
Se for determinado que um pedido de deleção não é encontrado (bloco 720 - NÃO), em seguida pode ser determinado se as réplicas redundantes existem (bloco 740). As réplicas redundantes podem ser os objetos replicados nos diferentes locais que não têm os pedidos de deleção indisponíveis para o objeto. Por exemplo, o agrupamento de armazenamento 120-1 pode identificar diversas réplicas para o mesmo objeto que corresponde a um ponto de apoio de conteúdo para o qual agrupamento de armazenamento 120-1 é responsável. As diversas réplicas podem ser armazenadas, por exemplo, nas diferentes agrupamentos de armazenamento (por exemplo, agrupamento de armazenamento 120-1 e agrupamento de armazenamento 120-2) ou nos diferentes locais dentro do mesmo agrupamento de armazenamento.
Se for determinado que as réplicas redundantes existem (bloco 740 - SIM), em seguida a réplica redundante (s) pode ser removida (bloco 750). Por exemplo, o agrupamento de armazenamento 120-1 pode remover a réplica redundante (s) como descrito de forma mais detalhada no que diz respeito à Figura 9. Se for determinado que as réplicas redundantes não existem (bloco 740 - NÃO), em seguida o processo pode retornar para o bloco 710, em que outra varredura do índice global pode ser conduzida (bloco 710).
A Figura 8 ilustra as operações exemplares associadas com o processamento de um pedido de deleção do bloco 660 da Figura 6. Um pedido de deleção pode ser encontrado para um objeto (bloco 810). Por exemplo, uma varredura sendo conduzida por meio do agrupamento de armazenamento 120-1 pode identificar um ponto de apoio de conteúdo no índice global com um pedido de designador de deleção previamente escrito por meio do agrupamento de armazenamento 120-1 para a deleção de uma réplica em um certo agrupamento de armazenamento (por exemplo, “02:Location:DeleteRequest”). Assumindo que o agrupamento de armazenamento 120-1 é responsável pelo ponto de apoio de conteúdo, o agrupamento de armazenamento 120-1 pode aplicar as operações para determinar se a réplica pode agora ser desduplicada.
Pode ser determinado se um designador de desduplicação e- xiste (bloco 820). Por exemplo, o agrupamento de armazenamento 120-1 pode rever outros registros no índice global associados com o ponto de apoio de conteúdo para determinar se um designador de desduplicação existe (por exemplo, 02:Location:Deduped”). Se for determinado que um designador de desduplicação existe (bloco 820 - SIM), em seguida a réplica e os registros relacionados no índice global podem ser desdupli- cados (bloco 830). Por exemplo, o agrupamento de armazenamento 120- 1 pode iniciar um pedido de deleção para a deleção da réplica no agrupamento de armazenamento 120-2 (se houver) e a deleção de todos os registros (por exemplo, “02:Location:*”, em que pode ser qualquer designador) do índice global que se referem ao ponto de apoio de conteúdo para a réplica deletada.
Se for determinado que um designador de desduplicação não existe (bloco 820 - NÃO), em seguida pode ser determinado se outra réplica ao vivo existe (bloco 840). Por exemplo, o agrupamento de armazenamento 120-1 pode rever o ponto de apoio de conteúdo para o índice global para determinar se outra réplica ao vivo existe para o objeto. O índice global pode incluir, por exemplo, um registro de dados quanto ao ponto de apoio de conteúdo do outro agrupamento de armazenamento (por exemplo, “03:Location:Data”).
Se outra réplica ao vivo existir (bloco 840 - SIM), em seguida a réplica pode ser desduplicada como descrito acima no que diz respeito a bloco 830. Se outra réplica ao vivo não existe (bloco 840 - NÃO), em seguida pode ser determinado se todas as réplicas têm os pedidos de deleção (bloco 850). Por exemplo, o agrupamento de armazenamento 120-1 pode rever o ponto de apoio de conteúdo para o índice global para determinar se todas as réplicas associadas com o ponto de apoio de conteúdo têm um pedido de deleção indisponível (por exemplo, “*:*:DeleteRequest”, em que “*” pode ser qualquer ClusterID e qualquer localização, respectivamente).
Se for determinado que todas as réplicas têm os pedidos de deleção (bloco 850 - SIM), em seguida a réplica pode ser desduplicada como descrito acima no que diz respeito ao bloco 830. Se for determinado que nenhumas réplicas têm os pedidos de deleção (bloco 850 - NÃO), em seguida o objeto pode ser copiado de um agrupamento de armazenamento que iniciou um pedido de deleção para um diferente agrupamento de armazenamento e o índice global pode ser atualizado (bloco 860). Por exemplo, em resposta ao registro “02:Location:DeleteRequest,” o agrupamento de armazenamento 120-1 pode copiar o objeto a partir do agrupamento de armazenamento 120-2 para outro agrupamento de armazenamento 120-3 para o qual existe um registro de desduplicação (por exemplo, “03:Location:Deduped”) e nenhum pedido de deleção indisponível. A agrupamento de armazenamento 120-1 pode deletar o registro de desduplicação prévio (por exemplo, “03:Location:Deduped”) associado com a réplica e grava um designador de dados (por exemplo, “03:Location:Data”) para o ponto de apoio de conteúdo correspondente do objeto no índice global.
A Figura 9 ilustra as operações exemplares associadas com a remoção das referências duplicadas do bloco 750 da Figura 7. As diversas réplicas sem pedidos de deleção podem ser identificadas (bloco 910). Por exemplo, o agrupamento de armazenamento 120-1 pode rever o índice global e identificar duas ou mais réplicas que não têm os pedidos de deleção indisponíveis correspondentes a um ponto de apoio de conteúdo para o qual agrupamento de armazenamento 120-01 é responsável.
Os critérios para determinar a réplica (s) ser desduplicada podem ser aplicados (bloco 920). Por exemplo, o agrupamento de armazenamento 120-1 pode aplicar os critérios para desduplicar a réplica redundante que pode ser armazenada dentro do agrupamento de armazenamento 120-1. Os critérios para desduplicar as réplicas redundantes pode ser com base em uma variedade de fatores, tal como, a proximidade geográfica das réplicas, a capacidade de armazenamento disponível em um agrupamento de armazenamento, ou outros fatores. O agrupamento de armazenamento 120-1 (por exemplo, empregando a lógica de desduplicação 420) pode aplicar os critérios para as duas ou mais réplicas que não têm os pedidos de deleção indisponíveis identificados acima. Em algumas implementações, as diversas réplicas podem ser identificadas serem desduplicadas. Em outras implementações, o agrupamento de armazenamento 120-1 pode deixar mais do que uma réplica ao vivo (por exemplo, uma réplica não marcada para a desduplicação).
O índice global pode ser atualizado para designar a réplica desduplicada (s) como “Deduped” (bloco 930). Por exemplo, para cada réplica desduplicada, o agrupamento de armazenamento 120-1 pode deletar o prévio registro de dados (por exemplo, “02:Location:Data”) associado com a réplica e gravar um designador de desduplicação (por exemplo, “02:Location:Deduped”) para o ponto de apoio de conteúdo correspondente no índice global.
A desduplicação das réplicas redundantes pode ser realizada empregando as mensagens de desduplicação que são replicadas como uma parte do índice global. As réplicas marcadas pela desduplicação podem ser armazenadas dentro do agrupamento de armazenamento 120-1 ou dentro de outro agrupamento de armazenamento (por exemplo, agrupamento de armazenamento 120- 2, 120-3, 120-4, etc.). Em uma implementação, o agrupamento de armazenamento 120-1 pode deletar as réplicas localmente armazenadas e o registro “01: Location :Data” correspondente a partir do índice global e adicionar “01 :Location:Deduped” no índice global. O agrupamento de armazenamento 120-1 pode, da mesma forma, iniciar as mensagens de deleção, empregando o índice global replicado, para a deleção das réplicas armazenadas em outros agrupamentos.
A Figura 10 proporciona um fluxograma de um processo exemplificative) 1000 para otimizar o consumo da largura da banda e reduzir a latência em um sistema de replicação de dados de mestre múltiplo distribuído (por exemplo, sistema de arquivo 140). Em uma implementação, o processo 1000 pode ser realizado por meio dos agrupamentos de armazenamento 120. Em outra implementação, algum ou todo o processo 1000 pode ser realizado por outro dispositivo ou grupo de dispositivos, que inclui ou exclui o agrupamento de armazenamento 120. Para os exemplos específicos do processo 1000 descrito abaixo, a referência pode ser feita para o agrupamento de armazenamento 120-1 do sistema de arquivo 140, em que o agrupamento de armazenamento 120-1 inclui um agrupamento ID de “01.”
Como ilustrado na Figura 1000, o processo 1000 pode começar com o recebimento de um pedido para um objeto (bloco 1010). Por exemplo, o agrupamento de armazenamento 120-1 pode receber um pedido de um cliente (por exemplo, cliente 110-1) para se obter um objeto.
As localizações do objeto podem ser vistas no índice global (bloco 1020). Por exemplo, o agrupamento de armazenamento 120-1 pode ver a localização (s) da réplica para o objeto no índice global replicado empregando o ponto de apoio de conteúdo do objeto.
A “melhor” localização da réplica pode ser identificada (bloco 1030). Por exemplo, assumindo que mais do que uma réplica está disponível, o agrupamento de armazenamento 120-1 pode determinar a “melhor” réplica para recuperar minimizar os recursos de rede. Por exemplo, a “melhor” réplica pode ser a réplica que tem a localização geográfica mais próxima ao agrupamento de armazenamento 120-1. Em outras implementações, a “melhor” réplica pode ser com base em uma combinação de conectividade de rede disponível, localização geográfica, e/ ou outros critérios. Deste modo, em algumas implementações, a “melhor” réplica para o objeto pode estar localmente armazenada dentro
do agrupamento de armazenamento 120-1.
O objeto pode ser recuperado a partir do local identificado (bloco 1040). Por exemplo, o agrupamento de armazenamento 120-1 pode pedir a “melhor” réplica do agrupamento de armazenamento mais próximo disponível e receber a réplica para satisfazer o pedido do cliente. O agrupamento de armazenamento 120-1 pode em seguida enviar a réplica para o cliente.
A Figura 11 proporciona uma parte 1100 de um índice global exemplificativo de acordo com uma implementação descrita aqui. O índice pode incluir, no meio de outra informação, uma coluna do ponto de apoio de conteúdo 1110 e uma coluna do registro de designação de Desduplicação 1120. Suponha-se, na parte do índice exemplificativo 1100, um sistema de replicação de dados de mestre múltiplo distribuído inclui três agrupamentos de armazenamento, XX, YY, e ZZ. Um algoritmo de desduplicação pode se executar periodicamente em cada em dos agrupamentos de armazenamento XX, YY, e ZZ e pode verificar todo ou uma parte do índice global. Da mesma forma, os registros (por exemplo, Data, DeleteRequest e Deduped) podem ser gravados por meio de um dos agrupamentos de armazenamento XX, YY, ou ZZ no índice global associado com um objeto específico do ponto de apoio de conteúdo. As modificações no índice global podem ser replicadas para todos os outros agrupamentos participantes (por exemplo, o restante dos agrupamentos de armazenamento XX, YY, e ZZ).
Como mostrado na Figura 11, à parte do índice 1100 inclui os pontos de apoio de conteúdo e registros de designação de deleção associados para quatro objetos. “Handle 11” tem os registros que indicam, as réplicas são armazenadas no agrupamento de armazenamento XX (“XX: Location© 1: Data”) e agrupamento de armazenamento YY (“YY:Location01:Data”), respectivamente. “Handle21” tem um registro que indica, uma réplica está armazenada no agrupamento de armazenamento XX (“XX:Location02:Data”) e outra réplica no agrupamento de armazenamento YY tem um pedido de deleção em andamento (“YY:Location:02:DeleteRequest”). “Handle31” tem os registros que indicam, as réplicas são armazenadas no agrupamento de armazenamento YY (“XX:Location03:Data”) e agrupamento de armazenamento ZZ (“ZZ:Location01:Data”), respectivamente. “Handle31”, da mesma forma, tem dois registros que indicam, as réplicas têm pedidos de deleção em andamento no agrupamento de armazenamento YY (“YY:Location03: DeleteRequest”) e agrupamento de armazenamento ZZ (“ZZ:Location01: DeleteRequest”). “Handle41” tem os registros que indicam, uma réplica está armazenada no agrupamento de armazenamento YY (“XX: Locati- on04:Data”) e um registro que indica, a réplica com um pedido de deleção em andamento no agrupamento de armazenamento YY (“YY:Location04: Delete Request”). Handle41, da mesma forma, tem um registro que indica, a desduplicação de uma réplica ter ocorrido (“ZZ:Location02: Deduped”). O algoritmo de desduplicação empregado pelos agrupamentos de armazenamento pode operar empregando diretrizes consistentes com os princípios descritos aqui. Suponha-se que o agrupamento de armazenamento XX é atribuída responsabilidade para a parte do índice global que inclui “Handle 11,” Handle21,” “Handles 1,” e “Handle41.”
Quando um objeto é completamente carregado em um agrupamento de armazenamento, o agrupamento de armazenamento pode gravar um registro de dados (por exemplo, “ClusterID:Location:Data”) no índice global replicado endereçado pelo ponto de apoio de conteúdo do objeto. Por exemplo, “XX:Location01:Data” e “YY:Location01:Data” ilustram os registros de dados para as réplicas de “Handle 11.” Da mesma forma, “XX:Location02:Data” ilustra um registro de dados para uma réplica de “Handle21.” Os registros de dados similares podem servistos para “Handle31” e “Handle 41.”
Quando um objeto é solicitado em um agrupamento de armazenamento, o agrupamento de armazenamento pode ver as localizações da réplica no índice global replicado empregando o ponto de apoio de conteúdo do objeto e buscam a réplica do “melhor” (por exemplo, mais próximo) agrupamento. Por exemplo, assumindo um objeto correspondente a “Handle 11” é solicitado no agrupamento de armazenamento ZZ e pelo fato de que o agrupamento de armazenamento YY está mais perto do agrupamento de armazenamento ZZ do que está o agrupamento de armazenamento XX, o agrupamento de armazenamento ZZ pode pedir a réplica objeto correspondente ao “Handlell” do agrupamento de armazenamento YY.
Quando um objeto é deletado em um agrupamento de armazenamento, o agrupamento de armazenamento pode escrever “Cluste- rID:Location:DeleteRequest” no índice global replicado endereçado pelo ponto de apoio de conteúdo do objeto. Por exemplo, “YY:Location02: DeleteRequest” ilustra um registro para uma réplica deletada de “Handle21” no agrupamento de armazenamento YY. De modo semelhante, “YY:Location03: DeleteRequest” e “ZZ: Location: 01 :DeleteRequest” ilustram os registros para as réplicas deletadas de “Handle31” para os agrupamentos de armazenamento YY e ZZ, respectivamente.
Se a varredura em um agrupamento de armazenamento encontra diversas réplicas que não têm os pedidos de deleção indisponíveis correspondentes a um ponto de apoio de conteúdo, o agrupamento de armazenamento é responsável por, o agrupamento de armazenamento pode deletar as réplicas redundantes do objeto (possivelmente deixando mais do que uma réplica ao vivo). Para cada réplica deletada em outro agrupamento de armazenamento, o agrupamento de armazenamento pode deletar o registro de dados e gravar um registro deifdesduplicação. Por exemplo, a varredura no agrupamento de armazenamento XX pode identificar que o “Handle 11” tem os registros que indicam, as réplicas estão armazenadas no agrupamento de armazena-mento XX (“XX:Location01:Data”) e no agrupamento de armazenamento YY (“YY:Location01:Data”), respectivamente. Com base nos critérios fornecidos para a remoção das referências redundantes, o agrupamento de armazenamento XX pode iniciar a deleção da réplica no agrupamento de armazenamento YY. O agrupamento de armazenamento XX podedeletar o registro “YY:Location01:Data” mostrado na Figura lie gravar no lugar “YY:Location01:Deduped”.
Se a varredura no agrupamento de armazenamento XX encontra um pedido de deleção (por exemplo, “ClusterID: Location: DeleteRe- quest”) para uma réplica em outro agrupamento de armazenamento (por exemplo, agrupamento de armazenamento YY ou ZZ) correspondente para um ponto de apoio de conteúdo em que o agrupamento de armazenamento XX é responsável por, o agrupamento de armazenamento XX pode aplicar a análise que segue. Se existe um registro “Deduped” para o mesmo agrupamento de armazenamento e localização como o pedido de deleção, se nesse ponto existe outra réplica ao vivo do objeto, ou se todas as réplicas têm os pedidos de deleção indisponíveis, o agrupamento de armazenamento XX pode deletar a réplica do objeto no agrupamento de armazenamento YY ou ZZ (se houver) e deletar os registros “YY:Location:*” ou “ZZrLocation:*.” Por exemplo, a réplica para “Handle21” no agrupamento de armazenamento YY e no registro “YY:Location02:DeleteRequest” pode de deletada por meio do agrupamento de armazenamento XX uma vez que outro objeto ao vivo (indicado pelo registro “XX:Location02:Data”) existe. De modo semelhante, a réplica para “Handle31” no agrupamento de armazenamento YY e o registro “YY:Location:03:DeleteRequest” pode ser deleta por meio do agrupamento de armazenamento XX uma vez que ambas as réplicas no agrupamento de armazenamento YY e no agrupamento de armazenamento ZZ têm os pedidos de deleção indisponíveis.
Se o agrupamento de armazenamento XX não pode deletar a réplica do objeto no agrupamento de armazenamento YY ou ZZ (por exemplo, não existe um registro “Deduped” ou outra réplica ao vivo do objeto, e todas as réplicas não têm os pedidos de deleção indisponíveis), o agrupamento de armazenamento XX pode copiar o objeto a partir de YY ou ZZ para outro agrupamento de armazenamento para o qual existe um registro de desduplicação e nenhum pedido de deleção indisponível, deletando o registro de desduplicação e gravar um registro de dados. Por exemplo, a réplica para “Handle41” no agrupamento de armazenamento YY (“YY:Location04: DeleteRequest”) pode causar o agrupamento de armazenamento XX para copiar o objeto associado com “Handle41” para o agrupamento de armazenamento ZZ. O agrupamento de armazenamento XX pode atualizar o índice global para mudar “ZZ:Location02: Deduped” para “ZZ:Location02:Data.”
A correção do algoritmo é direta como todas as operações de deleção no objeto são realizadas somente pelo processo de varredura no agrupamento de armazenamento responsável por seu ponto de apoio de conteúdo. O algoritmo, da mesma forma, transparentemente lida com as diversas réplicas objetos no mesmo agrupamento pelo fato de que o tem diferentes locais (por exemplo, XX:Locationl e XX:Location2).
Os sistemas e/ ou os métodos descritos aqui podem armazenar um índice global de objetos em um sistema de replicação de dados distribuídos e replicar o índice global e alguns dos objetos ao longo do sistema de replicação de dados distribuídos. Um agrupamento de armazenamento pode ser atribuído como a entidade responsável pela desduplicação dentro de um subconjunto particular do índice global. O agrupamento de armazenamento pode conduzir uma varredura do subconjunto do índice global e identificar as réplicas redundantes com base na varredura. O agrupamento de armazenamento pode desdupli- car as réplicas redundantes localmente armazenadas ou em um agrupamento de armazenamento remoto.
A descrição anterior das implementações fornece a ilustração e a descrição, mas não é entendida ser exaustiva ou limitar a invenção para a forma precisa divulgada. As modificações e as variações são possíveis à luz das técnicas acima ou podem ser adquiridas a partir da prática da invenção.
Por exemplo, em outra implementação, uma versão síncrona do algoritmo de desduplicação pode ser empregada em que diferentes agrupamentos de armazenamento se comunicam diretamente em vez de empregar a camada de replicação dentro de um sistema de replicação de dados distribuídos.
Da mesma forma, ao mesmo tempo em que a série de blocos têm sido descrita com relação às Figuras 6A- 10, a ordem dos blocos pode ser modificada em outras implementações. Além disso, os blocos não dependentes podem ser realizados em paralelo.
Deve ser evidente pelo fato de que as modalidades, como descrito aqui, podem ser implementados em muitas formas diferentes de software, firmware, e hardware nas implementações ilustradas nas figuras. O código de software atual ou hardware de controle especializado empregado para implementar as modalidades descritas aqui não é limitação da invenção. Deste modo, a operação e o procedimento das modalidades foram descritos sem a referência para o código de software específico - sendo compreendido que o software e o hardware de controle podem ser projetados para implementar as modalidades com base na descrição aqui.
Além disso, certas implementações descritas aqui podem ser implementados como “lógico” ou um “componente” que executa uma ou mais funções. Este lógico ou componente pode incluir hardware, tal como, um processador, microprocessador, uma aplicação do circuito integrado específico ou um arranjo de portas programáveis em campo, ou uma combinação de hardware e software (por exemplo, software executador por meio de um processador).
Deve ser enfatizado que o termo “compreende” e/ ou “que compreende”, quando empregado neste Relatório Descritivo, é considerado para especificar a presença das características indicadas, inteiros, etapas, ou componentes, mas não excluem a presença ou a adição de uma ou mais características, inteiros, etapas, componentes, ou grupos destes.
Embora as combinações específicas das características são recitadas nas reivindicações e/ ou divulgadas no Relatório Descritivo, essas combinações não são entendidas limitar a divulgação da invenção. Na verdade, muitas destas características podem ser combinadas de formas não especificamente recitadas nas reivindicações e/ ou divulgadas no Relatório Descritivo.
Nenhuma instrução, elemento ou ato empregado na descrição da presente aplicação deve ser construído como crítico ou essencial para a invenção a não ser que explicitamente descrito como tal. Da mesma forma, como empregado aqui, o artigo “um” é entendido incluir um ou mais itens. Onde apenas um item é entendido, o termo “um” ou linguagem similar é empregada. Além disso, a frase “com base em,” como empregada aqui é entendida significar “com base, pelo menos em parte, em” a não ser que explicitamente indicado em contrário.
Claims (23)
1 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, realizado por um dispositivo de uma pluralidade de dispositivos num sistema de replicação de dados distribuídos, caracterizado pelo fato de que o método compreende: armazenar (620) um índice de objetos no sistema de replicação de dados distribuídos, sendo o índice replicado ao mesmo tempo em que as réplicas de objetos são localmente armazenadas pela pluralidade de dispositivos no sistema de replicação de dados distribuídos;conduzir uma varredura (700) de pelo menos uma parte do índice;identificar (740) uma réplica redundante de pelo menos um dos objetos baseados na varredura do índice; e desduplicar (750) a réplica redundante escrevendo um registro de desduplicação numa parte do índice.
2 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que mudanças no índice são replicadas usando uma camada de replicação subjacente do sistema de replicação de dados distribuídos,
3 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que o dispositivo é o único dispositivo responsável por reduzir réplicas redundantes para objetos dentro de um subconjunto particular do índice.
4 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que o índice é um índice de conteúdo endereçável incluindo um ponto de apoio de conteúdo para cada Objeto dentro do índice.
5 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 4, caracterizado pelo fato de que compreende ainda: escrever (680) um registro de dados ou um registro de pedido de deleção numa parte do índice associado com a ponto de apoio do conteúdo do objeto; e replicar uma parte do índice associada ao ponto de apoio do conteúdo do objeto para um ou mais outros dispositivos da pluralidade de dispositivos.
6 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que compreende ainda: receber (1010) um pedido para outro objeto incluído no índice; determinar (1020), baseado no índice, um dispositivo selecionado fora da pluralidade de dispositivos a partir dos quais recuperar uma réplica do outro objeto; e recuperar (1040) a réplica do outro objeto do dispositivo selecionado.
7 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que a identificação da réplica redundante é ainda baseada em critérios para distinguir uma preferência entre duas ou mais réplicas.
8 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 1, caracterizado pelo fato de que o índice é armazenado separadamente da réplica dentro do dispositivo.
9 - Dispositivo (120) de uma Pluralidade de Dispositivos em Sistema de Replicação de Dados Distribuídos (140), caracterizado pelo fato de que o dispositivo compreende: meios (350) para armazenar um índice de objetos no sistema de replicação de dados distribuídos; meios para escrever mudanças no índice para designar uma condição de uma réplica de um dos objetos; meios para replicar as mudanças no índice para a pluralidade de dispositivos no sistema de replicação de dados distribuídos; meios (420) para conduzir uma varredura de pelo menos uma parte do índice; meios (420) para identificar uma réplica redundante de um dos objetos baseados na varredura do índice; e meios (420) para desduplicar a réplica redundante.
10 - Dispositivo (120) de Pluralidade de Dispositivos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 9, caracterizado pelo fato de que compreende ainda: meios para atualizar o índice para refletir a condição de uma réplica desduplicada.
11 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, caracterizado pelo fato de que compreende: uma memória (330) para armazenar instruções, uma memória de dados (410) de objeto, e um índice (412) dos objetos na memória de dados; e um processador (320) para executar as instruções na memória para: identificar (660) uma condição de um objeto na memória de dados, sendo a condição relativa a se o objeto tem uma réplica e se um pedido de deleção está associado ao objeto, escrever (680) um registro de designação de desduplicação no índice baseado na condição do objeto, replicar (930) o índice com o registro de designação de desduplicação para um ou mais dispositivos, e receber, a partir de um ou mais dispositivos, outros registros de designação de desduplicação associados ao objeto, onde o registro de designação de desduplicação e os outros registros de designação de desduplicação proporcionam uma base para a deleção de uma ou mais réplicas do objeto.
12 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 11, caracterizado pelo fato de que o registro de designação de desduplicação e os outros registros de designação de desduplicação são permutados usando uma camada de replicação em um ambiente de replicação de dados de mestre múltiplo distribuído.
13 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 11, caracterizado pelo fato de que o processador é ainda configurado para: conduzir uma varredura (710) de uma parte do índice para identificar réplicas redundantes do objeto.
14 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 11, caracterizado pelo fato de que o dispositivo é somente responsável pela desduplicação de um subconjunto de objetos dentro do índice.
15 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 11, caracterizado pelo fato de que o registro de designação de desduplicação compreende: uma identificação de agrupamento (510) para o dispositivo que armazena o objeto; uma identificação de local (520) para o local de armazenamento do objeto dentro do dispositivo; e uma seção de designação (530) para a condição de desduplicação do objeto.
16 - Sistema de Armazenamento, Varredura e Desduplicação de índices de Objetos (140) em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 15, caracterizado pelo fato de que a seção de designação (530) inclui um dentre: uma designação de dados para indicar uma réplica ao vivo do objeto; uma designação de pedido de deleção para indicar um pedido de deleção em andamento para uma réplica e um designador de desduplicação para indicar uma réplica que foi selecionada para desduplicação.
17 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, realizado por um ou mais dispositivos, caracterizado pelo fato de que compreende: armazenar (610) um índice de objetos nos dispositivos múltiplos (120) dentro de um sistema de replicação de dados distribuídos (140) e replicar o índice ao longo do sistema de replicação de dados distribuídos ao mesmo tempo em que armazena os objetos localmente, onde cada dispositivo é responsável pela desduplicação dos objetos dentro de um subconjunto particular do índice; conduzir (810) uma varredura de cada um dos subconjuntos do índice para identificar réplicas redundantes com base na varredura; desduplicar (830) as réplicas redundantes; e copiar automaticamente (860) um objeto a partir de um dispositivo com urna réplica tendo um pedido de deleção em andamento para um dispositivo com uma réplica tendo sido previamente desduplicada.
18 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 17, caracterizado pelo fato de que compreende ainda: escrever uma mudança numa parte do índice associado a um dos objetos, incluindo a mudança um registro de dados um registro de pedido de deleção ou um registro de desduplicação para uma réplica do objeto.
19 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 17, caracterizado pelo fato de que compreende ainda: replicar a mudança no índice usando uma camada de replicação subjacente do sistema de replicação de dados distribuídos.
20 - Método de Armazenamento, Varredura e Desduplicação de índices de Objetos em Sistema de Replicação de Dados Distribuídos, de acordo com a Reivindicação 17, caracterizado pelo fato de que o índice é um índice de conteúdo endereçável incluindo um ponto de apoio de conteúdo para cada objeto dentro do índice.
21 - Memória Legível em Computador, compreendendo instruções executáveis em computador, caracterizada pelo fato de que a memória legível em computador compreende: uma ou mais instruções para conduzir uma varredura (710) de uma parte de um índice de objetos num sistema de replicação de dados distribuídos; uma ou mais instruções para identificar (740) uma réplica redundante de um dos objetos com base na varredura da parte do índice; e uma ou mais instruções para desduplicar (750) a réplica redundante.
22 - Memória Legível em Computador, de acordo com a Reivindicação 21, caracterizada pelo fato de que compreende ainda: uma ou mais instruções para escrever uma mudança numa parte do índice associado à réplica redundante, incluindo a mudança um registro de desduplicação para a réplica redundante.
23 - Memória Legível em Computador, de acordo com a Reivindicação 21, caracterizada pelo fato de que compreende ainda: uma ou mais instruções para receber um pedido para outro objeto incluído no índice; uma ou mais instruções para selecionar, com base no índice, um agrupamento de 5 armazenamento a partir do qual recuperar uma réplica do outro objeto; e uma ou mais instruções para recuperar a réplica do outro objeto a partir do agrupamento de armazenamento selecionado.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13985708P | 2008-12-22 | 2008-12-22 | |
US61/139,857 | 2008-12-22 | ||
PCT/US2009/069234 WO2010075407A1 (en) | 2008-12-22 | 2009-12-22 | Asynchronous distributed de-duplication for replicated content addressable storage clusters |
Publications (2)
Publication Number | Publication Date |
---|---|
BRPI0922990A2 BRPI0922990A2 (pt) | 2016-01-26 |
BRPI0922990B1 true BRPI0922990B1 (pt) | 2020-11-10 |
Family
ID=41719028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0922990-6A BRPI0922990B1 (pt) | 2008-12-22 | 2009-12-22 | Sistema e métodos de armazenamento, varredura e desduplicação de índices de objetos em sistema de replicação de dados distribuídos, dispositivo de pluralidade de dispositivos em sistema de replicação de dados distribuídos e memória legível em computador |
Country Status (9)
Country | Link |
---|---|
US (5) | US8712974B2 (pt) |
EP (1) | EP2368199B1 (pt) |
JP (2) | JP5579195B2 (pt) |
CN (2) | CN104166673B (pt) |
AU (1) | AU2009330073B2 (pt) |
BR (1) | BRPI0922990B1 (pt) |
CA (1) | CA2747746C (pt) |
DE (1) | DE202009019139U1 (pt) |
WO (1) | WO2010075407A1 (pt) |
Families Citing this family (239)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645137B2 (en) | 2000-03-16 | 2014-02-04 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US8190742B2 (en) * | 2006-04-25 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Distributed differential store with non-distributed objects and compression-enhancing data-object routing |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
CA2705379C (en) * | 2006-12-04 | 2016-08-30 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
US8103628B2 (en) * | 2008-04-09 | 2012-01-24 | Harmonic Inc. | Directed placement of data in a redundant data storage system |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US8219524B2 (en) * | 2008-06-24 | 2012-07-10 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
WO2010036754A1 (en) | 2008-09-26 | 2010-04-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US8412677B2 (en) * | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
WO2010067118A1 (en) | 2008-12-11 | 2010-06-17 | Novauris Technologies Limited | Speech recognition involving a mobile device |
JP5579195B2 (ja) * | 2008-12-22 | 2014-08-27 | グーグル インコーポレイテッド | 複製されたコンテンツアドレス可能ストレージクラスタのための非同期分散型重複排除 |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US9141621B2 (en) | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
US20100281077A1 (en) * | 2009-04-30 | 2010-11-04 | Mark David Lillibridge | Batching requests for accessing differential data stores |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9431006B2 (en) | 2009-07-02 | 2016-08-30 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US8572137B2 (en) * | 2009-09-08 | 2013-10-29 | International Business Machines Corporation | Data de-duplication in a distributed network |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US9135016B1 (en) * | 2010-05-14 | 2015-09-15 | Emc Corporation | Methods and apparatus for managing replication of objects in a storage environment |
WO2012045023A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US8433681B2 (en) | 2011-05-12 | 2013-04-30 | Dell Products L.P. | System and method for managing replication in an object storage system |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10672399B2 (en) | 2011-06-03 | 2020-06-02 | Apple Inc. | Switching between text data and audio data based on a mapping |
US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
US9286052B1 (en) * | 2011-09-15 | 2016-03-15 | Emc Corporation | Upgrading software on a pair of nodes in a clustered environment |
US20130073286A1 (en) * | 2011-09-20 | 2013-03-21 | Apple Inc. | Consolidating Speech Recognition Results |
US8468138B1 (en) | 2011-12-02 | 2013-06-18 | International Business Machines Corporation | Managing redundant immutable files using deduplication in storage clouds |
US8682868B2 (en) * | 2011-12-02 | 2014-03-25 | International Business Machines Corporation | Removal of data remanence in deduplicated storage clouds |
US20130151483A1 (en) * | 2011-12-07 | 2013-06-13 | Quantum Corporation | Adaptive experience based De-duplication |
US8504595B2 (en) * | 2011-12-07 | 2013-08-06 | Jeffrey Tofano | De-duplication for a global coherent de-duplication repository |
KR101583748B1 (ko) * | 2011-12-08 | 2016-01-19 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 사용자 간의 중복제거를 허용하기 위한 저장소 할인 |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US8732124B1 (en) * | 2012-03-26 | 2014-05-20 | Emc Corporation | Multisite replication with coordinated cycle switching |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US9280610B2 (en) | 2012-05-14 | 2016-03-08 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US8984028B2 (en) | 2012-05-29 | 2015-03-17 | Recommind, Inc. | Systems and methods for storing data and eliminating redundancy |
US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
CN103491124B (zh) * | 2012-06-14 | 2018-08-14 | 南京中兴软件有限责任公司 | 一种对彩信数据进行处理的方法及分布式缓存系统 |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9086819B2 (en) * | 2012-07-25 | 2015-07-21 | Anoosmar Technologies Private Limited | System and method for combining deduplication and encryption of data |
US20140067775A1 (en) * | 2012-09-05 | 2014-03-06 | salesforce.com,inc | System, method and computer program product for conditionally performing de-duping on data |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
KR20240132105A (ko) | 2013-02-07 | 2024-09-02 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
WO2014144579A1 (en) | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
AU2014233517B2 (en) | 2013-03-15 | 2017-05-25 | Apple Inc. | Training an at least partial voice command system |
WO2014197336A1 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
WO2014197334A2 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
KR101772152B1 (ko) | 2013-06-09 | 2017-08-28 | 애플 인크. | 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스 |
EP3008964B1 (en) | 2013-06-13 | 2019-09-25 | Apple Inc. | System and method for emergency calls initiated by voice command |
EP3028157A1 (en) * | 2013-07-29 | 2016-06-08 | Hewlett Packard Enterprise Development LP | Integrity of frequently used de-duplication objects |
DE112014003653B4 (de) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen |
US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US9430490B1 (en) * | 2014-03-28 | 2016-08-30 | Formation Data Systems, Inc. | Multi-tenant secure data deduplication using data association tables |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
CN110797019B (zh) | 2014-05-30 | 2023-08-29 | 苹果公司 | 多命令单一话语输入方法 |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
GB2529859A (en) | 2014-09-04 | 2016-03-09 | Ibm | Device and method for storing data in a distributed file system |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US11095715B2 (en) | 2014-09-24 | 2021-08-17 | Ebay Inc. | Assigning storage responsibility in a distributed data storage system with replication |
US9800575B1 (en) * | 2014-09-24 | 2017-10-24 | Ebay Inc. | Assigning storage responsibility in a distributed data storage system with replication |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
CN104462396B (zh) * | 2014-12-10 | 2017-12-19 | 北京国双科技有限公司 | 字符串处理方法和装置 |
US10152299B2 (en) | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
CN105187517A (zh) * | 2015-08-20 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种实现元数据集群的方法及元数据集群 |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10089358B2 (en) * | 2015-09-21 | 2018-10-02 | The Nielsen Company (Us), Llc | Methods and apparatus to partition data |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10042885B2 (en) * | 2015-10-29 | 2018-08-07 | International Business Machines Corporation | Index table based routing for query resource optimization |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
DK179588B1 (en) | 2016-06-09 | 2019-02-22 | Apple Inc. | INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
DK179343B1 (en) | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179049B1 (en) | 2016-06-11 | 2017-09-18 | Apple Inc | Data driven natural language event detection and classification |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
DK201770383A1 (en) | 2017-05-09 | 2018-12-14 | Apple Inc. | USER INTERFACE FOR CORRECTING RECOGNITION ERRORS |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
DK201770432A1 (en) | 2017-05-15 | 2018-12-21 | Apple Inc. | Hierarchical belief states for digital assistants |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
DK179549B1 (en) | 2017-05-16 | 2019-02-12 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US10489087B2 (en) | 2017-05-24 | 2019-11-26 | International Business Machines Corporation | Using a space release data structure to indicate tracks to release for a space release command to release space of tracks in a consistency group being formed |
US10528256B2 (en) | 2017-05-24 | 2020-01-07 | International Business Machines Corporation | Processing a space release command to free release space in a consistency group |
US10896097B1 (en) * | 2017-05-25 | 2021-01-19 | Palantir Technologies Inc. | Approaches for backup and restoration of integrated databases |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US20190034475A1 (en) * | 2017-07-28 | 2019-01-31 | Enigma Technologies, Inc. | System and method for detecting duplicate data records |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10789002B1 (en) * | 2017-10-23 | 2020-09-29 | EMC IP Holding Company LLC | Hybrid data deduplication for elastic cloud storage devices |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US11086823B2 (en) | 2017-12-28 | 2021-08-10 | Dropbox, Inc. | File deduplication using signature information |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
US11076039B2 (en) | 2018-06-03 | 2021-07-27 | Apple Inc. | Accelerated task performance |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US10649676B1 (en) | 2018-12-28 | 2020-05-12 | Microsoft Technology Licensing, Llc | Memory compression for immutable data structures |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
CN111814003B (zh) * | 2019-04-12 | 2024-04-23 | 伊姆西Ip控股有限责任公司 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
WO2021056255A1 (en) | 2019-09-25 | 2021-04-01 | Apple Inc. | Text detection using global geometry estimators |
US11429573B2 (en) | 2019-10-16 | 2022-08-30 | Dell Products L.P. | Data deduplication system |
CN114610227B (zh) * | 2020-12-09 | 2024-03-19 | 戴尔产品有限公司 | 将存储系统集群化以共享用于去重的数据模式 |
US11360867B1 (en) | 2021-03-31 | 2022-06-14 | Netapp, Inc. | Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event |
US11709743B2 (en) | 2021-03-31 | 2023-07-25 | Netapp, Inc. | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11550679B2 (en) | 2021-03-31 | 2023-01-10 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11934670B2 (en) | 2021-03-31 | 2024-03-19 | Netapp, Inc. | Performing various operations at the granularity of a consistency group within a cross-site storage solution |
US11481139B1 (en) | 2021-03-31 | 2022-10-25 | Netapp, Inc. | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity |
US11740811B2 (en) | 2021-03-31 | 2023-08-29 | Netapp, Inc. | Reseeding a mediator of a cross-site storage solution |
US11409622B1 (en) | 2021-04-23 | 2022-08-09 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator |
US11893261B2 (en) | 2021-05-05 | 2024-02-06 | Netapp, Inc. | Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging |
US11537314B1 (en) | 2021-10-07 | 2022-12-27 | Netapp, Inc. | Resynchronization of individual volumes of a consistency group (CG) within a cross-site storage solution while maintaining synchronization of other volumes of the CG |
US11892982B2 (en) | 2021-10-20 | 2024-02-06 | Netapp, Inc. | Facilitating immediate performance of volume resynchronization with the use of passive cache entries |
US11907562B2 (en) | 2022-07-11 | 2024-02-20 | Netapp, Inc. | Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2583010B2 (ja) * | 1993-01-07 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 |
US6192365B1 (en) * | 1995-07-20 | 2001-02-20 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
US5897664A (en) * | 1996-07-01 | 1999-04-27 | Sun Microsystems, Inc. | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies |
US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
US5812773A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | System and method for the distribution of hierarchically structured data |
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
CN1232914C (zh) * | 2000-04-26 | 2005-12-21 | 计算机合作者思维公司 | 在分布计算机系统中保持数据完整性的方法与设备 |
JP4096147B2 (ja) * | 2000-10-25 | 2008-06-04 | 株式会社日立製作所 | 分散型計算機システムにおける重複配置複製データの複製方式 |
US7231391B2 (en) * | 2001-02-06 | 2007-06-12 | Quest Software, Inc. | Loosely coupled database clusters with client connection fail-over |
US20020161907A1 (en) * | 2001-04-25 | 2002-10-31 | Avery Moon | Adaptive multi-protocol communications system |
US6988124B2 (en) * | 2001-06-06 | 2006-01-17 | Microsoft Corporation | Locating potentially identical objects across multiple computers based on stochastic partitioning of workload |
US7451217B2 (en) | 2002-12-19 | 2008-11-11 | International Business Machines Corporation | Method and system for peer-to-peer authorization |
US7573500B2 (en) * | 2003-03-24 | 2009-08-11 | Sensormatic Electronics Corporation | System and method for communicating data in a video system |
US7296008B2 (en) * | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
US7685384B2 (en) * | 2004-02-06 | 2010-03-23 | Globalscape, Inc. | System and method for replicating files in a computer network |
US7200604B2 (en) * | 2004-02-17 | 2007-04-03 | Hewlett-Packard Development Company, L.P. | Data de-duplication |
US8688634B2 (en) | 2004-02-27 | 2014-04-01 | International Business Machines Corporation | Asynchronous peer-to-peer data replication |
US7206790B2 (en) * | 2004-07-13 | 2007-04-17 | Hitachi, Ltd. | Data management system |
US7778984B2 (en) * | 2004-11-19 | 2010-08-17 | Microsoft Corporation | System and method for a distributed object store |
JP2006185041A (ja) * | 2004-12-27 | 2006-07-13 | Matsushita Electric Ind Co Ltd | コンテンツ分散配置システム、端末及びコンテンツ分散配置システムの動作方法 |
US7571168B2 (en) * | 2005-07-25 | 2009-08-04 | Parascale, Inc. | Asynchronous file replication and migration in a storage network |
US7584338B1 (en) * | 2005-09-27 | 2009-09-01 | Data Domain, Inc. | Replication of deduplicated storage system |
US7788223B2 (en) * | 2005-12-05 | 2010-08-31 | Microsoft Corporation | Resource freshness and replication |
JP4920979B2 (ja) | 2006-01-25 | 2012-04-18 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
US7921077B2 (en) * | 2006-06-29 | 2011-04-05 | Netapp, Inc. | System and method for managing data deduplication of storage systems utilizing persistent consistency point images |
US7747584B1 (en) * | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
US8635194B2 (en) * | 2006-10-19 | 2014-01-21 | Oracle International Corporation | System and method for data compression |
JP4945232B2 (ja) * | 2006-12-21 | 2012-06-06 | 株式会社日立製作所 | アクセス制御方法、計算機システム、及びオブジェクト複製プログラム |
US7840537B2 (en) * | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
JP4951331B2 (ja) * | 2006-12-26 | 2012-06-13 | 株式会社日立製作所 | ストレージシステム |
US8719375B2 (en) * | 2007-03-22 | 2014-05-06 | Microsoft Corporation | Remote data access techniques for portable devices |
US7873809B2 (en) * | 2007-03-29 | 2011-01-18 | Hitachi, Ltd. | Method and apparatus for de-duplication after mirror operation |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US8204866B2 (en) * | 2007-05-18 | 2012-06-19 | Microsoft Corporation | Leveraging constraints for deduplication |
US8315984B2 (en) * | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US7827168B2 (en) * | 2007-05-30 | 2010-11-02 | Red Hat, Inc. | Index clustering for full text search engines |
US7669023B2 (en) * | 2007-07-10 | 2010-02-23 | Hitachi, Ltd. | Power efficient storage with data de-duplication |
US8793226B1 (en) * | 2007-08-28 | 2014-07-29 | Netapp, Inc. | System and method for estimating duplicate data |
WO2009032710A2 (en) * | 2007-08-29 | 2009-03-12 | Nirvanix, Inc. | Filing system and method for data files stored in a distributed communications network |
US7822939B1 (en) * | 2007-09-25 | 2010-10-26 | Emc Corporation | Data de-duplication using thin provisioning |
US7870409B2 (en) * | 2007-09-26 | 2011-01-11 | Hitachi, Ltd. | Power efficient data storage with data de-duplication |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US7870105B2 (en) * | 2007-11-20 | 2011-01-11 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
US7949622B2 (en) * | 2007-12-13 | 2011-05-24 | Yahoo! Inc. | System and method for generating a classifier model for classifying web content |
US8135918B1 (en) * | 2007-12-31 | 2012-03-13 | Emc Corporation | Data de-duplication for iSCSI |
US8190835B1 (en) * | 2007-12-31 | 2012-05-29 | Emc Corporation | Global de-duplication in shared architectures |
US7783604B1 (en) * | 2007-12-31 | 2010-08-24 | Emc Corporation | Data de-duplication and offsite SaaS backup and archiving |
US20090204636A1 (en) * | 2008-02-11 | 2009-08-13 | Microsoft Corporation | Multimodal object de-duplication |
US7962706B2 (en) * | 2008-02-14 | 2011-06-14 | Quantum Corporation | Methods and systems for improving read performance in data de-duplication storage |
US7814074B2 (en) * | 2008-03-14 | 2010-10-12 | International Business Machines Corporation | Method and system for assuring integrity of deduplicated data |
US7984022B2 (en) * | 2008-04-18 | 2011-07-19 | International Business Machines Corporation | Space recovery with storage management coupled with a deduplicating storage system |
US7908436B1 (en) * | 2008-04-25 | 2011-03-15 | Netapp, Inc. | Deduplication of data on disk devices using low-latency random read memory |
US8346730B2 (en) * | 2008-04-25 | 2013-01-01 | Netapp. Inc. | Deduplication of data on disk devices based on a threshold number of sequential blocks |
US7930306B2 (en) * | 2008-04-30 | 2011-04-19 | Msc Intellectual Properties B.V. | System and method for near and exact de-duplication of documents |
US8645333B2 (en) * | 2008-05-29 | 2014-02-04 | International Business Machines Corporation | Method and apparatus to minimize metadata in de-duplication |
US7996371B1 (en) * | 2008-06-10 | 2011-08-09 | Netapp, Inc. | Combining context-aware and context-independent data deduplication for optimal space savings |
US8108353B2 (en) * | 2008-06-11 | 2012-01-31 | International Business Machines Corporation | Method and apparatus for block size optimization in de-duplication |
US8682850B2 (en) * | 2008-06-11 | 2014-03-25 | International Business Machines Corporation | Method of enhancing de-duplication impact by preferential selection of master copy to be retained |
US8484162B2 (en) * | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8335776B2 (en) * | 2008-07-02 | 2012-12-18 | Commvault Systems, Inc. | Distributed indexing system for data storage |
US8788466B2 (en) * | 2008-08-05 | 2014-07-22 | International Business Machines Corporation | Efficient transfer of deduplicated data |
US7814149B1 (en) * | 2008-09-29 | 2010-10-12 | Symantec Operating Corporation | Client side data deduplication |
US8495032B2 (en) * | 2008-10-01 | 2013-07-23 | International Business Machines Corporation | Policy based sharing of redundant data across storage pools in a deduplicating system |
JP5579195B2 (ja) * | 2008-12-22 | 2014-08-27 | グーグル インコーポレイテッド | 複製されたコンテンツアドレス可能ストレージクラスタのための非同期分散型重複排除 |
US8356017B2 (en) * | 2009-08-11 | 2013-01-15 | International Business Machines Corporation | Replication of deduplicated data |
US8868508B2 (en) * | 2010-02-09 | 2014-10-21 | Google Inc. | Storage of data in a distributed storage system |
CA2912394A1 (en) * | 2013-05-14 | 2014-11-20 | Actifio, Inc. | Efficient data replication and garbage collection predictions |
US9928248B2 (en) * | 2013-07-08 | 2018-03-27 | International Business Machines Corporation | Self-healing by hash-based deduplication |
US9817865B2 (en) * | 2015-12-07 | 2017-11-14 | International Business Machines Corporation | Direct lookup for identifying duplicate data in a data deduplication system |
-
2009
- 2009-12-22 JP JP2011542576A patent/JP5579195B2/ja active Active
- 2009-12-22 BR BRPI0922990-6A patent/BRPI0922990B1/pt active IP Right Grant
- 2009-12-22 AU AU2009330073A patent/AU2009330073B2/en active Active
- 2009-12-22 EP EP09799831.4A patent/EP2368199B1/en active Active
- 2009-12-22 CN CN201410306908.5A patent/CN104166673B/zh active Active
- 2009-12-22 US US12/644,693 patent/US8712974B2/en active Active
- 2009-12-22 WO PCT/US2009/069234 patent/WO2010075407A1/en active Application Filing
- 2009-12-22 DE DE202009019139.7U patent/DE202009019139U1/de not_active Expired - Lifetime
- 2009-12-22 CN CN200980156970.8A patent/CN102317938B/zh active Active
- 2009-12-22 CA CA2747746A patent/CA2747746C/en active Active
-
2014
- 2014-03-25 JP JP2014061617A patent/JP5902222B2/ja active Active
- 2014-04-29 US US14/265,298 patent/US20140236888A1/en not_active Abandoned
-
2016
- 2016-01-13 US US14/995,171 patent/US10291699B2/en active Active
-
2019
- 2019-04-22 US US16/390,613 patent/US11943290B2/en active Active
-
2024
- 2024-03-07 US US18/598,041 patent/US20240251012A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP2368199B1 (en) | 2018-10-31 |
CA2747746C (en) | 2015-08-11 |
US8712974B2 (en) | 2014-04-29 |
DE202009019139U1 (de) | 2017-01-20 |
US11943290B2 (en) | 2024-03-26 |
US20140236888A1 (en) | 2014-08-21 |
AU2009330073B2 (en) | 2012-11-15 |
CN102317938B (zh) | 2014-07-30 |
CN104166673B (zh) | 2017-09-19 |
WO2010075407A1 (en) | 2010-07-01 |
JP2012513640A (ja) | 2012-06-14 |
US10291699B2 (en) | 2019-05-14 |
EP2368199A1 (en) | 2011-09-28 |
CN104166673A (zh) | 2014-11-26 |
US20100161554A1 (en) | 2010-06-24 |
US20240251012A1 (en) | 2024-07-25 |
JP5902222B2 (ja) | 2016-04-13 |
CN102317938A (zh) | 2012-01-11 |
JP2014139824A (ja) | 2014-07-31 |
AU2009330073A1 (en) | 2011-07-07 |
CA2747746A1 (en) | 2010-07-01 |
JP5579195B2 (ja) | 2014-08-27 |
US20160134696A1 (en) | 2016-05-12 |
BRPI0922990A2 (pt) | 2016-01-26 |
US20190268411A1 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0922990B1 (pt) | Sistema e métodos de armazenamento, varredura e desduplicação de índices de objetos em sistema de replicação de dados distribuídos, dispositivo de pluralidade de dispositivos em sistema de replicação de dados distribuídos e memória legível em computador | |
US10268697B2 (en) | Distributed deduplication using locality sensitive hashing | |
US8683112B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
JP5895099B2 (ja) | 移行先ファイルサーバ及びファイルシステム移行方法 | |
BRPI0922542B1 (pt) | Método realizado por um dispositivo de pluralidade de dispositivos num sistema distribuído de replicação de dados, sistema e memória legível em computador | |
US9514154B2 (en) | Virtual file system interface for communicating changes of metadata in a data storage system | |
Selvaganesan et al. | An insight about GlusterFS and its enforcement techniques | |
US11650967B2 (en) | Managing a deduplicated data index | |
ES2890487T3 (es) | Migración de datos multiprotocolo | |
WO2021004295A1 (zh) | 一种元数据的处理方法、装置及计算机可读存储介质 | |
Nagwanshi | File chunking approaches | |
AU2013209349A1 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25D | Requested change of name of applicant approved |
Owner name: GOOGLE LLC (US) |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B15K | Others concerning applications: alteration of classification |
Free format text: A CLASSIFICACAO ANTERIOR ERA: G06F 17/30 Ipc: G06F 16/174 (2019.01), G06F 16/178 (2019.01), G06F |
|
B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 10/11/2020, OBSERVADAS AS CONDICOES LEGAIS. |