facebook / kuduraft
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 9% duplication:
    • 118,218 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 11,027 duplicated lines
  • 4,510 duplicates
system9% (11,027 lines)
Duplication per Extension
h16% (5,239 lines)
cc5% (4,281 lines)
cmake40% (571 lines)
proto15% (474 lines)
mustache47% (346 lines)
c23% (70 lines)
adoc13% (32 lines)
py<1% (14 lines)
Duplication per Component (primary)
src/kudu/gutil25% (5,454 lines)
src/kudu/tools7% (1,200 lines)
src/kudu/rpc9% (1,012 lines)
src/kudu/util3% (992 lines)
src/kudu/consensus5% (909 lines)
cmake_modules40% (571 lines)
www38% (346 lines)
src/kudu/fs3% (247 lines)
src/kudu/security2% (110 lines)
src/kudu/common4% (70 lines)
src/kudu/tserver4% (47 lines)
ROOT13% (32 lines)
src/kudu/server1% (17 lines)
build-support/iwyu1% (14 lines)
src/kudu/thrift1% (6 lines)
build-support0% (0 lines)
build-support/release0% (0 lines)
build-support/jenkins0% (0 lines)
src/kudu/kserver0% (0 lines)
src/kudu/experiments0% (0 lines)
src/kudu/scripts0% (0 lines)
src/kudu/clock0% (0 lines)

Duplication Between Components (50+ lines)

