summaryrefslogtreecommitdiff
path: root/src/maat_attribute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/maat_attribute.c')
-rw-r--r--src/maat_attribute.c248
1 files changed, 0 insertions, 248 deletions
diff --git a/src/maat_attribute.c b/src/maat_attribute.c
deleted file mode 100644
index fcd033f..0000000
--- a/src/maat_attribute.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
-**********************************************************************************************
-* File: maat_attribute.c
-* Description:
-* Authors: Liu WenTan <[email protected]>
-* Date: 2022-10-31
-* Copyright: (c) Since 2022 Geedge Networks, Ltd. All rights reserved.
-***********************************************************************************************
-*/
-
-#include <assert.h>
-
-#include "maat_kv.h"
-#include "maat_utils.h"
-#include "log/log.h"
-#include "alignment.h"
-#include "maat_core.h"
-#include "maat_table.h"
-
-#define MODULE_ATTRIBUTE module_name_str("maat.attribute")
-
-struct attribute_schema {
- int attribute_id;
- int physical_table_id;
- struct table_manager *ref_tbl_mgr;
-};
-
-struct attribute_runtime {
- size_t n_worker_thread;
- long long *scan_times;
- long long *scan_bytes;
- long long *scan_cpu_time;
- long long *hit_times;
- long long *hit_item_num;
-};
-
-void *attribute_schema_new(cJSON *json, struct table_manager *tbl_mgr,
- const char *table_name, struct log_handle *logger)
-{
- struct attribute_schema *schema = ALLOC(struct attribute_schema, 1);
- schema->ref_tbl_mgr = tbl_mgr;
-
- cJSON *item = cJSON_GetObjectItem(json, "table_id");
- if (NULL == item || item->type != cJSON_Number) {
- log_fatal(logger, MODULE_ATTRIBUTE,
- "[%s:%d] attribute:<%s> schema has no table_id column",
- __FUNCTION__, __LINE__, table_name);
- goto error;
- }
- schema->attribute_id = item->valueint;
-
- item = cJSON_GetObjectItem(json, "physical_table");
- if (NULL == item || item->type != cJSON_String) {
- log_fatal(logger, MODULE_ATTRIBUTE,
- "[%s:%d] attribute:<%s> schema has no physical_table column",
- __FUNCTION__, __LINE__, table_name);
- goto error;
- }
-
- schema->physical_table_id = table_manager_get_table_id(tbl_mgr, item->valuestring);
- if (schema->physical_table_id < 0) {
- log_fatal(logger, MODULE_ATTRIBUTE,
- "[%s:%d] attribute:<%s>'s physical table:<%s> unregistered.",
- __FUNCTION__, __LINE__, table_name, item->valuestring);
- goto error;
- }
-
- return schema;
-error:
- FREE(schema);
- return NULL;
-}
-
-void attribute_schema_free(void *attribute_schema)
-{
- FREE(attribute_schema);
-}
-
-void *attribute_runtime_new(void *attribute_schema, size_t max_thread_num,
- struct maat_garbage_bin *garbage_bin,
- struct log_handle *logger)
-{
- if (NULL == attribute_schema) {
- return NULL;
- }
-
- struct attribute_runtime *virt_rt = ALLOC(struct attribute_runtime, 1);
-
- virt_rt->n_worker_thread = max_thread_num;
- virt_rt->scan_times = alignment_int64_array_alloc(max_thread_num);
- virt_rt->scan_bytes = alignment_int64_array_alloc(max_thread_num);
- virt_rt->scan_cpu_time = alignment_int64_array_alloc(max_thread_num);
- virt_rt->hit_times = alignment_int64_array_alloc(max_thread_num);
- virt_rt->hit_item_num = alignment_int64_array_alloc(max_thread_num);
-
- return virt_rt;
-}
-
-void attribute_runtime_free(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
-
- if (virt_rt->scan_times != NULL) {
- alignment_int64_array_free(virt_rt->scan_times);
- virt_rt->scan_times = NULL;
- }
-
- if (virt_rt->scan_bytes != NULL) {
- alignment_int64_array_free(virt_rt->scan_bytes);
- virt_rt->scan_bytes = NULL;
- }
-
- if (virt_rt->scan_cpu_time != NULL) {
- alignment_int64_array_free(virt_rt->scan_cpu_time);
- virt_rt->scan_cpu_time = NULL;
- }
-
- if (virt_rt->hit_times != NULL) {
- alignment_int64_array_free(virt_rt->hit_times);
- virt_rt->hit_times = NULL;
- }
-
- if (virt_rt->hit_item_num != NULL) {
- alignment_int64_array_free(virt_rt->hit_item_num);
- virt_rt->hit_item_num = NULL;
- }
-
- FREE(virt_rt);
-}
-
-void attribute_runtime_scan_bytes_add(struct attribute_runtime *virt_rt,
- int thread_id, long long val)
-{
- if (NULL == virt_rt || thread_id < 0) {
- return;
- }
-
- alignment_int64_array_add(virt_rt->scan_bytes, thread_id, val);
-}
-
-long long attribute_runtime_scan_bytes(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return 0;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
- long long sum = alignment_int64_array_sum(virt_rt->scan_bytes,
- virt_rt->n_worker_thread);
- alignment_int64_array_reset(virt_rt->scan_bytes,
- virt_rt->n_worker_thread);
-
- return sum;
-}
-
-void attribute_runtime_scan_times_inc(struct attribute_runtime *virt_rt,
- int thread_id)
-{
- if (NULL == virt_rt || thread_id < 0) {
- return;
- }
-
- alignment_int64_array_add(virt_rt->scan_times, thread_id, 1);
-}
-
-long long attribute_runtime_scan_times(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return 0;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
- long long sum = alignment_int64_array_sum(virt_rt->scan_times,
- virt_rt->n_worker_thread);
- alignment_int64_array_reset(virt_rt->scan_times,
- virt_rt->n_worker_thread);
-
- return sum;
-}
-
-long long attribute_runtime_scan_cpu_time(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return 0;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
- long long sum = alignment_int64_array_sum(virt_rt->scan_cpu_time,
- virt_rt->n_worker_thread);
- alignment_int64_array_reset(virt_rt->scan_cpu_time,
- virt_rt->n_worker_thread);
-
- return sum;
-}
-
-void attribute_runtime_hit_times_inc(struct attribute_runtime *virt_rt,
- int thread_id)
-{
- if (NULL == virt_rt || thread_id < 0) {
- return;
- }
-
- alignment_int64_array_add(virt_rt->hit_times, thread_id, 1);
-}
-
-long long attribute_runtime_hit_times(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return 0;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
- long long sum = alignment_int64_array_sum(virt_rt->hit_times,
- virt_rt->n_worker_thread);
- alignment_int64_array_reset(virt_rt->hit_times,
- virt_rt->n_worker_thread);
-
- return sum;
-}
-
-void attribute_runtime_hit_item_num_add(struct attribute_runtime *virt_rt,
- int thread_id, long long val)
-{
- if (NULL == virt_rt || thread_id < 0) {
- return;
- }
-
- alignment_int64_array_add(virt_rt->hit_item_num, thread_id, val);
-}
-
-long long attribute_runtime_hit_item_num(void *attribute_runtime)
-{
- if (NULL == attribute_runtime) {
- return 0;
- }
-
- struct attribute_runtime *virt_rt = (struct attribute_runtime *)attribute_runtime;
- long long sum = alignment_int64_array_sum(virt_rt->hit_item_num,
- virt_rt->n_worker_thread);
- alignment_int64_array_reset(virt_rt->hit_item_num,
- virt_rt->n_worker_thread);
-
- return sum;
-}