From 36b81b27703d298f016180a71c85113d5c90c6b1 Mon Sep 17 00:00:00 2001
From: danielhanrahan <daniel.hanrahan@est.tech>
Date: Thu, 17 Aug 2023 14:58:30 +0100
Subject: Enable hibernate write batching

- Implement fragment ID sequence generator with allocation size of 100
- Enable write batching for insert and update, with batch size of 100
- Write performance is over 2x faster

Issue-ID: CPS-1795
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I7ebd0f834abb57c593603e2cd3fafc7e3425ab1e
---
 .../db/changes/22-fragment-id-sequence-forward.sql   | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 cps-ri/src/main/resources/changelog/db/changes/22-fragment-id-sequence-forward.sql

(limited to 'cps-ri/src/main/resources/changelog/db/changes/22-fragment-id-sequence-forward.sql')

diff --git a/cps-ri/src/main/resources/changelog/db/changes/22-fragment-id-sequence-forward.sql b/cps-ri/src/main/resources/changelog/db/changes/22-fragment-id-sequence-forward.sql
new file mode 100644
index 000000000..7f8d686c7
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/22-fragment-id-sequence-forward.sql
@@ -0,0 +1,20 @@
+/*
+   ============LICENSE_START=======================================================
+    Copyright (C) 2024 Nordix Foundation.
+   ================================================================================
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+        http://www.apache.org/licenses/LICENSE-2.0
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   SPDX-License-Identifier: Apache-2.0
+   ============LICENSE_END=========================================================
+*/
+
+ALTER TABLE fragment ALTER COLUMN id DROP IDENTITY;
+CREATE SEQUENCE fragment_id_seq INCREMENT BY 100 START WITH 100;
+SELECT setval('fragment_id_seq', (SELECT ((max(id) / 100) + 1) * 100 FROM fragment), TRUE);
-- 
cgit 1.2.3-korg

