A method for managing data, the method including: receiving at least one group of individual data units over an input device or port, each data unit identified by a key value, with key values of the received data units being sorted such that the key value identifying a given first data unit that is received before a given second data unit occurs earlier in a sort order than the key value identifying the given second data unit; and processing the data units for storage in a data storage system, the processing including storing a plurality of blocks of data, each of one or more of the blocks being generated by compressing a plurality of the data units; providing an index that includes an entry for each of the blocks, wherein one or more of the entries enable location, based on a provided key value, of a block that includes data units corresponding to a range of key values that includes the provided key value; and generating a plurality of screening data structures associated with the stored blocks for screening the blocks to determine a possibility that a data unit that includes a given key value was included in the group of individual data units, including a first screening data structure for screening a first set of one or more of the plurality of blocks and a second screening data structure for screening a second set of one or more of the plurality of blocks, characterised in that a size of at least one of the screening data structures is based on a number of distinct key values of data units stored in the blocks. receiving at least one group of individual data units over an input device or port, each data unit identified by a key value, with key values of the received data units being sorted such that the key value identifying a given first data unit that is received before a given second data unit occurs earlier in a sort order than the key value identifying the given second data unit; and processing the data units for storage in a data storage system, the processing including storing a plurality of blocks of data, each of one or more of the blocks being generated by compressing a plurality of the data units; providing an index that includes an entry for each of the blocks, wherein one or more of the entries enable location, based on a provided key value, of a block that includes data units corresponding to a range of key values that includes the provided key value; and generating a plurality of screening data structures associated with the stored blocks for screening the blocks to determine a possibility that a data unit that storing a plurality of blocks of data, each of one or more of the blocks being generated by compressing a plurality of the data units; providing an index that includes an entry for each of the blocks, wherein one or more of the entries enable location, based on a provided key value, of a block that includes data units corresponding to a range of key values that includes the provided key value; and generating a plurality of screening data structures associated with the stored blocks for screening the blocks to determine a possibility that a data unit that includes a given key value was included in the group of individual data units, including a first screening data structure for screening a first set of one or more of the plurality of blocks and a second screening data structure for screening a second set of one or more of the plurality of blocks, characterised in that a size of at least one of the screening data structures is based on a number of distinct key values of data units stored in the blocks.