Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apache/polaris
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: apache/polaris
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: persistence-poc
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 16 commits
  • 36 files changed
  • 1 contributor

Commits on Feb 24, 2025

  1. Remove all tightly coupled EntityCache dependencies in the main persi…

    …stence stack
    
    Remove the EntityCacheEntry wrapper since the timestamp fields were never used anyways;
    instead the underlying Caffeine cache transparently handles access times, and the
    types of entries we cache are simply the existing ResolvedPolarisEntity.
    
    Remove interactions of business logic with explicit "cache entries", instead
    operating on ResolvedPolarisEntity. Fix the equals()/hashCode() behavior of
    PolarisEntity to be compatible with PolarisBaseEntity as intended.
    
    Improve code comments to explain the (current) relationship between PolarisEntity
    and PolarisBaseEntity, and clarify the behaviors in Resolver.java.
    
    Fully remove the PolarisRemoteCache interface and its methods. Add different
    methods that aren't cache-specific instead.
    dennishuo committed Feb 24, 2025
    Copy the full SHA
    efbb666 View commit details
  2. Add support for actually giving null EntityCache to Resolver; paramet…

    …erize ResolverTest
    dennishuo committed Feb 24, 2025
    Copy the full SHA
    04a636e View commit details
  3. Remove PolarisMetaStoreSession from FileIOFactory/FileIOUtil in favor…

    … of CallContext
    
    This appeared to be some leaky divergence that occurred after CallContext had been
    removed, but PolarisMetaStoreSession really is only a low-level implementation detail
    that should never be handled by BasePolarisCatalog/FileIOFactory.
    
    This plumbs CallContext explicitly into the FileIOFactory and FileIOUtil methods and
    thus removes a large source of CallContext.getCurrentContext calls; now the threadlocal
    doesn't have to be set at all in BasePolarisCatalogTest.
    dennishuo committed Feb 24, 2025
    Copy the full SHA
    31a837b View commit details

Commits on Feb 25, 2025

  1. Copy the full SHA
    dc820d7 View commit details
  2. Restructure persistence class hierarchy and remove vestigial interfaces

    Extract a basic abstract base class BaseMetaStoreManager which can
    hold shared logic between implementations of PolarisMetaStoreManager
    dennishuo committed Feb 25, 2025
    Copy the full SHA
    7d8942f View commit details
  3. Remove all "entitiesDropped" members; these were vestigial from tryin…

    …g to implement UNDROP
    
    but for now are entirely unused. We can reintroduce it with a better design against multiple
    backends when/if we want to implement UNDROP.
    dennishuo committed Feb 25, 2025
    Copy the full SHA
    54b762e View commit details
  4. Extract BasePersistence interface as parent interface of PolarisMetaS…

    …toreSession;
    
    only leave the transaction-specific methods in PolarisMetaStoreSession
    dennishuo committed Feb 25, 2025
    Copy the full SHA
    c7c9c45 View commit details

Commits on Feb 26, 2025

  1. Merge branch 'main' of github.com:dennishuo/polaris into dhuo-persist…

    …ence-poc-extract-abstract-base
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    db9e71d View commit details
  2. Push all evidence of the two-phase lookupEntityByName into only the t…

    …ransactional-style
    
    PolarisMetaStoreSession, so that BasePersistence properly exposes a lookupEntityByName
    method where impls that use secondary indexes can easily just lookup an entity by name
    instead of doing two lookups.
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    87a8010 View commit details
  3. Turn PolarisMetaStoreSession into an abstract class and make lookupEn…

    …tityActive
    
    protected-visibility; remove all callsites where PolarisMetaStoreManagerImpl
    calls it. Technically, while in the same package this doesn't prevent
    it from leaking, but we could reposition PolarisMetaStoreSession into
    a separate transaction-specific package to help protect it from leaking
    the lower-level abstractions.
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    13ba161 View commit details
  4. Pushdown all calls to writeToEntities into PolarisMetaStoreSession, a…

    …nd add
    
    writeEntity method to BasePersistence, with a default impl in PolarisMetaStoreSession
    containing what was previously in PolarisMetaStoreManagerImpl. This now protects
    all writes in PolarisMetaStoreManagerImpl from dealing with the three-table
    implementation detail. Technically slightly changes the ordering of updates
    within a transaction for renameEntity, but is arguably a more correct ordering,
    and the ordering doesn't interleave reads anyways.
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    5743dd2 View commit details
  5. Add originalEntity to the writeEntity method to enable compare-and-sw…

    …ap behavior
    
    from the underlying BasePersistence.
    
    Pushdown all the deleteFromEntities* methods into PolarisMetaStoreSession and
    add deleteEntity to BasePersistence which encapsulates handling the separate slices.
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    b739fd1 View commit details
  6. Break out external-integration related methods from BasePersistence i…

    …nto a new
    
    IntegrationPersistence interface; these methods encapsulate certain type-specific
    behaviors that are indirectly tied to persistence entities, such as principal
    secrets, storage integrations, etc.
    dennishuo committed Feb 26, 2025
    Copy the full SHA
    b52a4af View commit details

Commits on Feb 27, 2025

  1. Improve javadoc comments, rename PolarisEntityActiveRecord to EntityN…

    …ameLookupRecord,
    
    remove unused method
    dennishuo committed Feb 27, 2025
    Copy the full SHA
    f9c1fd7 View commit details
  2. Rename PolarisMetaStoreSession to TransactionalPersistence and move i…

    …nto a new package "transactional".
    dennishuo committed Feb 27, 2025
    Copy the full SHA
    f0f06ad View commit details
  3. Also move the PolarisTreeMap* classes into the transactional package

    dennishuo committed Feb 27, 2025
    Copy the full SHA
    ea0a90f View commit details
Loading