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 7 times, most recently from 5d1081b to 33082be Compare December 20, 2025 13:14
@snazy snazy force-pushed the persistence-nosql branch 2 times, most recently from a40ccbb to 87fbe55 Compare December 25, 2025 09:58
@snazy snazy force-pushed the persistence-nosql branch 13 times, most recently from 5841703 to 734fef6 Compare January 12, 2026 09:55
@snazy snazy force-pushed the persistence-nosql branch 3 times, most recently from 8ebfa34 to 28e852b Compare January 19, 2026 18:20
@snazy snazy force-pushed the persistence-nosql branch 2 times, most recently from 3b2e589 to 1610d06 Compare January 21, 2026 17:44
@snazy snazy force-pushed the persistence-nosql branch from 1610d06 to beaf311 Compare January 23, 2026 09:53
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