Skip to content

Commit cb23cdf

Browse files
committed
added space efficiency info
1 parent b476b68 commit cb23cdf

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

src/tools/raid-calculator/raid-calculator.service.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ const raidCalculations = {
1111
// total disks * size
1212
return (num * size) * unit;
1313
},
14+
efficiency(num) {
15+
// uses 100% of space
16+
return 100;
17+
},
1418
fault(num, size, unit) {
1519
return 'None';
1620
},
@@ -25,6 +29,10 @@ const raidCalculations = {
2529
// total size is size of a single drive
2630
return size * unit;
2731
},
32+
efficiency(num) {
33+
// 1/N
34+
return (1 / num) * 100;
35+
},
2836
fault(num, size, unit) {
2937
// FT = total - 1
3038
return `${num - 1} drive failures`;
@@ -40,6 +48,10 @@ const raidCalculations = {
4048
// (N-1) * S (one drive for parity)
4149
return ((num - 1) * size) * unit;
4250
},
51+
efficiency(num) {
52+
// 1 - (1/N)
53+
return (1 - (1 / num)) * 100;
54+
},
4355
fault(num, size, unit) {
4456
// always 1 failure
4557
return '1 drive failure';
@@ -55,6 +67,10 @@ const raidCalculations = {
5567
// (N-2) * S (2 parity)
5668
return ((num - 2) * size) * unit;
5769
},
70+
efficiency(num) {
71+
// 1 - (2/N)
72+
return (1 - (2 / num)) * 100;
73+
},
5874
fault(num, size, unit) {
5975
// always 2 drive failures
6076
return '2 drive failures';
@@ -70,6 +86,10 @@ const raidCalculations = {
7086
// Total disks (stripe)/2 (mirror)
7187
return ((num * size) / 2) * unit;
7288
},
89+
efficiency(num) {
90+
// 1/2 (1/strips per stripe, 2 in this case)
91+
return 50;
92+
},
7393
fault(num, size, unit) {
7494
// one per mirror
7595
return '1 drive failure per mirrored set';

src/tools/raid-calculator/raid-calculator.vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ const calculatedFaultTolerance = computed(() => {
2828
return raidCalculations[raidType.value].fault(diskTotal.value, diskSize.value, diskUnit.value);
2929
});
3030
31+
const calculatedSpaceEfficiency = computed(() => {
32+
return raidCalculations[raidType.value].efficiency(diskTotal.value);
33+
});
34+
3135
function validateSetup() {
3236
// validate the selected RAID type against parameters
3337
return raidCalculations[raidType.value].validate(diskTotal.value, diskSize.value);
@@ -90,10 +94,18 @@ function validateSetup() {
9094
<td font-bold width="30%">
9195
Fault Tolerance
9296
</td>
93-
<td :value="calculatedFaultTolerance">
97+
<td>
9498
{{ calculatedFaultTolerance }}
9599
</td>
96100
</tr>
101+
<tr>
102+
<td font-bold width="30%">
103+
Space Efficiency
104+
</td>
105+
<td>
106+
{{ calculatedSpaceEfficiency }}%
107+
</td>
108+
</tr>
97109
</tbody>
98110
</n-table>
99111
</c-card>

0 commit comments

Comments
 (0)