Closed guycipher closed 1 day ago
I've reviewed majority of the flushing logic, we are creating the bloom filter, writing keys to the bloom filter, serializing and writing it to sstable, nothing changed there. The compression logic was introduced not to long ago but I did not add anything that would truly change the original logic just adding to it.
Still investigating. Narrowed down to this commit https://github.com/guycipher/k4/commit/32ff5db6ab8b3fd81ef13dce6810e13a145c2813#diff-ca5e6b75d800b93cb0f5df5bbd62d9de4695638e22aa3114df827c372b080ae7
Found it. It's the
bytes.Compare(value, []byte(TOMBSTONE_VALUE)) == 0
Woops, I must be a bit tired. Fixing up.
It seems from version 1.4.0-1.5.0 there is a bug with the bloomfilter and writing and reading from pager I believe. It's hard to say currently.
For the test below
We are failing on specifically
Within the function
func (sstable *SSTable) get(key []byte) ([]byte, error)
This was working fine over here: https://github.com/guycipher/k4/tree/a852e946d6c32ab5911f6dc96bf15fa6945aba93
Doing code review to find this bug, it's an odd one. Feel free to assist, an extra pair of eyes and brain would be awesome!