def METHOD_NAME(fdb_filename, arp_filename, config_db_filename, backup_file):
    """
        Filter FDB entries based on MAC presence into ARP entries
        FDB entries that do not have MAC entry in the ARP table are filtered out. New FDB entries
        file will be created if it has fewer entries than original one.
        Args:
            fdb_filename(str): FDB entries file name
            arp_filename(str): ARP entry file name
            config_db_filename(str): Config DB file name
            backup_file(bool): Create backup copy of FDB file before creating new one
        Returns:
            None
    """
    arp_map = get_arp_entries_map(arp_filename, config_db_filename)
    with open(fdb_filename, 'r') as fp:
        fdb_entries = json.load(fp)
    def filter_fdb_entry(fdb_entry):
        for key, _ in fdb_entry.items():
            if 'FDB_TABLE' in key:
                return key.split(':')[-1].upper() in arp_map
        # malformed entry, default to False so it will be deleted
        return False
    new_fdb_entries = list(filter(filter_fdb_entry, fdb_entries))
    if len(new_fdb_entries) < len(fdb_entries):
        if backup_file:
            os.rename(fdb_filename, fdb_filename + '-' + time.strftime("%Y%m%d-%H%M%S"))
        with open(fdb_filename, 'w') as fp:
            json.dump(new_fdb_entries, fp, indent=2, separators=(',', ': '))