Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
161 words
A history database for a Usenet server to record the status of news articles, comprising: (a) a hashing algorithm for producing at least a first hash value and a second hash value from a unique identifier that identifies a news article; (b) a key-value database comprising a value section and a record section, wherein said value section has a plurality of storage buckets each containing at least a pointer, and wherein said record section has a plurality of linked records and a record pointer; and wherein said unique identifier is hashed to one of said plurality of storage buckets based upon at least a portion of said first hash value, and wherein said pointer within said one of said plurality of storage buckets points to a head of said plurality of linked records, and wherein said second hash value is compared sequentially against said plurality of linked records to determine whether said news article is already recorded in said history database.
Claim 2
Dependent Claim
161 words
A history database for a Usenet server to record the status of news articles, comprising: (a) a hashing algorithm for producing at least a first hash value and a second hash value from a unique identifier that identifies a news article; (b) a key-value database comprising a value section and a record section, wherein said value section has a plurality of storage buckets each containing at least a pointer, and wherein said record section has a plurality of linked records and a record pointer; and wherein said unique identifier is hashed to one of said plurality of storage buckets based upon at least a portion of said first hash value, and wherein said pointer within said one of said plurality of storage buckets points to a head of said plurality of linked records, and wherein said second hash value is compared sequentially against said plurality of linked records to determine whether said news article is already recorded in said history database.
Claim 3
Dependent Claim
16 words
The system of claim 1 , further comprising a quicklist cache for caching currently active threads.
Claim 4
Dependent Claim
13 words
The system of claim 1 , wherein said key-value database is statically sized.
Claim 5
Dependent Claim
24 words
The system of claim 1 , further comprising a record cache, having a read portion and a write portion separated by a cache pointer.
Claim 6
Dependent Claim
17 words
The system of claim 4 , wherein said record cache is configured to cache recently added records.
Claim 7
Dependent Claim
31 words
The system of claim 5 , wherein said record cache is configured to write recently added records to said key-value database in contiguous areas of storage during each cache flush operation.
Claim 8
Dependent Claim
26 words
The system of claim 1 , wherein said record pointer incrementally points to records in said record section that have persisted longest within said history database.
Claim 9
Dependent Claim
14 words
The system of claim 7 , further comprising a lock on said record pointer.
Claim 10
Dependent Claim
33 words
The system of claim 1 , wherein each of said linked records has a plurality of fields including a first hash field, a second hash field, a payload field, and a linking pointer.
Claim 11
Dependent Claim
32 words
The system of claim 9 , wherein said linking pointer of each record is set to point at the next most recently added record that hashed to the same first hash value.
Claim 12
Dependent Claim
20 words
The system of claim 9 , wherein said payload field contains a reference to a location within an article database.
Claim 13
Independent Claim
112 words
A method for operating a history database for a server, comprising the steps of: (a) receiving a unique identifier at the server; (b) hashing said unique identifier into at least a first hash value and a second hash value; (c) mapping said first hash value into a storage location within a value database, wherein said storage location contains at least a record pointer to a linked list of records, said records comprised of at least the following: (i) a first hash field; (ii) a second hash field; (iii) a payload field; and (iv) a linking pointer; and (d) searching said linked list of records for a match of said second hash value.
Claim 14
Independent Claim
112 words
A method for operating a history database for a server, comprising the steps of: (a) receiving a unique identifier at the server; (b) hashing said unique identifier into at least a first hash value and a second hash value; (c) mapping said first hash value into a storage location within a value database, wherein said storage location contains at least a record pointer to a linked list of records, said records comprised of at least the following: (i) a first hash field; (ii) a second hash field; (iii) a payload field; and (iv) a linking pointer; and (d) searching said linked list of records for a match of said second hash value.
Claim 15
Dependent Claim
19 words
The method of claim 12 , further comprising the step of caching currently active threads in a quicklist cache.
Claim 16
Dependent Claim
15 words
The method of claim 13 , further comprising the step of locking said quicklist cache.
Claim 17
Dependent Claim
24 words
The method of claim 12 , further comprising the step of caching the most current records in a read cache having a cache pointer.
Claim 18
Dependent Claim
24 words
The method of claim 15 , further comprising the step of flushing said read cache in contiguous areas of storage within said key-value database.
Claim 19
Dependent Claim
19 words
The method of claim 15 , further comprising the step of synchronizing said record pointer with said cache pointer.
Claim 20
Dependent Claim
36 words
The method of claim 12 , further comprising the step of incrementally pointing said record pointer along said record section to facilitate overwriting records in said record section that have persisted longest within said history database.
Claim 21
Dependent Claim
15 words
The method of claim 18 , further comprising the step of locking said record pointer.
Claim 22
Dependent Claim
174 words
A history database for a Usenet server to record the status of news articles, comprising: (a) a hashing algorithm for producing at least a first hash value and a second hash value from a unique identifier that identifies a news article; (b) a key-value database comprising a value section and a record section, wherein said value section has a plurality of storage buckets each containing at least a pointer, and wherein said record section has a plurality of linked records; (c) a record cache, having a read portion and a write portion separated by a cache pointer and wherein said unique identifier is hashed to one of said plurality of storage buckets based upon at least a portion of said first hash value, and wherein said pointer within said one of said plurality of storage buckets points to a head of said plurality of linked records, and wherein said second hash value is compared sequentially against said plurality of linked records to determine whether said news article is already recorded in said history database.
Claim 23
Dependent Claim
174 words
A history database for a Usenet server to record the status of news articles, comprising: (a) a hashing algorithm for producing at least a first hash value and a second hash value from a unique identifier that identifies a news article; (b) a key-value database comprising a value section and a record section, wherein said value section has a plurality of storage buckets each containing at least a pointer, and wherein said record section has a plurality of linked records; (c) a record cache, having a read portion and a write portion separated by a cache pointer and wherein said unique identifier is hashed to one of said plurality of storage buckets based upon at least a portion of said first hash value, and wherein said pointer within said one of said plurality of storage buckets points to a head of said plurality of linked records, and wherein said second hash value is compared sequentially against said plurality of linked records to determine whether said news article is already recorded in said history database.
Claim 24
Independent Claim
137 words
A system for communicating Usenet articles, comprising: code for receiving an offer to download a Usenet article, wherein said offer comprises a unique identifier of said Usenet article; code for hashing said unique identifier to a hash memory identifier of a memory location that stores a pointer to a first record of a linked list that maintains a history of selected previously downloaded Usenet articles; code for searching a lock table to determine whether a previous offer to download said Usenet article is being processed; and code for searching said linked list utilizing said pointer to determine whether said Usenet article has been download, wherein said code for searching said linked list is operable only when said code for searching said lock table determines that a previous offer to download said Usenet article is not being processed.
Claim 25
Independent Claim
137 words
A system for communicating Usenet articles, comprising: code for receiving an offer to download a Usenet article, wherein said offer comprises a unique identifier of said Usenet article; code for hashing said unique identifier to a hash memory identifier of a memory location that stores a pointer to a first record of a linked list that maintains a history of selected previously downloaded Usenet articles; code for searching a lock table to determine whether a previous offer to download said Usenet article is being processed; and code for searching said linked list utilizing said pointer to determine whether said Usenet article has been download, wherein said code for searching said linked list is operable only when said code for searching said lock table determines that a previous offer to download said Usenet article is not being processed.
Claim 26
Dependent Claim
38 words
The system of claim 21 further comprising: code for declining said offer to download said Usenet article when said code for searching said lock table determines that a previous offer to download said Usenet article is being processed.
Claim 27
Dependent Claim
33 words
The system of claim 21 further comprising: code for declining said offer to download said Usenet article when said code for searching said linked-list determines that said Usenet article has been previously downloaded.
Claim 28
Dependent Claim
34 words
The system of claim 22 further comprising: code for accepting said offer to download said Usenet article when said code for searching said linked-list determines that said Usenet article has not been previously downloaded.
Claim 29
Dependent Claim
36 words
The system of claim 21 wherein said code for searching said linked-list is operable to stop searching when a last record in said linked-list points to a memory location associated with a different hash memory identifier.
Claim 30
Dependent Claim
56 words
The system of claim 21 further comprising: code for searching a cache that identifies at least Usenet articles that have been recently downloaded, wherein said code for searching a cache is operable after said code for searching a lock table and said code for searching a cache is operable before said code for searching said linked-list.
Claim 31
Dependent Claim
15 words
The system of claim 26 where said cache is implemented in random access memory (RAM).
Claim 32
Dependent Claim
31 words
The system of claim 27 further comprising: code for flushing said cache by writing cached information as a linked list that is stored in block-wise contiguous portions of a storage medium.