Use recursive SQL to fetch descendants in CpsPath queries (CPS-1664 #4) 75/134475/8
authordanielhanrahan <daniel.hanrahan@est.tech>
Wed, 3 May 2023 18:51:27 +0000 (19:51 +0100)
committerdanielhanrahan <daniel.hanrahan@est.tech>
Thu, 4 May 2023 15:43:17 +0000 (16:43 +0100)
commitd94dd78ad001d72182133f7681b979d730698d83
tree0db40dc7a064dcd9b5f5a869f74b6b96ac339f45
parent7fd71f5bd31fa0e4faf07cd296be665017a59c77
Use recursive SQL to fetch descendants in CpsPath queries (CPS-1664 #4)

- Add recursive SQL method to fetch descendants from queries.
  This changes worst-case complexity from quadratic to linear,
  resulting in extremely large performance increase for large
  number of datanodes.
- Remove RegexQuickFind algorithm as it is no longer faster.
- Updated query performance test timings

Issue-ID: CPS-1664
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: If5f0b54a88af1cb681006bbeca7043345dcdc8da
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java
cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentQueryBuilder.java
cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentRepository.java
integration-test/src/test/groovy/org/onap/cps/integration/performance/cps/QueryPerfTest.groovy