Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. replace all ElementCollections with Converters:
    • A lot of small Jsons
    • Using longtext, we are be able to maintain compatibility with MariaDB
    • Small Json instead of Java binary code
    • compatible with H2, MariaDB and PostreSql
    • it impacts only onap/policy/models, persistence classes used into ElementCollections have to change to a Medium Java code impact: several persistence classes could be removed and replace with Document oriented classes
    • 50% of tables (with postfix as _ATTRIBUTES, _PROPERTIES, _METADATA, _OCCURRENCES, _CONSTRAINTS, _TARGETS, _TRIGGERS and _INPUTS) will be removed
    • Unit tests need to change at model level only onap/policy/models 
  2. Unique Json String:
    • One big Json for each model (e.g. saving the whole ToscaServiceTemplace as Json)
    • Using jsonb, only PostgreSQL will be supported
    • compatible only with PostreSql
    • it impacts onap/policy/models and all applications related (runtime-acm, api and pap), persistence classes have to change to a Medium Java code impact: all persistence classes could be removed and replace with Document oriented classes
    • 90% of tables will be removed
    • Unit tests need PostgreSQLContainer (is not compatible with H2)
  3. MongoDB/Cassandra
    • Document oriented approach full supported by SpringBoot (not needs Converters)
    • Huge Java code impact: All repositories and all it impacts onap/policy/models and all applications related (runtime-acm, api and pap), and all repositories and persistence classes have to change to a Document oriented classes
    • No support for MariaDB and PostgreSQL anymorecompatible only with MongoDB/Cassandra (MongoDB and Cassandra are not compatible to each other)
    • Unit tests need an Embedded Cassandra Server (example for cassandra: EmbeddedCassandraServerHelper or CassandraContainer)

...