Suffix sorting takes up a majority significant portion of diffing time (the only more significant being compression). We currently use the SACA-K algorithm to perform this step, which works fine. However, it is strictly single-threaded, severely limiting the speed of diffing.
Another suffix sorting algorithm partially by the same author exists called pSACAK, which is essentially a parallelizable version of SACA-K. We should investigate the feasibility of implementing pSACAK and using it in our suffix sorting library instead of SACA-K for the significant performance gains it theoretically provides.
Suffix sorting takes up a
majoritysignificant portion of diffing time (the only more significant being compression). We currently use the SACA-K algorithm to perform this step, which works fine. However, it is strictly single-threaded, severely limiting the speed of diffing.Another suffix sorting algorithm partially by the same author exists called pSACAK, which is essentially a parallelizable version of SACA-K. We should investigate the feasibility of implementing pSACAK and using it in our suffix sorting library instead of SACA-K for the significant performance gains it theoretically provides.