## 2 Related Work
Another algorithm based on the FP-growth algorithm is proposed in [17]. This approach is a divide-and-conquer methodology which consists of two stages, namely, a mapper part and a reduce phase. In the mapper part, the database is converted into new databases of group-dependent transactions. In the reduce phase, the FP tree is constructed and mined recursively. During this process,patterns are also discovered. [PERSON] et al. [19] proposed a novel idea: The utilization of SQL-based frequent pattern mining while using the FP-growth algorithm. The algorithm uses an FP table to store the related data that comprise items, counts, and paths. In the FP-tree construction process, it decides each field path after comparing the already existing paths. If the path already exists, then the algorithm will update the FP table and increase the item's count by 1, but if not, then it will only update the FP table. To improve efficiency, the algorithm uses a temporary table to store the FP tree, and it also uses SQL queries to generate the FP tree. This method can get efficient performance and also speed up the construction of the FP tree. In order to reduce the memory consumption of FP-growth, [PERSON] et al. [20] proposed the CFP-growth algorithm. It uses order of magnitude to overcome the problem of tree size. [PERSON] et al. [21] proposed the parallel FP-tree (PFP) algorithm, which is based on the FP-tree data structure. This method uses the special tree exchange technique to reduce the execution time problem of the FP-tree algorithm. However, the PFP algorithm continues to experience the execution time issue when the number of the processors increases. In addition to scanning the entire database, [PERSON] et al. [22] used a tidset to exchange information in cluster computing environments. Subsequently, the extension method, known as the balanced tidset parallel algorithm (BTP-tree) [23], was derived from the TPFP [22] algorithm. The results show the BTP-tree to have better performance than the TPFP and PFP algorithms. Several research approaches now use distributed and parallel systems to solve big data problems. One such system that has recently become popular is Hadoop, an open-source software framework that some authors [24; 25] have used to improve performance. In [9], [PERSON] et al. proposed the CARM algorithm, which consists of high-workability distributed FP-mine (HD-mine) and fast distributed FP-mine (FD-mine). HD-mine splits data for easy mining and then merges the results of computing nodes to discover frequent patterns. The main drawback of HD-mine is its inefficiency. Therefore, FD-mine is proposed to solve this problem. Given that FD-mine occupies more memory than HD-mine, HD-mine is first used to discover frequent patterns. If HD-mine fails, we will use FD-mine in the entire mining process. The CARM algorithm also has privacy-preserved abilities. [PERSON] et al. proposed the following five methods: equal working set (EWS), request on demand (ROD), small-size working set (SSWS), progressive size working set (PSWS), and FLR-mining algorithms. These five algorithms are all based on the CARM algorithm (as we mentioned above). The EWS algorithm first establishes the header table and the FP tree through the database. Then the EWS algorithm assigns each computing node to deal with a 1/Nth part of the working set, where N is the number of computing nodes. The drawback of the EWS algorithm is that the required mining time is uncertain, it can have unbalanced workloads. As a result, the ROD algorithm was created to solve the unbalanced workload shortcoming of the EWS algorithm. The ROD method can reduce the idle time because the kernel node assigns a new task to each computing node when it finishes its previous task. However, the kernel node needs to examine idle computing nodes and also dispatch work; therefore, this process normally uses longer transmission times. To overcome the problems of the EWS and ROD algorithms, a method called SSWS was proposed.