diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:44 +0000 |
commit | 836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch) | |
tree | 1604da8f482d02effa033c94a84be42bc0c848c3 /database/engine/datafile.h | |
parent | Releasing debian version 1.44.3-2. (diff) | |
download | netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip |
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'database/engine/datafile.h')
-rw-r--r-- | database/engine/datafile.h | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/database/engine/datafile.h b/database/engine/datafile.h deleted file mode 100644 index 569f1b0a2..000000000 --- a/database/engine/datafile.h +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -#ifndef NETDATA_DATAFILE_H -#define NETDATA_DATAFILE_H - -#include "rrdengine.h" - -/* Forward declarations */ -struct rrdengine_datafile; -struct rrdengine_journalfile; -struct rrdengine_instance; - -#define DATAFILE_PREFIX "datafile-" -#define DATAFILE_EXTENSION ".ndf" - -#ifndef MAX_DATAFILE_SIZE -#define MAX_DATAFILE_SIZE (512LU * 1024LU * 1024LU) -#endif -#if MIN_DATAFILE_SIZE > MAX_DATAFILE_SIZE -#error MIN_DATAFILE_SIZE > MAX_DATAFILE_SIZE -#endif - -#define MIN_DATAFILE_SIZE (4LU * 1024LU * 1024LU) -#define MAX_DATAFILES (65536 * 4) /* Supports up to 64TiB for now */ -#define TARGET_DATAFILES (50) - -typedef enum __attribute__ ((__packed__)) { - DATAFILE_ACQUIRE_OPEN_CACHE = 0, - DATAFILE_ACQUIRE_PAGE_DETAILS, - DATAFILE_ACQUIRE_RETENTION, - - // terminator - DATAFILE_ACQUIRE_MAX, -} DATAFILE_ACQUIRE_REASONS; - -/* only one event loop is supported for now */ -struct rrdengine_datafile { - unsigned tier; - unsigned fileno; - uv_file file; - uint64_t pos; - uv_rwlock_t extent_rwlock; - struct rrdengine_instance *ctx; - struct rrdengine_journalfile *journalfile; - struct rrdengine_datafile *prev; - struct rrdengine_datafile *next; - - struct { - SPINLOCK spinlock; - bool populated; - } populate_mrg; - - struct { - SPINLOCK spinlock; - size_t running; - size_t flushed_to_open_running; - } writers; - - struct { - SPINLOCK spinlock; - unsigned lockers; - unsigned lockers_by_reason[DATAFILE_ACQUIRE_MAX]; - bool available; - time_t time_to_evict; - } users; - - struct { - SPINLOCK spinlock; - Pvoid_t pending_epdl_by_extent_offset_judyL; - } extent_queries; -}; - -bool datafile_acquire(struct rrdengine_datafile *df, DATAFILE_ACQUIRE_REASONS reason); -void datafile_release(struct rrdengine_datafile *df, DATAFILE_ACQUIRE_REASONS reason); -bool datafile_acquire_for_deletion(struct rrdengine_datafile *df); - -void datafile_list_insert(struct rrdengine_instance *ctx, struct rrdengine_datafile *datafile, bool having_lock); -void datafile_list_delete_unsafe(struct rrdengine_instance *ctx, struct rrdengine_datafile *datafile); -void generate_datafilepath(struct rrdengine_datafile *datafile, char *str, size_t maxlen); -int close_data_file(struct rrdengine_datafile *datafile); -int unlink_data_file(struct rrdengine_datafile *datafile); -int destroy_data_file_unsafe(struct rrdengine_datafile *datafile); -int create_data_file(struct rrdengine_datafile *datafile); -int create_new_datafile_pair(struct rrdengine_instance *ctx, bool having_lock); -int init_data_files(struct rrdengine_instance *ctx); -void finalize_data_files(struct rrdengine_instance *ctx); - -#endif /* NETDATA_DATAFILE_H */
\ No newline at end of file |