A high-performance cache is disclosed. The cache is designed for time- and space-efficiency for a diverse range of information objects. Information objects are stored in portions of a non-volatile storage device called arenas, which are contiguous regions from which space is allocated in parallel. Objects are substantially contiguously allocated within an arena and are mapped by name keys and content-based object keys to a tag table, an open directory, and a directory table. The tag table is indexed by the name keys, and stores references to sets in the directory table. The tag table is compact and therefore can be stored in fast main memory, facilitating rapid lookups. The directory table is organized so that at least a frequently-accessed portion of it also usually resides in fast main memory, which further speeds lookups. The tag and directory tables are organized to quickly determine non-presence of objects. Large objects are chunked into fragments, which are chained using a forward functional-iteration mechanism, to prevent the need for mutating existing on-disk data structures. Garbage collection periodically moves objects within an arena or to other arenas. Additionally, for a plurality of counters, the following is computed: (1) the sum of values stored in the counters, and (2) the maximum value that can be represented by the coimters. Each of the counters are decremented when the sum is greater than half of the maximum value. Each of the counters is associated with an information object, which is deleted when a counter is decremented to zero.

Um esconderijo high-performance é divulgado. O esconderijo é projetado para o tempo e a espaço-eficiência para uma escala diversa de objetos da informação. Os objetos da informação são armazenados nas parcelas de um dispositivo de armazenamento permanente chamado as arenas, que são as regiões contíguas de que o espaço é alocado na paralela. Os objetos substancialmente contiguously são alocados dentro de uma arena e traçados pelas chaves conhecidas e por chaves índice-baseadas do objeto a uma tabela do Tag, a um diretório aberto, e a uma tabela do diretório. A tabela do Tag é posicionada pelas chaves conhecidas, e armazena referências aos jogos na tabela do diretório. A tabela do Tag é compacta e pode conseqüentemente ser armazenada na memória principal rápida, facilitando lookups rápidos. A tabela do diretório é organizada de modo que ao menos uma parcela frequently-accessed dela também resida geralmente na memória principal rápida, que lookups mais adicionais das velocidades. As tabelas do Tag e do diretório são organizadas para determinar rapidamente a non-presença dos objetos. Os objetos grandes são chunked nos fragmentos, que são acorrentados usando um mecanismo para diante da funcional-iteração, para impedir a necessidade para mutating estruturas de dados existentes do em-disco. A coleção do lixo move periòdicamente objetos dentro de uma arena ou a outras arenas. Adicionalmente, para um plurality dos contadores, o seguinte é computado: (1) a soma dos valores armazenados nos contadores, e (2) o valor máximo que pode ser representado pelos coimters. Cada um dos contadores é decrecido quando a soma é mais grande do que a metade do valor máximo. Cada um dos contadores é associado com um objeto da informação, que seja suprimido quando um contador é decrecido a zero.

 
Web www.patentalert.com

< Power steering mechanism with magnetoelastic torsion bar

< Delivering alternate versions of objects from an object cache

> Caching dynamically allocated objects

> Detecting duplicate and near-duplicate files

~ 00044