From ac2f1125604b709bc01bfbbd78f509b9c991a341 Mon Sep 17 00:00:00 2001
From: vkalintiris <vasilis@netdata.cloud>
Date: Sun, 24 Nov 2024 14:57:05 +0200
Subject: [PATCH] Do not allocate/copy extent data twice.

---
 src/database/engine/pdc.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/database/engine/pdc.c b/src/database/engine/pdc.c
index da5dbd7d84..eef7ac75b4 100644
--- a/src/database/engine/pdc.c
+++ b/src/database/engine/pdc.c
@@ -1255,11 +1255,6 @@ void epdl_find_extent_and_populate_pages(struct rrdengine_instance *ctx, EPDL *e
 
         void *extent_data = datafile_extent_read(ctx, epdl->file, epdl->extent_offset, epdl->extent_size);
         if(extent_data != NULL) {
-
-            void *copied_extent_compressed_data = dbengine_extent_alloc(epdl->extent_size);
-            memcpy(copied_extent_compressed_data, extent_data, epdl->extent_size);
-            datafile_extent_read_free(extent_data);
-
             if(worker)
                 worker_is_busy(UV_EVENT_DBENGINE_EXTENT_CACHE_LOOKUP);
 
@@ -1272,11 +1267,11 @@ void epdl_find_extent_and_populate_pages(struct rrdengine_instance *ctx, EPDL *e
                     .size = epdl->extent_size,
                     .end_time_s = 0,
                     .update_every_s = 0,
-                    .data = copied_extent_compressed_data,
+                    .data = extent_data,
             }, &added);
 
             if (!added) {
-                dbengine_extent_free(copied_extent_compressed_data, epdl->extent_size);
+                dbengine_extent_free(extent_data, epdl->extent_size);
                 internal_fatal(epdl->extent_size != pgc_page_data_size(extent_cache, extent_cache_page),
                                "DBENGINE: cache size does not match the expected size");
             }