A method for applying Bloom filter on a large data table consisting of key-value pairs for enabling efficient key-value membership testing to each segment, using at least one processor, the method comprising the step of: • partitioning the large data table of key-value pairs into data chunks; • determining Bloom filter vector size and number of segments S in the vector for each data chunk, each segment having Z bytes; • encoding all keys of a given chunk into a Bloom filter vector by, for each key: o determining the segment-id of the key of the large data table using h 0 hash function such that each key is hashed into exactly a single segment; o encoding the key into a Bloom filter segment with said determined segment-id; wherein the process of encoding the key into a given Bloom filter segment, is implemented by using k hash functions and setting the appropriate bits of the segment as follows: set all bits of the segment to false and then for each i=1..k determine which bits of the segment are set to true by applying functions h i (key-value) (18, 182-186) to the key, wherein the method is characterized by: - determining the number P, packing factor, of the Bloom filter segments to be used for packing segments into extents, where the packing factor defines the number of segments in each extent and where the packing factor is determined by read memory size; - packing of segments into extents, where consecutive P segments of the same segment-id are packed into a single extent according to chunk order and saving the extents; wherein an extent structure is a bit array structure; wherein a single extent having segments with same segment-id supports key-value membership testing to each segment of size Z bytes, depending on the number of segments packed into a single extent or packing factor, wherein the key-value membership testing is applied by subsequent steps: - compute segment-id by applying h 0 function on a given key value; - calculate x key value by applying h i (key-value), where i=1..k; - check if x bit is true or false in the segment. • partitioning the large data table of key-value pairs into data chunks; • determining Bloom filter vector size and number of segments S in the vector for each data chunk, each segment having Z bytes; • encoding all keys of a given chunk into a Bloom filter vector by, for each key: o determining the segment-id of the key of the large data table using h 0 hash function such that each key is hashed into exactly a single segment; o encoding the key into a Bloom filter segment with said determined segment-id; o determining the segment-id of the key of the large data table using h 0 hash function such that each key is hashed into exactly a single segment; o encoding the key into a Bloom filter segment with said determined segment-id; wherein the process of encoding the key into a given Bloom filter segment, is implemented by using k hash functions and setting the appropriate bits of the segment as follows: set all bits of the segment to false and then for each i=1..k determine which bits of the segment are set to true by applying functions h i (key-value) (18, 182-186) to the key, wherein the method is characterized by: - determining the number P, packing factor, of the Bloom filter segments to be used for packing segments into extents, where the packing factor defines the number of segments in each extent and where the packing factor is determined by read memory size; - packing of segments into extents, where consecutive P segments of the same segment-id are packed into a single extent according to chunk order and saving the extents; wherein an extent structure is a bit array structure; - determining the number P, packing factor, of the Bloom filter segments to be used for packing segments into extents, where the packing factor defines the number of segments in each extent and where the packing factor is determined by read memory size; - packing of segments into extents, where consecutive P segments of the same segment-id are packed into a single extent according to chunk order and saving the extents; wherein an extent structure is a bit array structure; wherein a single extent having segments with same segment-id supports key-value membership testing to each segment of size Z bytes, depending on the number of segments packed into a single extent or packing factor, wherein the key-value membership testing is applied by subsequent steps: - compute segment-id by applying h 0 function on a given key value; - calculate x key value by applying h i (key-value), where i=1..k; - check if x bit is true or false in the segment. - compute segment-id by applying h 0 function on a given key value; - calculate x key value by applying h i (key-value), where i=1..k; - check if x bit is true or false in the segment.