BUSINESS DATAPARTITIONING
This app implements Data Partitioning and sorting algorithm based on three disk and RAM sources and CPUs.
- Spring Boot 2.2.2.RELEASE
- Java 8
- H2 Embeded Database
- Data Partitioning
- Redistribute
- RoundRobin
- ParallelBinaryMerge
- ParallelMergeAll
- ParallelPartitionedSort
- ParallelRedistributionBinaryMerge
- ParallelRedistributionMergeAll
- ParallelSort
- 1) Local merge Sort => Cost = I/O Cost + CPU Cost + Communication Cost
I/O Cost:
I/O Cost = Load Cost = (Ri/P) * Number of passes * IO
CPU Cost = Select cost + Sorting cost + Merging cost + Generation result cost
Select cost = |Ri| * Number of passes * (tr + tw)
Sorting cost = |Ri| * ⌈ Log2( |Ri| ) ⌉ * ts
Merging cost = |Ri| * ( Number of passes - 1) * tm
Generation result cost = |Ri| * Number of passes * tw
Communication cost
Communication cost = (Ri / P) * (mp + ml)
-2) Final merging => Cost = Communication Cost + I/O Cost + CPU Cost
Communication cost
Communication cost = (R / P) * mp
I/O Cost:
Save Cost = (R / P) * (Number of passes + 1) * IO
Load Cost = (R / P) * Number of passes * IO
CPU Cost = Select cost + Merging cost + Generation result cost
Select cost = |R| * Number of passes * (tr + tw)
Merging cost = |R| * Number of passes * tm
Generation result cost = |R| * Number of passes * tw