[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-detail-84705-en":3,"doc-seo-84705-105":29,"detail-sidebar-cat-0-en-105":90},{"code":4,"msg":5,"data":6},0,"success",{"doc_id":7,"user_id":8,"nickname":9,"user_avatar":10,"doc_module":4,"category_id":11,"category_name":12,"doc_title":13,"doc_description":14,"doc_content":15,"file_id":16,"file_url":17,"file_type":18,"file_size":19,"view_count":4,"is_deleted":4,"is_public":20,"is_downloadable":20,"audit_status":20,"page_count":21,"language":22,"language_code":23,"site_id":24,"html_lang":23,"table_of_contents":25,"faqs":26,"seo_title":13,"seo_description":14,"update_tm":27,"read_time":28},84705,549758252649,"Ivy","https://ap-avatar.wpscdn.com/avatar/8000253669c5317157?_k=1778319167496531819",8,"Research & Report","Efficient Discovery of Conditional Dependencies with Desbordante","Conditional functional dependencies (CFDs) restrict where a dependency holds by adding an explicit context, enabling precise integrity constraints and data-quality interventions such as typo detection, near-duplicate removal, and schema matching. The paper tackles CFD discovery’s high computational cost by building on CFDFinder and adding algorithmic and engineering improvements, including parallelization, yielding ParCFDFinder. Integrated into the high-performance Desbordante profiler with a Python interface, the approach accelerates execution up to 318× and cuts memory up to 23× versus Metanome, enabling practical analysis on large datasets on commodity hardware.","Efficient Discovery of Conditional Dependencies  \nwith Desbordante  \nIvan Kozhukov, Dmitry Fedoseev, Maksim Emelyanov, Artem Smola,  \nPyotr Senichenkov, Pavel Anosov, George Chernishev  \nSaint-Petersburg State University  \nSaint-Petersburg, Russia  \n{ivan.s.kozhukov, dmitrii.a.fedoseev, m.emelyanov.m, artem.m.smola, p.senichenkov, pavel.i.anosov, [chernishev](chernishev}@gmail.com)[}](chernishev}@gmail.com)[@gmail.com](chernishev}@gmail.com)  \narXiv :2607 .04030v 1 [ cs .DB] 4 Jul 2026  \nAbstract—Conditional functional dependencies (CFDs) are functional dependencies with a restricted scope: they specify the context in which a dependency holds and are useful for data-quality tasks, specifying complex integrity constraints, and extracting valuable insights from data.  \nWe study the CFD discovery problem, which is computationally demanding. We build on the state-of-the-art CFDFinder algorithm and introduce a set of algorithmic and engineering improvements, including a parallelization strategy, to produce ParCFDFinder. Our implementation is integrated into Desbordante — a high-performance open-source data profiler written in C++ that exposes a Python interface, enabling CFD discovery to be invoked from any Python program.  \nExperimental results show that our enhancements speed up the algorithm by up to 318 × (118× on average) and reduce memory usage by up to 23 × (14× on average) compared with the existing Java-based implementation of Metanome. Integrating ParCFDFinder into Desbordante makes it possible, for the first time, to conveniently discover CFDs on datasets with hundreds of thousands of rows on a commodity machine within a reasonable time.  \nI. INTRODUCTION  \nConditional functional dependencies (CFDs) are a special type of functional dependency [1] that apply not to the entire table but only to a subset of it.  \nFor example, consider Table I, which contains product sales data. The CFD Product −→ Price for Country ∈{US, CA} holds in this table, while the functional dependency Product −→ Price does not.  \nTABLE I  \nSALES (EXAMPLE)  \n\n| SaleID | Product | Category | Price | Country |\n| --- | --- | --- | --- | --- |\n| 1 | Smartphone X | Electronics | 699.0 | US |\n| 2 | T-Shirt Classic | Clothing | 25.0 | US |\n| 3 | Smartphone X | Electronics | 699.0 | CA |\n| 4 | Office Chair | Furniture | 150.0 | US |\n| 5 | Smartphone X | Electronics | 749.0 | GB |\n| 6 | Coffee Maker | Home | 89.0 | GB |\n| 7 | T-Shirt Classic | Clothing | 25.0 | CA |\n| 8 | Office Chair | Furniture | 150.0 | CA |\n| 9 | T-Shirt Classic | Clothing | 23.0 | GB |\n| 10 | Smartphone X | Electronics | 699.0 | GB |\n\nIn this context, the problem of discovering CFDs from data arises. Unlike approximate FDs, CFDs provide an explicit context that specifies where a dependency holds, making  \ntheir scope transparent and enabling discovery of nontrivial, context-specific insights about the data.  \nIn practice, CFDs enable both knowledge extraction —supporting hypothesis generation for scientific discovery —and a range of data-quality interventions (e.g., typo detection, near-duplicate removal, and schema matching) . CFDs also serve to specify complex integrity constraints in data. Finally, in machine-learning workflows CFDs aid feature engineering and can guide the design of ablation studies.  \nDesbordante (Spanish for boundless) [2] is an open-source high-performance data profiling tool designed for discovery and validation of complex patterns in data. It provides a range of algorithms, including specialized methods for CFD discovery. Tasks in this domain are computationally intensive, and CFD discovery is particularly demanding: it requires both substantial CPU time and large amounts of memory; therefore, algorithms are frequently memory-bound. Thus, there is a clear need for fast, memory-efficient discovery algorithms. Currently, there are roughly half a dozen published approaches; the most recent and fastest among them is CFDFinder [3], which is integrated into the Metano","cbCaib556bakAtzX","https://ap.wps.com/l/cbCaib556bakAtzX","pdf",448938,1,12,"English","en",105,"# Introduction\n## Conditional functional dependencies and their applications\n## Desbordante and the need for faster CFD discovery\n## Contributions and evaluation summary","[{\"question\":\"What problem does the paper address?\",\"answer\":\"The paper addresses computationally demanding CFD discovery: finding conditional functional dependencies from data where the dependency holds only under a specified context.\"},{\"question\":\"How does ParCFDFinder improve on the original CFDFinder?\",\"answer\":\"ParCFDFinder adds algorithmic and engineering optimizations on top of CFDFinder, including a parallelization strategy that was absent in the original algorithm.\"},{\"question\":\"What performance gains are reported and compared to what?\",\"answer\":\"Experiments show up to 318× speedup and up to 23× lower memory usage compared with the existing Java-based Metanome implementation, with average improvements of 118× and 14× respectively.\"}]",1784197757,30,{"code":4,"msg":30,"data":31},"ok",{"site_id":24,"language":23,"slug":32,"title":13,"keywords":33,"description":14,"schema_data":34,"social_meta":85,"head_meta":87,"extra_data":89,"updated_unix":27},"efficient-discovery-of-conditional-dependencies-with-desbordante","",{"@graph":35,"@context":84},[36,53,67],{"@type":37,"itemListElement":38},"BreadcrumbList",[39,43,47,50],{"item":40,"name":41,"@type":42,"position":20},"https://docshare.wps.com","Home","ListItem",{"item":44,"name":45,"@type":42,"position":46},"https://docshare.wps.com/document/","Document",2,{"item":48,"name":12,"@type":42,"position":49},"https://docshare.wps.com/document/research-report/",3,{"item":51,"name":13,"@type":42,"position":52},"https://docshare.wps.com/document/efficient-discovery-of-conditional-dependencies-with-desbordante/84705/",4,{"url":51,"name":13,"@type":54,"author":55,"headline":13,"publisher":57,"fileFormat":60,"inLanguage":23,"description":14,"dateModified":61,"datePublished":61,"encodingFormat":60,"isAccessibleForFree":62,"interactionStatistic":63},"DigitalDocument",{"name":9,"@type":56},"Person",{"url":40,"name":58,"@type":59},"DocShare","Organization","application/pdf","2026-07-16",true,{"@type":64,"interactionType":65,"userInteractionCount":4},"InteractionCounter",{"@type":66},"ViewAction",{"@type":68,"mainEntity":69},"FAQPage",[70,76,80],{"name":71,"@type":72,"acceptedAnswer":73},"What problem does the paper address?","Question",{"text":74,"@type":75},"The paper addresses computationally demanding CFD discovery: finding conditional functional dependencies from data where the dependency holds only under a specified context.","Answer",{"name":77,"@type":72,"acceptedAnswer":78},"How does ParCFDFinder improve on the original CFDFinder?",{"text":79,"@type":75},"ParCFDFinder adds algorithmic and engineering optimizations on top of CFDFinder, including a parallelization strategy that was absent in the original algorithm.",{"name":81,"@type":72,"acceptedAnswer":82},"What performance gains are reported and compared to what?",{"text":83,"@type":75},"Experiments show up to 318× speedup and up to 23× lower memory usage compared with the existing Java-based Metanome implementation, with average improvements of 118× and 14× respectively.","https://schema.org",{"og:url":51,"og:type":86,"og:title":13,"og:site_name":58,"og:description":14},"article",{"robots":88,"canonical":51},"index,follow",{"doc_id":7,"site_id":24},{"code":4,"msg":5,"data":91},[92,96,100,104,109,114,119,121,126,129,133],{"id":20,"doc_module":4,"doc_module_name":45,"category_name":93,"show_sort_weight":94,"slug":95},"Story & Novel",90,"story-novel",{"id":46,"doc_module":4,"doc_module_name":45,"category_name":97,"show_sort_weight":98,"slug":99},"Literature",80,"literature",{"id":52,"doc_module":4,"doc_module_name":45,"category_name":101,"show_sort_weight":102,"slug":103},"Exam",70,"exam",{"id":105,"doc_module":4,"doc_module_name":45,"category_name":106,"show_sort_weight":107,"slug":108},5,"Comic",60,"comic",{"id":110,"doc_module":4,"doc_module_name":45,"category_name":111,"show_sort_weight":112,"slug":113},6,"Technology",50,"technology",{"id":115,"doc_module":4,"doc_module_name":45,"category_name":116,"show_sort_weight":117,"slug":118},7,"Healthcare",40,"healthcare",{"id":11,"doc_module":4,"doc_module_name":45,"category_name":12,"show_sort_weight":28,"slug":120},"research-report",{"id":122,"doc_module":4,"doc_module_name":45,"category_name":123,"show_sort_weight":124,"slug":125},9,"Religion & Spirituality",20,"religion-spirituality",{"id":124,"doc_module":4,"doc_module_name":45,"category_name":127,"show_sort_weight":124,"slug":128},"World Cup","world-cup",{"id":130,"doc_module":4,"doc_module_name":45,"category_name":131,"show_sort_weight":130,"slug":132},10,"Lifestyle","lifestyle",{"id":134,"doc_module":4,"doc_module_name":45,"category_name":135,"show_sort_weight":105,"slug":136},19,"General","general"]