最后修改时间:2020-03-19 14:05:39
还记得我写过得上一篇关于倾斜处理的终极优化方案:倾斜处理终极优化方案。
经过这段时间的用户反馈,看来我还是高兴的太早了,这篇文章虽然解决了处理基础架构问题和最终的效率问题,但是依然有大量的数据处理不出来。
1,主要反馈的问题是 崩溃 ,这就是所谓的致命问题,也让我很崩溃。
由于倾斜数据庞大,动辄几十G,几百G,所以倾斜处理是个慢过程,给我们解决bug带来了相当大的麻烦:1,用户不愿意或者不能够提供给我们出错的数据。2,每处理一遍好几个小时的等待,就为了崩溃那一下,这调试起来效率有多低。
为了解决这个问题,我们再次优化处理方案,我们的倾斜处理分为两个过程:1)osgb对b3dm的一对一转换。2)对于顶层块的重建(以前版本的海量模式)。而我们发现几乎所有的崩溃都是由于重建过程出错的,为了解决这个错误。我们就修改代码能够只进行顶层合并处理(原来的代码必须完成一对一转换后才能合并),加速排查问题。所以这一版更新后,你们会发现倾斜处理V3界面上用户可以选择勾选这两个过程,也就意味着其实我们代码内部已经完全分离两个过程的耦合性。
倾斜处理的两个过程
经过若干个熬夜,终于我们排查出一些问题,重建过程中有一定的内存泄露,导致内存占用严重,最终导致程序崩溃,现在已经修复了内存泄漏,降低了内存的使用量。并且优化了重建过程,重建速度至少翻倍。
2,用户反馈的第二个问题重建后的黑边问题ÿ