A scaleable hash table for shared memory multi-processor (SMP) that supports very high rates of concurrent operations (e.g., insert, delete, and lookup), while simultaneously reducing cache misses. The SMP system has a memory subsystem and a processor subsystem interconnected via a bus structure. The hash table is stored in the memory subsystem to facilitate access to data items. The hash table is segmented into multiple buckets, with each bucket containing a reference to a linked list of bucket nodes that hold references to data items with keys that hash to a common value. Individual bucket nodes contain multiple signature-pointer pairs that reference corresponding data items. Each signature-pointer pair has a hash signature computed from a key of the data item and a pointer to the data item. The first bucket node in the linked list for each of the buckets is stored in the hash table. To enable multithread access, while serializing operation of the table, the SMP system utilizes two levels of locks: a table lock and multiple bucket locks. The table lock allows access by a single processing thread to the table while blocking access for other processing threads. The table lock is held just long enough for the thread to acquire the bucket lock of a particular bucket node. Once the table lock is released, another thread can access the hash table and any one of the other buckets.

Uma tabela scaleable da mistura para o multi-processor compartilhado da memória (SMP) esse taxas muito elevadas das sustentações de operações simultâneas (por exemplo, inserção, supressão, e lookup), ao simultaneamente reduzir a falta de esconderijo. O sistema de SMP tem um subsistema da memória e um subsistema do processador interconectados através de uma estrutura da barra-ônibus. A tabela da mistura é armazenada no subsistema da memória para facilitar o acesso aos artigos de dados. A tabela da mistura é segmentada em cubetas múltiplas, com cada cubeta que contem uma referência a uma lista ligada dos nós da cubeta que prendem referências aos artigos de dados com chaves que hash a um valor comum. Os nós individuais da cubeta contêm os pares múltiplos do assinatura-ponteiro que reference artigos de dados correspondentes. Cada par do assinatura-ponteiro tem uma assinatura da mistura computada de uma chave do artigo de dados e de um ponteiro ao artigo de dados. O primeiro nó da cubeta na lista ligada para cada uma das cubetas é armazenado na tabela da mistura. Para permitir o acesso multithread, ao colocar em série a operação da tabela, o sistema de SMP utiliza dois níveis dos fechamentos: um fechamento da tabela e uns fechamentos múltiplos da cubeta. O fechamento da tabela permite o acesso por uma única linha processando à tabela ao obstruir o acesso para outro processar enfía. O fechamento da tabela é prendido justo o suficiente para que a linha adquira o fechamento da cubeta de um nó particular da cubeta. Uma vez que o fechamento da tabela é liberado, uma outra linha pode alcançar a tabela da mistura e qualquer das outras cubetas.

 
Web www.patentalert.com

< Authenticating access to a network server without communicating login information through the network server

< Cross module representation of heterogeneous programs

> Preserving consistency of passively-replicated non-deterministic objects

> Extending program languages with source-program attribute tags

~ 00074