Files that are both large and changed often are where bugs tend to cluster and where refactoring pays off first. Each file in the current tree is placed by its size and by the number of commits that changed it; its hotspot score is changes × √lines. Files without counted lines, such as binary files, are left out.
Each dot is a file; a bigger dot is a higher score. The dashed lines mark the median file size and the median number of changes, so the large files that change often are in the top right. Both axes are logarithmic. Showing the 2,000 highest-scoring of 41,951 files.
The files ranked by hotspot score: the larger a file is and the more often it changes, the higher it ranks. Authors is how many people have changed the file, bots aside, as on the Code Ownership page: a hotspot only one person has changed is also a bus-factor risk.
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java | 10,388 | 690 | 113 | 70,325.9 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java | 6,900 | 819 | 110 | 68,031.2 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java | 7,902 | 564 | 115 | 50,135.8 | |
| be/src/common/config.h | 2,227 | 900 | 128 | 42,472.0 | |
| fe/fe-common/src/main/java/org/apache/doris/common/Config.java | 3,944 | 623 | 116 | 39,125.2 | |
| be/src/common/config.cpp | 2,715 | 665 | 88 | 34,650.3 | |
| fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java | 6,280 | 395 | 90 | 31,302.3 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 2,578 | 537 | 106 | 27,265.6 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java | 4,017 | 427 | 57 | 27,063.2 | |
| fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java | 4,341 | 392 | 96 | 25,827.4 |
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java | 10,388 | 690 | 113 | 70,325.9 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java | 6,900 | 819 | 110 | 68,031.2 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java | 7,902 | 564 | 115 | 50,135.8 | |
| be/src/common/config.h | 2,227 | 900 | 128 | 42,472.0 | |
| fe/fe-common/src/main/java/org/apache/doris/common/Config.java | 3,944 | 623 | 116 | 39,125.2 | |
| be/src/common/config.cpp | 2,715 | 665 | 88 | 34,650.3 | |
| fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java | 6,280 | 395 | 90 | 31,302.3 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 2,578 | 537 | 106 | 27,265.6 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java | 4,017 | 427 | 57 | 27,063.2 | |
| fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java | 4,341 | 392 | 96 | 25,827.4 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java | 3,897 | 394 | 75 | 24,595.8 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java | 4,322 | 360 | 86 | 23,667.1 | |
| be/src/agent/task_worker_pool.cpp | 2,628 | 305 | 79 | 15,635.5 | |
| be/src/runtime/fragment_mgr.cpp | 1,416 | 412 | 62 | 15,503.5 | |
| gensrc/thrift/FrontendService.thrift | 2,157 | 333 | 97 | 15,465.7 | |
| be/src/service/internal_service.cpp | 2,352 | 309 | 70 | 14,985.7 | |
| fe/pom.xml | 2,316 | 311 | 74 | 14,966.8 | |
| cloud/test/meta_service_test.cpp | 16,204 | 117 | 23 | 14,893.5 | |
| regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy | 4,006 | 235 | 57 | 14,873.8 | |
| fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java | 4,268 | 224 | 70 | 14,633.9 | |
| thirdparty/build-thirdparty.sh | 2,878 | 270 | 73 | 14,484.7 | |
| build.sh | 1,773 | 320 | 81 | 13,474.2 | |
| gensrc/thrift/PlanNodes.thrift | 1,859 | 303 | 87 | 13,064.2 | |
| cloud/src/recycler/recycler.cpp | 8,736 | 135 | 17 | 12,618.0 | |
| fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java | 2,060 | 263 | 66 | 11,936.8 | |
| cloud/src/meta-service/meta_service.cpp | 6,358 | 148 | 23 | 11,801.1 | |
| be/CMakeLists.txt | 1,202 | 332 | 86 | 11,510.4 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java | 3,130 | 202 | 68 | 11,301.2 | |
| fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java | 2,656 | 210 | 65 | 10,822.6 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/CommandVisitor.java | 1,562 | 255 | 42 | 10,078.1 | |
| cloud/test/recycler_test.cpp | 11,694 | 93 | 16 | 10,056.9 | |
| be/src/runtime/exec_env_init.cpp | 1,131 | 295 | 73 | 9,921.0 | |
| fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java | 2,448 | 186 | 62 | 9,202.8 | |
| fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java | 2,849 | 172 | 53 | 9,180.7 | |
| be/src/runtime/runtime_state.h | 1,089 | 278 | 60 | 9,174.0 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java | 1,910 | 199 | 62 | 8,697.0 | |
| fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java | 3,305 | 149 | 42 | 8,565.9 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java | 630 | 325 | 47 | 8,157.4 | |
| fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java | 1,836 | 186 | 38 | 7,969.8 | |
| gensrc/proto/cloud.proto | 2,559 | 154 | 29 | 7,790.3 | |
| fe/fe-core/pom.xml | 1,203 | 223 | 53 | 7,734.6 | |
| be/src/cloud/cloud_meta_mgr.cpp | 2,787 | 146 | 37 | 7,707.6 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java | 1,868 | 178 | 24 | 7,693.2 | |
| gensrc/thrift/PaloInternalService.thrift | 832 | 265 | 65 | 7,643.8 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java | 1,241 | 213 | 68 | 7,503.5 | |
| be/test/io/cache/block_file_cache_test.cpp | 11,335 | 70 | 18 | 7,452.6 | |
| fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java | 2,178 | 153 | 43 | 7,140.4 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java | 1,346 | 193 | 41 | 7,080.8 | |
| cloud/src/meta-service/meta_service_txn.cpp | 5,515 | 95 | 23 | 7,055.0 | |
| be/src/cloud/cloud_tablet.cpp | 2,276 | 147 | 38 | 7,013.0 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/PlanType.java | 494 | 309 | 62 | 6,867.9 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java | 2,604 | 131 | 32 | 6,684.9 | |
| gensrc/proto/internal_service.proto | 1,296 | 177 | 57 | 6,372.0 | |
| fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java | 3,098 | 114 | 29 | 6,345.2 | |
| fe/fe-core/src/main/java/org/apache/doris/tablefunction/MetadataGenerator.java | 2,445 | 124 | 38 | 6,131.4 | |
| fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java | 1,607 | 152 | 59 | 6,093.3 | |
| thirdparty/vars.sh | 744 | 220 | 62 | 6,000.8 | |
| fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java | 792 | 210 | 63 | 5,909.9 | |
| fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java | 2,852 | 104 | 26 | 5,554.0 | |
| cloud/src/meta-service/meta_service_resource.cpp | 5,288 | 76 | 12 | 5,526.6 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java | 1,767 | 131 | 23 | 5,506.7 | |
| be/src/runtime/runtime_state.cpp | 749 | 201 | 49 | 5,500.9 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java | 981 | 172 | 29 | 5,387.2 | |
| be/src/runtime/exec_env.h | 619 | 215 | 69 | 5,349.1 | |
| fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java | 1,106 | 156 | 32 | 5,188.0 | |
| be/src/io/cache/block_file_cache.cpp | 2,995 | 94 | 16 | 5,144.3 | |
| be/src/common/status.h | 771 | 185 | 57 | 5,136.9 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java | 1,869 | 113 | 34 | 4,885.2 | |
| gensrc/proto/olap_file.proto | 924 | 158 | 53 | 4,802.8 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java | 1,130 | 142 | 44 | 4,773.4 | |
| fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java | 1,142 | 141 | 44 | 4,764.9 | |
| fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java | 1,696 | 114 | 37 | 4,694.8 | |
| regression-test/data/nereids_function_p0/scalar_function/Array.out | 16,981 | 36 | 16 | 4,691.2 | |
| gensrc/thrift/Types.thrift | 702 | 177 | 73 | 4,689.7 | |
| be/src/service/backend_service.cpp | 1,319 | 128 | 49 | 4,648.7 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindExpression.java | 2,097 | 101 | 30 | 4,625.1 | |
| fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java | 1,300 | 127 | 32 | 4,579.1 | |
| fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Auth.java | 2,425 | 92 | 29 | 4,530.5 | |
| be/src/service/doris_main.cpp | 884 | 147 | 57 | 4,370.6 | |
| fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java | 1,381 | 117 | 39 | 4,347.9 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java | 1,678 | 104 | 39 | 4,260.2 | |
| docker/thirdparties/run-thirdparties-docker.sh | 2,029 | 94 | 26 | 4,234.2 | |
| fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java | 1,403 | 113 | 41 | 4,232.6 | |
| fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java | 1,050 | 129 | 52 | 4,180.1 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java | 1,386 | 112 | 31 | 4,169.7 | |
| fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java | 2,503 | 82 | 37 | 4,102.5 | |
| fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java | 1,242 | 116 | 15 | 4,088.1 | |
| fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java | 1,055 | 125 | 35 | 4,060.1 | |
| fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java | 1,896 | 92 | 35 | 4,006.0 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java | 1,192 | 116 | 47 | 4,004.9 | |
| be/src/storage/segment/segment_iterator.cpp | 3,795 | 65 | 19 | 4,004.2 | |
| gensrc/thrift/AgentService.thrift | 678 | 141 | 61 | 3,671.4 | |
| fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java | 2,043 | 81 | 33 | 3,661.2 | |
| be/src/cloud/cloud_storage_engine.cpp | 1,662 | 89 | 33 | 3,628.3 | |
| thirdparty/download-thirdparty.sh | 815 | 127 | 42 | 3,625.6 | |
| be/src/common/daemon.cpp | 669 | 140 | 33 | 3,621.1 | |
| regression-test/suites/statistics/analyze_stats.groovy | 2,991 | 66 | 14 | 3,609.5 | |
| fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java | 991 | 114 | 31 | 3,588.7 | |
| fe/fe-core/src/main/java/org/apache/doris/job/extensions/mtmv/MTMVTask.java | 2,003 | 80 | 18 | 3,580.4 | |
| fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java | 1,036 | 111 | 47 | 3,572.8 |
How Apache Doris compares with other open source projects from China →
How Apache Doris ranks among open source projects from China by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true