Hi folks,

Thanks everyone who joined the Community Meeting about Persistence
Improvements Proposal.

Here's the record:

https://drive.google.com/file/d/1I26D1teNMdhhLe-o7ymG146AQ3GWU5zO/view?usp=sharing

Sorry, I had to drop before the end due to another meeting.

I would like to use this email for a sum-up and proposal to move forward.

1. Abstract

The initial goal is to be able to support new storage backends (RDBMS
and NoSQL), focusing on the persistence layer and without changing the
Polaris entities/model.
That's the general goal.

2. Approved changes/proposals

To achieve the goal from 1, we identified three action items:
a. Refactor the persistence "core" layer (PolarisMetaStoreManager,
PolarisMetaStoreSession, ...) in order to be able to support SQL/NoSQL
backends via interfaces.
b. Provide JDBC (PostgreSQL) backend without EclipseLink using the
interfaces from (a).
c. Provide MongoDB backend using the interfaces from (a).

The focus for Polaris 1.0.0 is a and b (c would be good to have but
not a blocker).

3. Current status

Dennis worked on (a) and it's now merged.
We have basically two "paths" to implement a persistence backend.

Prashanth is working on the JDBC backend based on (a).

Robert is working on the MongoDB backend based on (a).

However, several questions popped up during the meeting yesterday:
- About (2.a), can we clarify how to create a backend ? Which path
should be used ? What should the contributor do to implement a backend
?
- About (2.c), the current proposal/PR is larger than just the MongoDB
support: it introduces a NessieAdapter, able to support other backends
(DynamoDB, etc). The question was: it's more than just MongoDB
support, "pushing" for a new data model.

4. Next steps

I propose to split the next steps in two parts:

a. Short term (e.g. for 1.0.0 release), I propose to move forward
according to the plan we discussed a while ago (1). It means, with 2.a
now merged, 2.b and 2.c should *only* focus on JDBC and MongoDB
(nothing else).

b. Regarding the (c) and NessieAdapter, I think it needs more
discussion with the community about that, especially a discussion
about the Polaris model and also if NessieAdapterMetaStoreManager can
replace the MetaStoreManager. I'm concerned that we have different
paths/approaches here: how to test, maintain, verify ? What message do
we send to persistence backend contributors ? We need a clear
discussion and consensus there.

Thoughts ?

Regards
JB

Reply via email to