[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-147975-105":3,"detail-sidebar-cat-0-en-105":81,"doc-detail-147975-en":131},{"code":4,"msg":5,"data":6},0,"ok",{"site_id":7,"language":8,"slug":9,"title":10,"keywords":11,"description":12,"schema_data":13,"social_meta":74,"head_meta":76,"extra_data":78,"updated_unix":80},105,"en","diva-dynamic-range-filter-for-var-length-keys-and-queries","Diva - Dynamic Range Filter for Var-Length Keys and Queries","","Range filters are compact probabilistic data structures that estimate whether a key range is empty, enabling fast elimination of non-matching lookups in systems like key-value stores. Existing solutions fall short in multiple ways: they lack strong false-positive rate and performance guarantees, they cannot handle variable-length keys and query ranges, and they do not support dynamic updates. Diva simultaneously addresses these issues using a cache-efficient trie, infix compression, and dynamic blocks for insertions, deletions, and expansions, achieving competitive false-positive rates with robust theoretical and empirical results.",{"@graph":14,"@context":73},[15,34,56],{"@type":16,"itemListElement":17},"BreadcrumbList",[18,23,27,31],{"item":19,"name":20,"@type":21,"position":22},"https://docshare.wps.com","Home","ListItem",1,{"item":24,"name":25,"@type":21,"position":26},"https://docshare.wps.com/document/","Document",2,{"item":28,"name":29,"@type":21,"position":30},"https://docshare.wps.com/document/research-report/","Research & Report",3,{"item":32,"name":10,"@type":21,"position":33},"https://docshare.wps.com/document/diva-dynamic-range-filter-for-var-length-keys-and-queries/147975/",4,{"url":32,"name":10,"@type":35,"image":36,"author":41,"headline":10,"publisher":44,"fileFormat":47,"inLanguage":8,"description":12,"dateModified":48,"datePublished":49,"encodingFormat":47,"isAccessibleForFree":50,"interactionStatistic":51},"DigitalDocument",{"url":37,"@type":38,"width":39,"height":40},"https://docshare.wps.com/thumbnails/diva-dynamic-range-filter-for-var-length-keys-and-queries/147975.png","ImageObject",300,407,{"name":42,"@type":43},"Caleb Sterling","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-10-17","2026-08-26",true,{"@type":52,"interactionType":53,"userInteractionCount":55},"InteractionCounter",{"@type":54},"ViewAction",12,{"@type":57,"mainEntity":58},"FAQPage",[59,65,69],{"name":60,"@type":61,"acceptedAnswer":62},"What problem does a range filter solve in key-value and storage systems?","Question",{"text":63,"@type":64},"A range filter determines whether any stored key falls within a query interval. It avoids unnecessary disk reads or network hops when the target range cannot contain matching keys, while guaranteeing no false negatives.","Answer",{"name":66,"@type":61,"acceptedAnswer":67},"What limitations affect existing range filters according to the document?",{"text":68,"@type":64},"Existing range filters lack robust false-positive rate and performance guarantees, cannot support variable-length keys and query ranges, and generally do not allow dynamic operations like insertions, deletions, or expansions.",{"name":70,"@type":61,"acceptedAnswer":71},"How does Diva enable dynamic operations and variable-length keys/queries?",{"text":72,"@type":64},"Diva learns the dataset distribution by sampling keys into a cache-efficient trie, compresses keys between samples using infix-based representations, and stores infixes in constant-time dynamic data blocks that can be split to support insertions and expansions. It answers range queries by traversing the trie and checking infix inclusion in the target range.","https://schema.org",{"og:url":32,"og:type":75,"og:title":10,"og:site_name":45,"og:description":12},"article",{"robots":77,"canonical":32},"index,follow",{"doc_id":79,"site_id":7},147975,1787773171,{"code":4,"msg":82,"data":83},"success",[84,88,92,96,101,106,111,115,120,123,127],{"id":22,"doc_module":4,"doc_module_name":25,"category_name":85,"show_sort_weight":86,"slug":87},"Story & Novel",90,"story-novel",{"id":26,"doc_module":4,"doc_module_name":25,"category_name":89,"show_sort_weight":90,"slug":91},"Literature",80,"literature",{"id":33,"doc_module":4,"doc_module_name":25,"category_name":93,"show_sort_weight":94,"slug":95},"Exam",70,"exam",{"id":97,"doc_module":4,"doc_module_name":25,"category_name":98,"show_sort_weight":99,"slug":100},5,"Comic",60,"comic",{"id":102,"doc_module":4,"doc_module_name":25,"category_name":103,"show_sort_weight":104,"slug":105},6,"Technology",50,"technology",{"id":107,"doc_module":4,"doc_module_name":25,"category_name":108,"show_sort_weight":109,"slug":110},7,"Healthcare",40,"healthcare",{"id":112,"doc_module":4,"doc_module_name":25,"category_name":29,"show_sort_weight":113,"slug":114},8,30,"research-report",{"id":116,"doc_module":4,"doc_module_name":25,"category_name":117,"show_sort_weight":118,"slug":119},9,"Religion & Spirituality",20,"religion-spirituality",{"id":118,"doc_module":4,"doc_module_name":25,"category_name":121,"show_sort_weight":118,"slug":122},"World Cup","world-cup",{"id":124,"doc_module":4,"doc_module_name":25,"category_name":125,"show_sort_weight":124,"slug":126},10,"Lifestyle","lifestyle",{"id":128,"doc_module":4,"doc_module_name":25,"category_name":129,"show_sort_weight":97,"slug":130},19,"General","general",{"code":4,"msg":82,"data":132},{"doc_id":79,"user_id":133,"nickname":42,"user_avatar":134,"doc_module":4,"category_id":112,"category_name":29,"doc_title":10,"doc_description":12,"doc_content":135,"file_id":136,"file_url":137,"file_type":138,"file_size":139,"view_count":55,"is_deleted":4,"is_public":22,"is_downloadable":22,"audit_status":22,"page_count":140,"language":141,"language_code":8,"site_id":7,"html_lang":8,"table_of_contents":142,"faqs":143,"seo_title":144,"seo_description":12,"update_tm":80,"read_time":145,"preview_page_count":4},962084925290,"https://ap-avatar.wpscdn.com/davatar_085a072bc5b1113ac321206ff7593b45","Diva: Dynamic Range Filter for Var-Length Keys and Queries  \nNavid Eslami  \n[navideslami@cs.toronto.edu](navideslami@cs.toronto.edu)[ ](navideslami@cs.toronto.edu)University of Toronto Toronto, Canada  \nIoana O. Bercea  \n[bercea@kth.se](bercea@kth.se)  \nKTH Royal Institute of Technology Stockholm, Sweden  \nNiv Dayan  \n[nivdayan@cs.toronto.edu](nivdayan@cs.toronto.edu)[ ](nivdayan@cs.toronto.edu)University of Toronto Toronto, Canada  \nABSTRACT  \nRange filters are compact probabilistic data structures that answer approximate range emptiness queries. They are used in many domains, e.g., in key-value stores, to quickly rule out the existence of keys in a given query range and avoid having to search for them in storage. However, all existing range filters exhibit at least oneof the following shortcomings: (1) they do not provide robust false positive rate and performance guarantees,(2) they do not support variable-length keys and query ranges, and (3) they do not allow dynamic operations such as insertions, deletions, or expansions.  \nWe introduce Diva, the first range filter to address all the above challenges simultaneously. Diva learns the dataset’s distribution by sampling keys and storing them in a cache-efficient trie. It compresses the keys in-between samples by removing their longest common prefix and truncating their suffixes while leaving enough bits in the middle (i.e., an infix) to allow differentiating between the keys in the sorted order. It stores infixes in constant time dynamic data blocks, which it splits to handle insertions and expansions. It processes a range query by traversing the trie and checking for the inclusion of infixes in the target query range.  \nWe show, theoretically and empirically, that Diva achieves a false positive rate on par with the state of the art on real-world datasets while supporting dynamicity and variable-length queries and keys.  \nPVLDB Reference Format:  \nNavid Eslami, Ioana O. Bercea, and Niv Dayan. Diva: Dynamic Range Filter for Var-Length Keys and Queries. PVLDB, 18(11): 3923-3936, 2025 .  \ndoi:10.14778/3749646.3749664  \nPVLDB Artifact Availability:  \nThe source code, data, and/or other artifacts have been made available at [https://github.com/n3slami/Diva.git](https://github.com/n3slami/Diva.git).  \n1 INTRODUCTION  \nWhat is a Filter? A filter is a memory-efficient probabilistic data structure that answers whether a query key exists in a given set. Its compactness allows it to fit in a higher level of the memory hierarchy than the set it represents, making it fast to query. A filter never returns a false negative but may return a false positive with a probability called the False Positive Rate (FPR) that depends on its memory footprint. Due to these qualities, filters are used in many applications to avoid redundant disk reads [21] and network hops [10] when a query happens to target a nonexistent key.  \nThis work is licensed under the Creative Commons BY-NC-ND 4.0 International License. Visit [https://creativecommons.org/licenses/by-nc-nd/4.0/ to view a copy of](https://creativecommons.org/licenses/by-nc-nd/4.0/ to view a copy of)[ ](https://creativecommons.org/licenses/by-nc-nd/4.0/ to view a copy of)[this license. For any use beyond those covered by this license](this license. For any use beyond those covered by this license), [obtain permission by](obtain permission by)[emailing info@vldb.org. Copyright](emailing info@vldb.org. Copyright) is held by the owner/author(s). Publication rights licensed to the VLDB Endowment.  \nProceedings of the VLDB Endowment, Vol. 18, No. 11 ISSN 2150-8097 . doi:10.14778/3749646.3749664  \nRange Filters and Applications. Traditional filters answer membership queries for a single key. In contrast, a range filter accepts two keys as the end-points of a range and determines if at least one key in the set is in-between them. As with a traditional filter, a range filter does not return false negatives but may return false positives. Range filters are ","cbCaio3n8NOPDnSM","https://ap.wps.com/l/cbCaio3n8NOPDnSM","pdf",1648469,14,"English","# Abstract\n# Introduction\n## What is a Filter?\n## Range Filters and Applications\n## Range Filtering Goals\n## Design Contentions\n## Core Contribution: Diva","[{\"question\":\"What problem does a range filter solve in key-value and storage systems?\",\"answer\":\"A range filter determines whether any stored key falls within a query interval. It avoids unnecessary disk reads or network hops when the target range cannot contain matching keys, while guaranteeing no false negatives.\"},{\"question\":\"What limitations affect existing range filters according to the document?\",\"answer\":\"Existing range filters lack robust false-positive rate and performance guarantees, cannot support variable-length keys and query ranges, and generally do not allow dynamic operations like insertions, deletions, or expansions.\"},{\"question\":\"How does Diva enable dynamic operations and variable-length keys/queries?\",\"answer\":\"Diva learns the dataset distribution by sampling keys into a cache-efficient trie, compresses keys between samples using infix-based representations, and stores infixes in constant-time dynamic data blocks that can be split to support insertions and expansions. It answers range queries by traversing the trie and checking infix inclusion in the target range.\"}]","Diva - Dynamic Range Filter for Var-Length Keys and Queries | PDF",35]