diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2023-10-18 17:20:00 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-18 17:20:00 +0300 |
commit | 9caea28bcda541558d0adf611a7f69aafed251cc (patch) | |
tree | fb035ecf81ae4f226c24a52e0a98593055289af6 /database/sqlite | |
parent | ee3db23972e92d35d8cfdbe1f0b50eb247747a31 (diff) |
Reuse ML load prepared statement (#16240)
Reuse ML load prepared statement and release resources on each batch load
Fix parameter to ML model load to be in seconds not usec
Diffstat (limited to 'database/sqlite')
-rw-r--r-- | database/sqlite/sqlite_metadata.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/database/sqlite/sqlite_metadata.c b/database/sqlite/sqlite_metadata.c index 54f9e3bedc..f0c102d97a 100644 --- a/database/sqlite/sqlite_metadata.c +++ b/database/sqlite/sqlite_metadata.c @@ -1539,13 +1539,20 @@ static void start_ml_model_load(uv_work_t *req __maybe_unused) RRDDIM *rd; RRDDIM_ACQUIRED *rda; internal_error(true, "Batch ML load loader, %zu items", ml_data->count); + + sqlite3_stmt *ml_load_stmt = NULL; while((PValue = JudyLFirstThenNext(ml_data->JudyL, &Index, &first))) { UNUSED(PValue); rda = (RRDDIM_ACQUIRED *) Index; rd = rrddim_acquired_to_rrddim(rda); - ml_dimension_load_models(rd); + ml_dimension_load_models(rd, &ml_load_stmt); rrddim_acquired_release(rda); } + + if (ml_load_stmt) { + sqlite3_finalize(ml_load_stmt); + ml_load_stmt = NULL; + } worker_is_idle(); } |