G src/kudu/consensus src/kudu/consensus src/kudu/util src/kudu/util src/kudu/consensus--src/kudu/util 219 src/kudu/rpc src/kudu/rpc src/kudu/consensus--src/kudu/rpc 165 src/kudu/fs src/kudu/fs src/kudu/consensus--src/kudu/fs 117 src/kudu/server src/kudu/server src/kudu/consensus--src/kudu/server 117 src/kudu/security src/kudu/security src/kudu/consensus--src/kudu/security 117 src/kudu/tserver src/kudu/tserver src/kudu/consensus--src/kudu/tserver 117 src/kudu/tools src/kudu/tools src/kudu/consensus--src/kudu/tools 117 src/kudu/rpc--src/kudu/util 184 src/kudu/rpc--src/kudu/server 82 src/kudu/rpc--src/kudu/security 82 src/kudu/rpc--src/kudu/tserver 82 src/kudu/rpc--src/kudu/tools 82 src/kudu/common src/kudu/common src/kudu/common--src/kudu/consensus 152 src/kudu/common--src/kudu/util 144 src/kudu/common--src/kudu/rpc 101 src/kudu/fs--src/kudu/util 150 src/kudu/fs--src/kudu/rpc 82 ROOT ROOT ROOT--src/kudu/consensus 128 ROOT--src/kudu/util 144 ROOT--src/kudu/rpc 96 ROOT--src/kudu/common 64 src/kudu/server--src/kudu/util 136 src/kudu/security--src/kudu/util 136 src/kudu/tserver--src/kudu/util 136 src/kudu/tools--src/kudu/util 136

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 4,510 duplicates...
Size#FoldersFilesLinesCode
36 x 2 cmake_modules
cmake_modules
28:72 (34%)
113:158 (17%)
view
31 x 2 src/kudu/gutil
src/kudu/gutil
3467:3497 (1%)
3529:3559 (1%)
view
31 x 2 src/kudu/gutil
src/kudu/gutil/auxiliary
137:185 (16%)
119:171 (12%)
view
31 x 2 src/kudu/gutil/auxiliary
src/kudu/gutil/auxiliary
143:187 (24%)
285:329 (12%)
view
31 x 2 src/kudu/gutil
src/kudu/gutil
2906:2936 (1%)
2968:2998 (1%)
view
30 x 2 src/kudu/gutil
src/kudu/gutil
2348:2377 (<1%)
2408:2437 (<1%)
view
30 x 2 src/kudu/gutil
src/kudu/gutil
2930:2961 (<1%)
3491:3522 (<1%)
view
29 x 2 src/kudu/gutil
src/kudu/gutil
2872:2902 (<1%)
3433:3463 (<1%)
view
28 x 2 src/kudu/gutil
src/kudu/gutil
1832:1859 (<1%)
1886:1913 (<1%)
view
28 x 2 src/kudu/gutil
src/kudu/gutil
2372:2401 (<1%)
2931:2960 (<1%)
view
28 x 2 src/kudu/gutil
src/kudu/gutil
2818:2847 (<1%)
3379:3408 (<1%)
view
28 x 2 src/kudu/gutil
src/kudu/gutil
2372:2401 (<1%)
3492:3521 (<1%)
view
27 x 2 src/kudu/gutil
src/kudu/gutil
2316:2344 (<1%)
2873:2901 (<1%)
view
27 x 2 src/kudu/gutil
src/kudu/gutil
2316:2344 (<1%)
3434:3462 (<1%)
view
27 x 2 src/kudu/gutil
src/kudu/gutil
2768:2796 (<1%)
3329:3357 (<1%)
view
26 x 2 src/kudu/gutil
src/kudu/gutil
1990:2020 (1%)
2325:2355 (1%)
view
26 x 2 src/kudu/gutil
src/kudu/gutil
2264:2291 (<1%)
3380:3407 (<1%)
view
26 x 2 src/kudu/gutil
src/kudu/gutil
2264:2291 (<1%)
2819:2846 (<1%)
view
26 x 2 src/kudu/tools
src/kudu/tools
527:564 (1%)
882:919 (1%)
view
26 x 2 src/kudu/gutil
src/kudu/gutil
2405:2430 (<1%)
3526:3551 (<1%)
view
26 x 2 src/kudu/gutil
src/kudu/gutil
2725:2752 (<1%)
3286:3313 (<1%)
view
25 x 2 src/kudu/gutil
src/kudu/gutil
2216:2242 (<1%)
3330:3356 (<1%)
view
25 x 2 src/kudu/gutil
src/kudu/gutil
3361:3385 (<1%)
3415:3439 (<1%)
view
25 x 2 src/kudu/gutil
src/kudu/gutil
2684:2710 (<1%)
3245:3271 (<1%)
view
25 x 2 src/kudu/tools
src/kudu/tools
1326:1360 (1%)
1390:1424 (1%)
view
25 x 2 src/kudu/gutil
src/kudu/gutil
2216:2242 (<1%)
2769:2795 (<1%)
view
25 x 2 src/kudu/gutil
src/kudu/gutil
2800:2824 (<1%)
2854:2878 (<1%)
view
24 x 2 src/kudu/gutil
src/kudu/gutil
2175:2200 (<1%)
3287:3312 (<1%)
view
24 x 2 src/kudu/gutil
src/kudu/gutil
2246:2269 (<1%)
2298:2321 (<1%)
view
24 x 2 src/kudu/gutil
src/kudu/gutil
2175:2200 (<1%)
2726:2751 (<1%)
view
24 x 2 src/kudu/tools
src/kudu/tools
527:560 (1%)
988:1021 (1%)
view
24 x 2 src/kudu/tools
src/kudu/tools
882:915 (1%)
988:1021 (1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2408:2430 (<1%)
3467:3489 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2348:2370 (<1%)
3529:3551 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2348:2370 (<1%)
3467:3489 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2646:2670 (<1%)
3207:3231 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2136:2160 (<1%)
3246:3270 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
2136:2160 (<1%)
2685:2709 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
881:905 (<1%)
1315:1339 (<1%)
view
23 x 2 src/kudu/gutil
src/kudu/gutil
1945:1972 (1%)
2277:2304 (1%)
view
22 x 2 src/kudu/gutil
src/kudu/gutil
845:868 (<1%)
1277:1300 (<1%)
view
22 x 2 src/kudu/gutil
src/kudu/gutil
1680:1706 (1%)
1945:1971 (1%)
view
22 x 2 src/kudu/tools
src/kudu/tools
527:555 (1%)
787:815 (1%)
view
22 x 2 cmake_modules
cmake_modules
1:22 (43%)
1:22 (27%)
view
22 x 2 src/kudu/gutil
src/kudu/gutil
1680:1706 (1%)
2277:2303 (1%)
view
22 x 2 src/kudu/tools
src/kudu/tools
696:726 (1%)
1093:1123 (1%)
view
22 x 2 www
www
38:61 (15%)
32:55 (38%)
view
22 x 2 src/kudu/tools
src/kudu/tools
787:815 (1%)
882:910 (1%)
view
22 x 2 src/kudu/tools
src/kudu/tools
787:815 (1%)
988:1016 (1%)
view
22 x 2 src/kudu/gutil
src/kudu/gutil
1742:1763 (<1%)
1788:1809 (<1%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
11 x 2 src/kudu/gutil
src/kudu/gutil/auxiliary
332:345 
361:373 
view
11 x 2 src/kudu/gutil
src/kudu/gutil/auxiliary
349:362 
258:271 
view
9 x 2 src/kudu/gutil
src/kudu/gutil/auxiliary
319:330 
375:385 
view
7 x 3 src/kudu/consensus
src/kudu/consensus
src/kudu/consensus
51:61 
58:68 
72:82 
view
7 x 2 src/kudu/gutil
src/kudu/gutil/auxiliary
364:372 
273:281 
view