Skip to content

Conversation

@snazy
Copy link
Member

@snazy snazy commented Mar 17, 2025

Mostly complete proposal for the database agnostic persistence layer to support NoSQL databases in Apache Polaris.

This PR is intended to illustrate the “whole spiel” and contains all necessities. Smaller, easier reviewable PRs will be opened soon for some of the areas covered in this PR to initially enable MongoDB persistence.

The overall approach borrows the architectural approach from Nessie to isolate database specifics from higher level concerns.

The most important objective for the implementation is correctness, especially in scenarios with high concurrent load. Explicit tests to verify the correctness are included, for the CI “use case” and for manual/special runs against a clustered database setup (which are just “too much” for the Github hosted runners).

The current integration point is MetaStoreManagerFactory/PolarisMetaStoreManager implemented in the “bridge” Gradle project.

See components/persistence/README.md in this PR for more technical information.

To run Polaris w/ the “dummy” in-memory “database”:

./gradlew quarkusBuild
java -jar -Djava.security.manager=allow \
  -Dpolaris.persistence.type=persistence \
  -jar quarkus/server/build/quarkus-app/quarkus-run.jar

To run Polaris against MongoDB:

docker run --publish 27017:27017 --rm -ti mongo:8.0.5
./gradlew quarkusBuild
java -jar -Djava.security.manager=allow \
  -Dpolaris.persistence.type=persistence \
  -Dpolaris.backend.name=MongoDb \
  -Dquarkus.mongodb.connection-string=mongodb://localhost:27017 \
  -jar quarkus/server/build/quarkus-app/quarkus-run.jar

@github-project-automation github-project-automation bot moved this to PRs In Progress in Basic Kanban Board Mar 17, 2025
@snazy snazy force-pushed the persistence-nosql branch 5 times, most recently from 71814d8 to c12b122 Compare March 19, 2025 08:43
@snazy snazy force-pushed the persistence-nosql branch 5 times, most recently from 499528e to be15e39 Compare March 20, 2025 19:26
@snazy snazy force-pushed the persistence-nosql branch 14 times, most recently from fba1990 to b332065 Compare March 27, 2025 18:02
@snazy snazy force-pushed the persistence-nosql branch from b332065 to 51f58c5 Compare March 28, 2025 09:18
@snazy snazy force-pushed the persistence-nosql branch 3 times, most recently from 57a6264 to d580d20 Compare October 29, 2025 10:38
@snazy snazy force-pushed the persistence-nosql branch 9 times, most recently from 79cc2b5 to 3027d6c Compare November 3, 2025 16:07
@dimas-b dimas-b mentioned this pull request Nov 3, 2025
@snazy snazy force-pushed the persistence-nosql branch 6 times, most recently from 9743ac0 to 7ed1e5f Compare November 5, 2025 09:43
@snazy snazy force-pushed the persistence-nosql branch 7 times, most recently from b084ba2 to ef402e6 Compare November 7, 2025 16:27
@snazy snazy force-pushed the persistence-nosql branch from ef402e6 to 176db92 Compare November 7, 2025 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants