Skip to content

File filter_pred_cache.c

FileList > cubrid > src > query > filter_pred_cache.c

Go to the source code of this file

  • #include "binaryheap.h"
  • #include "filter_pred_cache.h"
  • #include "lock_free.h"
  • #include "query_executor.h"
  • #include "stream_to_xasl.h"
  • #include "system_parameter.h"
  • #include "thread_lockfree_hash_map.hpp"
  • #include "thread_manager.hpp"
  • #include "xasl.h"
  • #include "xasl_unpack_info.hpp"
  • #include <algorithm>
  • #include "memory_wrapper.hpp"

Classes

Type Name
struct fpcache_cleanup_candidate
struct fpcache_ent

Public Types

Type Name
typedef struct fpcache_cleanup_candidate FPCACHE_CLEANUP_CANDIDATE
typedef struct fpcache_ent FPCACHE_ENTRY
typedef fpcache_hashmap_type::iterator fpcache_hashmap_iterator
typedef cubthread::lockfree_hashmap< BTID, fpcache_ent > fpcache_hashmap_type

Public Attributes

Type Name
BINARY_HEAP * fpcache_Cleanup_bh
INT32 fpcache_Cleanup_flag

Public Static Attributes

Type Name
volatile INT32 fpcache_Clone_counter = 0
int fpcache_Clone_stack_size
bool fpcache_Enabled = [**false**](broker__monitor_8c.md#function-timeout)
volatile INT32 fpcache_Entry_counter = 0
LF_ENTRY_DESCRIPTOR fpcache_Entry_descriptor = /* multi line expression */
fpcache_hashmap_type fpcache_Hashmap
LF_HASH_TABLE fpcache_Ht = [**LF\_HASH\_TABLE\_INITIALIZER**](lock__free_8h.md#define-lf_hash_table_initializer)
LF_FREELIST fpcache_Ht_freelist = [**LF\_FREELIST\_INITIALIZER**](lock__free_8h.md#define-lf_freelist_initializer)
INT32 fpcache_Soft_capacity = 0
INT64 fpcache_Stat_add
INT64 fpcache_Stat_cleanup
INT64 fpcache_Stat_cleanup_entry
INT64 fpcache_Stat_clone_add
INT64 fpcache_Stat_clone_discard
INT64 fpcache_Stat_clone_hit
INT64 fpcache_Stat_clone_miss
INT64 fpcache_Stat_discard
INT64 fpcache_Stat_hit
INT64 fpcache_Stat_lookup
INT64 fpcache_Stat_miss

Public Functions

Type Name
int fpcache_claim (THREAD_ENTRY * thread_p, BTID * btid, or_predicate * or_pred, pred_expr_with_context ** filter_pred)
void fpcache_drop_all (THREAD_ENTRY * thread_p)
void fpcache_dump (THREAD_ENTRY * thread_p, FILE * fp)
void fpcache_finalize (THREAD_ENTRY * thread_p)
int fpcache_initialize (THREAD_ENTRY * thread_p)
void fpcache_remove_by_class (THREAD_ENTRY * thread_p, const OID * class_oid)
int fpcache_retire (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, pred_expr_with_context * filter_pred)

Public Static Functions

Type Name
void fpcache_cleanup (THREAD_ENTRY * thread_p)
BH_CMP_RESULT fpcache_compare_cleanup_candidates (const void * left, const void * right, BH_CMP_ARG ingore_arg)
int fpcache_copy_key (void * src, void * dest)
void * fpcache_entry_alloc (void)
int fpcache_entry_free (void * entry)
int fpcache_entry_init (void * entry)
int fpcache_entry_uninit (void * entry)

Macros

Type Name
define FPCACHE_CLEANUP_RATIO 0.2
define FPCACHE_DELETE_BTIDS_SIZE 1024
define FPCACHE_PTR_TO_ENTRY (ptr) (([**FPCACHE\_ENTRY**](filter__pred__cache_8c.md#typedef-fpcache_entry) \*) ptr)
define FPCACHE_PTR_TO_KEY (ptr) (([**BTID**](storage__common_8h.md#typedef-btid) \*) ptr)

Public Types Documentation

typedef FPCACHE_CLEANUP_CANDIDATE

typedef struct fpcache_cleanup_candidate FPCACHE_CLEANUP_CANDIDATE;

typedef FPCACHE_ENTRY

typedef struct fpcache_ent FPCACHE_ENTRY;

typedef fpcache_hashmap_iterator

using fpcache_hashmap_iterator =  fpcache_hashmap_type::iterator;

typedef fpcache_hashmap_type

using fpcache_hashmap_type =  cubthread::lockfree_hashmap<BTID, fpcache_ent>;

Public Attributes Documentation

variable fpcache_Cleanup_bh

BINARY_HEAP* fpcache_Cleanup_bh;

variable fpcache_Cleanup_flag

INT32 fpcache_Cleanup_flag;

Public Static Attributes Documentation

variable fpcache_Clone_counter

volatile INT32 fpcache_Clone_counter;

variable fpcache_Clone_stack_size

int fpcache_Clone_stack_size;

variable fpcache_Enabled

bool fpcache_Enabled;

variable fpcache_Entry_counter

volatile INT32 fpcache_Entry_counter;

variable fpcache_Entry_descriptor

LF_ENTRY_DESCRIPTOR fpcache_Entry_descriptor;

variable fpcache_Hashmap

fpcache_hashmap_type fpcache_Hashmap;

variable fpcache_Ht

LF_HASH_TABLE fpcache_Ht;

variable fpcache_Ht_freelist

LF_FREELIST fpcache_Ht_freelist;

variable fpcache_Soft_capacity

INT32 fpcache_Soft_capacity;

variable fpcache_Stat_add

INT64 fpcache_Stat_add;

variable fpcache_Stat_cleanup

INT64 fpcache_Stat_cleanup;

variable fpcache_Stat_cleanup_entry

INT64 fpcache_Stat_cleanup_entry;

variable fpcache_Stat_clone_add

INT64 fpcache_Stat_clone_add;

variable fpcache_Stat_clone_discard

INT64 fpcache_Stat_clone_discard;

variable fpcache_Stat_clone_hit

INT64 fpcache_Stat_clone_hit;

variable fpcache_Stat_clone_miss

INT64 fpcache_Stat_clone_miss;

variable fpcache_Stat_discard

INT64 fpcache_Stat_discard;

variable fpcache_Stat_hit

INT64 fpcache_Stat_hit;

variable fpcache_Stat_lookup

INT64 fpcache_Stat_lookup;

variable fpcache_Stat_miss

INT64 fpcache_Stat_miss;

Public Functions Documentation

function fpcache_claim

int fpcache_claim (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    or_predicate * or_pred,
    pred_expr_with_context ** filter_pred
) 

function fpcache_drop_all

void fpcache_drop_all (
    THREAD_ENTRY * thread_p
) 

function fpcache_dump

void fpcache_dump (
    THREAD_ENTRY * thread_p,
    FILE * fp
) 

function fpcache_finalize

void fpcache_finalize (
    THREAD_ENTRY * thread_p
) 

function fpcache_initialize

int fpcache_initialize (
    THREAD_ENTRY * thread_p
) 

function fpcache_remove_by_class

void fpcache_remove_by_class (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid
) 

function fpcache_retire

int fpcache_retire (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    pred_expr_with_context * filter_pred
) 

Public Static Functions Documentation

function fpcache_cleanup

static void fpcache_cleanup (
    THREAD_ENTRY * thread_p
) 

function fpcache_compare_cleanup_candidates

static BH_CMP_RESULT fpcache_compare_cleanup_candidates (
    const  void * left,
    const  void * right,
    BH_CMP_ARG ingore_arg
) 

function fpcache_copy_key

static int fpcache_copy_key (
    void * src,
    void * dest
) 

function fpcache_entry_alloc

static void * fpcache_entry_alloc (
    void
) 

function fpcache_entry_free

static int fpcache_entry_free (
    void * entry
) 

function fpcache_entry_init

static int fpcache_entry_init (
    void * entry
) 

function fpcache_entry_uninit

static int fpcache_entry_uninit (
    void * entry
) 

Macro Definition Documentation

define FPCACHE_CLEANUP_RATIO

#define FPCACHE_CLEANUP_RATIO `0.2`

define FPCACHE_DELETE_BTIDS_SIZE

#define FPCACHE_DELETE_BTIDS_SIZE `1024`

define FPCACHE_PTR_TO_ENTRY

#define FPCACHE_PTR_TO_ENTRY (
    ptr
) `(( FPCACHE_ENTRY *) ptr)`

define FPCACHE_PTR_TO_KEY

#define FPCACHE_PTR_TO_KEY (
    ptr
) `(( BTID *) ptr)`


The documentation for this class was generated from the following file cubrid/src/query/filter_pred_cache.c