summaryrefslogtreecommitdiffstats
path: root/database/engine/pagecache.h
diff options
context:
space:
mode:
Diffstat (limited to 'database/engine/pagecache.h')
-rw-r--r--database/engine/pagecache.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/database/engine/pagecache.h b/database/engine/pagecache.h
index 0ba4639c..b938b9e0 100644
--- a/database/engine/pagecache.h
+++ b/database/engine/pagecache.h
@@ -11,7 +11,8 @@ struct extent_info;
struct rrdeng_page_descr;
#define INVALID_TIME (0)
-#define MAX_PAGE_CACHE_RETRY_WAIT (3)
+#define MAX_PAGE_CACHE_FETCH_RETRIES (3)
+#define PAGE_CACHE_FETCH_WAIT_TIMEOUT (3)
/* Page flags */
#define RRD_PAGE_DIRTY (1LU << 0)
@@ -62,6 +63,7 @@ struct rrdeng_page_descr {
usec_t start_time;
usec_t end_time;
uint32_t page_length;
+ uint8_t type;
};
#define PAGE_INFO_SCRATCH_SZ (8)
@@ -193,6 +195,14 @@ extern unsigned long pg_cache_hard_limit(struct rrdengine_instance *ctx);
extern unsigned long pg_cache_soft_limit(struct rrdengine_instance *ctx);
extern unsigned long pg_cache_committed_hard_limit(struct rrdengine_instance *ctx);
+extern void rrdeng_page_descr_aral_go_singlethreaded(void);
+extern void rrdeng_page_descr_aral_go_multithreaded(void);
+extern void rrdeng_page_descr_use_malloc(void);
+extern void rrdeng_page_descr_use_mmap(void);
+extern bool rrdeng_page_descr_is_mmap(void);
+extern struct rrdeng_page_descr *rrdeng_page_descr_mallocz(void);
+extern void rrdeng_page_descr_freez(struct rrdeng_page_descr *descr);
+
static inline void
pg_cache_atomic_get_pg_info(struct rrdeng_page_descr *descr, usec_t *end_timep, uint32_t *page_lengthp)
{