[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"project-12241332":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":55,"maker_in_thread":150,"shape":159,"grid":163,"attempts":230,"same_week":231,"maker_shows":31,"maker_hidden":260,"reader_version":261,"card":262},"12241332","cfilter","Cuckoo Filter Implementation in Go, Better Than Bloom Filters","title","Show HN: Cuckoo Filter Implementation in Go, Better Than Bloom Filters","https:\u002F\u002Fgithub.com\u002Firfansharif\u002Fcfilter","github.com","irfansharif",1470552937,2016,181,30,160,2264,8,"notable","languages","probabilistic data structure library","library",[24,25,26,27],"cuckoo filter","bloom filter","go","probabilistic data structure","curious",-0.149,{"positive":31,"neutral":32,"mixed":33,"critical":34},1,13,0,3,17,{"idea":37,"docs":38,"execution":39,"design":41},{"positive":31,"critical":33},{"positive":33,"critical":33},{"positive":33,"critical":40},2,{"positive":33,"critical":31},[33,33,33,33,33,33,34,34,34,34,43,34,34,34,33,33,34,33,34,34,31,33,31,33,34,34,33,31,34,33],5,null,{"problem":44,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":46,"openness":53,"stage":54,"team_size":54},[47],{"value":48,"source":49,"evidence":50},"Go","inferred",[51],{"id":52},"post","open_source","unknown",{"praise":56,"objections":68,"requests":80,"questions":98,"alternatives":131},[57],{"value":58,"source":59,"evidence":60},"Cuckoo filters offer lower space overhead than Bloom filters and support deletion","commenter",[61,64],{"id":62,"by":11,"text":63},"12242440","> For applications that store many items and target moderately low false positive rates, cuckoo filters have lower space overhead than space-optimised Bloom filters. Some…",{"id":65,"by":66,"text":67},"12242122","rusanu","The paper also cites the main advantage of cockoo filters over bloom: ability to remove a key. (Vanilla) bloom require a rebuild of the entire filter if a key is removed from the…",[69],{"value":70,"source":59,"evidence":71},"Deleting an item can remove another item with the same fingerprint, causing false negatives",[72,76],{"id":73,"by":74,"text":75},"12243355","Kubuxu","What I don't understand is comment on the delete function: ``` \u002F\u002F tries deleting 'bonjour' from filter, may delete another element \u002F\u002F this could occur when another byte slice…",{"id":77,"by":78,"text":79},"12245649","kobigurk","Even if the element is definitely in the filter, another element can have the same fingerprint. Thus, deleting that event which is definitely in the filter will also cause false…",[81,88],{"value":82,"source":59,"evidence":83},"Allow persisting filter items, since struct fields are unexported",[84],{"id":85,"by":86,"text":87},"12242691","pram","Can you persist your stored filter items with something like bolt? The struct fields are all unexported.",{"value":89,"source":59,"evidence":90},"Compare against BoomFilters cuckoo implementation with benchmarks",[91,95],{"id":92,"by":93,"text":94},"12242726","jzelinskie","How does this compare to the implementation in the \"BoomFilters\" library? https:\u002F\u002Fgodoc.org\u002Fgithub.com\u002Ftylertreat\u002FBoomFilters#CuckooFilter",{"id":96,"by":11,"text":97},"12242996","hadn't come across that implementation before, i'll try putting up benchmarks as soon as i can.",[99,114,124],{"value":100,"source":59,"evidence":101},"What real-world applications use cuckoo filters",[102,106,110],{"id":103,"by":104,"text":105},"12241978","donatj","For the uninformed like me, what is the real world application for this? This is 100% curiosity and not criticism. Basically I'm curious in plain English, what kind of…",{"id":107,"by":108,"text":109},"12241995","allendoerfer","Say you are writing a spider and want to determine whether you have to revisit a website today or tomorrow. The minimal chance of visiting it tomorrow instead of today even if…",{"id":111,"by":112,"text":113},"12242012","sluukkonen","Here's one example. Web browsers often use bloom filters or similar data structures to check for malicious URLs. They first check the URL against the local bloom filter, and if a…",{"value":115,"source":59,"evidence":116},"How fingerprints are generated",[117,121],{"id":118,"by":119,"text":120},"12244324","ejbs2","How are fingerprint's supposed to be generated? Just another hash?",{"id":122,"by":11,"text":123},"12246869","essentially, yes.",{"value":125,"source":59,"evidence":126},"Patent status of the cuckoo filter concept",[127],{"id":128,"by":129,"text":130},"12245699","Lord_Nightmare","What is the situation with Patents on the Cuckoo filter? I saw no less than 2 pending applications with some quick googling, one by NetSpeed, one by TI, and quick uspto search…",[132,136,143],{"value":133,"source":59,"evidence":134},"BoomFilters library CuckooFilter",[135],{"id":92,"by":93,"text":94},{"value":137,"source":59,"evidence":138},"C++ cuckoofilter by original authors",[139],{"id":140,"by":141,"text":142},"12241641","lrem","There is also a C++ implementation by the original authors: https:\u002F\u002Fgithub.com\u002Fefficient\u002Fcuckoofilter",{"value":144,"source":59,"evidence":145},"Bloom filters",[146,147],{"id":111,"by":112,"text":113},{"id":148,"by":66,"text":149},"12242103","Bloom filters are [one of?] the most used 'negative cache' structures. Consulting a bloom filter can give a decisive answer that a key is not in a collection (ie. a key was never…",{"comments":43,"answered":43,"key":151},[152,153,156],{"id":62,"text":63},{"id":154,"text":155},"12243420","yes, you are correct. drawing from the example in the README you could 'delete' \"bounjour\" assuming it had the same fingerprint as \"buongiorno\", subsequent lookups for…",{"id":157,"text":158},"12246866","are you assuming the other element is also in the filter? my assumption is your 'deletions' occur only when you know before hand the element already is in the filter. if two…",{"commenters":160,"max_depth":161,"maker_replies":43,"first_comment_mins":162,"lifespan_hours":16},22,4,192,[164,168,171,173,176,179,182,184,186,187,188,191,194,195,196,200,201,204,207,211,212,214,216,217,218,220,222,224,227,228],[165,33,33,166,167,33],"12242128","other\u002Fneutral\u002Fnone","_asummers",[169,33,33,166,170,33],"12242320","jhalstead",[172,33,33,166,119,33],"12244337",[174,33,33,166,175,33],"12242344","dmit",[177,33,33,166,178,33],"12283538","senderista",[180,33,33,166,181,33],"12243555","dalke",[140,31,34,183,141,33],"project\u002Fneutral\u002Fnone",[103,40,34,185,104,33],"project\u002Fneutral\u002Fidea",[107,40,34,185,108,33],[111,40,34,185,112,33],[189,40,43,190,104,33],"12242045","project\u002Fpositive\u002Fidea",[192,40,34,185,193,33],"12242534","loeg",[148,40,34,185,66,33],[65,40,34,185,66,33],[197,40,33,198,199,33],"12242547","commenter\u002Fneutral\u002Fnone","logingone",[62,40,33,185,11,31],[202,40,34,185,203,33],"12242742","discardorama",[205,40,33,166,206,33],"12243023","malkia",[208,34,34,209,210,33],"12241872","project\u002Fneutral\u002Fdocs","perlgeek",[128,161,34,185,129,33],[73,43,31,213,74,33],"project\u002Fcritical\u002Fexecution",[154,43,33,215,11,31],"project\u002Fneutral\u002Fexecution",[77,43,31,213,78,33],[157,43,33,215,11,31],[219,43,34,215,66,33],"12245661",[92,221,34,183,93,33],6,[96,221,33,223,11,31],"maker\u002Fneutral\u002Fperformance",[85,225,31,226,86,33],7,"project\u002Fcritical\u002Fdesign",[118,18,34,215,119,33],[122,18,33,229,11,31],"maker\u002Fneutral\u002Fexecution",[],[232,237,241,245,250,255],{"id":233,"name":234,"points":235,"category":236},"12260794","Generating fantasy maps",1004,"creative",{"id":238,"name":239,"points":240,"category":20},"12260958","Xaddress",415,{"id":242,"name":243,"points":244,"category":20},"12227507","asyncpg",296,{"id":246,"name":247,"points":248,"category":249},"12240542","Gping.io",184,"hardware",{"id":251,"name":252,"points":253,"category":254},"12232293","Web Dev with Golang Anti-Textbook",158,"learning_science",{"id":256,"name":257,"points":258,"category":259},"12239096","deep learning models",127,"ai",false,"v2",{"id":263,"name":5,"line":6,"ai":260,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":264,"top":18,"kw":265,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":266,"url":9,"mix":267,"praise":58,"objection":70,"sub":21},12241332,-0.15,[24,25,26,27],"000000333353330030331010330130",[31,32,33,34],1794036546541]