FE Core Module — Review Guide
Locking
- [ ] Metadata-locking paths avoid RPC, external IO, and journal waits while holding catalog/database/table locks?
- [ ] Multiple tables locked in ID-sorted order?
- [ ] Existing
tryLock(timeout) patterns preserved, not replaced with unbounded blocking? - [ ] No database/catalog locks taken inside broad
synchronized blocks or async callbacks? - [ ] Shared
Map/List traversals protected by locking, snapshots, or concurrent containers against ConcurrentModificationException?
Exceptions
- [ ] FE-common
AnalysisException (checked) vs Nereids' AnalysisException (unchecked) distinguished correctly? - [ ] User-visible errors use
ErrorReport/ErrorCode with custom codes starting at 5000? - [ ] RPC boundaries convert to
TStatusCode/PStatus, not leaking Java exceptions?
Visible Version
- [ ]
OlapTable.getVisibleVersion() respects cloud/non-cloud split: local in shared-nothing, RPC+TTL cache in cloud? - [ ] Cloud
VERSION_NOT_FOUND normalized to PARTITION_INIT_VERSION — “missing” and version 1 intentionally indistinguishable?