blob: 34c135cbdab1bdbdd0ea057ddebc2c3f37b6112a [file] [view]
# 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?