I fill the ticket, bench code attached there. https://issues.apache.org/jira/browse/IGNITE-9272 Thanks!
>Has anyone else run the benchmark and reproduced the performance >difference? > >On Tue, Aug 14, 2018 at 8:16 AM, Dmitriy Pavlov < dpavlov....@gmail.com > >wrote: > >> It depends. >> >> CRC is a CPU-intensive operation, while WAL logging and page store write >> are mostly about IO speed. >> >> In the same time, it can make the huge impact on machines with fast IO >> and >> slow CPU. So if we can apply change proposed by Evgeniy and Alexey it >> could >> benefit performance because we save CPU. Later we can use it's power in a >> more efficient manner (e.g. with compression). >> >> вт, 14 авг. 2018 г. в 14:03, Yakov Zhdanov < yzhda...@apache.org >: >> >> > Guys, what time in % does crc calculation take in WAL logging process? >> > >> > --Yakov >> > >> > 2018-08-14 13:37 GMT+03:00 Dmitriy Pavlov < dpavlov....@gmail.com >: >> > >> > > Hi Alex, thank you for this idea. >> > > >> > > Evgeniy, Alex, would you like to submit the patch with bypassing >> > > implementation differences to keep compatibility? >> > > >> > > Sincerely, >> > > Dmitriy Pavlov >> > > >> > > вт, 14 авг. 2018 г. в 12:06, Alex Plehanov < plehanov.a...@gmail.com >: >> > > >> > > > Hello, Igniters! >> > > > >> > > > In java8 java.lang.zip.CRC32 methods become intrinsic, moreover new >> > > > "update" method, which use ByteBuffer was introduced. Since we >> moved >> to >> > > > java8, perhaps we really can get performance boost by using >> standard >> > > > java.lang.zip.CRC32 instead of PureJavaCrc32. >> > > > >> > > > About compatibility: looks like PureJavaCrc32 implements the same >> > > algorithm >> > > > as java.lang.zip.CRC32. These two implementations uses the same >> > > polynomial >> > > > and the same initial value. The only difference is final xor mask >> > > > (0xFFFFFFFF for java.lang.zip.CRC32). So, we can easily convert >> from >> > > > PureJavaCrc32 >> > > > to standard CRC32 and vice versa, using this expression: crc32 ^= >> > > > 0xFFFFFFFF >> > > > >> > > > >> > > > 2018-08-14 0:19 GMT+03:00 Eduard Shangareev < >> > eduard.shangar...@gmail.com >> > > >: >> > > > >> > > > > Evgeniy, >> > > > > >> > > > > Could you share benchmark code? And please share what version of >> JVM >> > > > > you have used. >> > > > > >> > > > > On Mon, Aug 13, 2018 at 10:44 PM Zhenya >> < arzamas...@mail.ru.invalid >> > >> > > > > wrote: >> > > > > >> > > > > > I think it would break backward compatibility, as Nikolay >> mentioned >> > > > above >> > > > > > we would take exception here: >> > > > > > >> > > > > > [1] >> > > > > > >> > > > > > https://github.com/apache/ignite/blob/master/modules/ >> > > > > core/src/main/java/org/apache/ignite/internal/processors/ >> > > > > cache/persistence/file/FilePageStore.java#L372 >> > > > > > >> > > > > > thats why i question for community thoughts here. >> > > > > > >> > > > > > > Hi Evgeniy, >> > > > > > > >> > > > > > > would you like to submit a patch with CRC32 implementation >> > change? >> > > > > > > >> > > > > > > Sincerely, >> > > > > > > Dmitriy Pavlov >> > > > > > > >> > > > > > > пн, 13 авг. 2018 г. в 22:08, Евгений Станиловский >> > > > > > > < arzamas...@mail.ru.invalid >: >> > > > > > > >> > > > > > >> Hi, igniters, i wrote a simple bench, looks like >> PureJavaCrc32 >> > has >> > > > > > >> performance problems in compatible with zip.CRC32. >> > > > > > >> >> > > > > > >> Benchmark Mode Cnt Score Error Units >> > > > > > >> BenchmarkCRC.Crc32 avgt 5 1088914.540 ± 368851.822 ns/op >> > > > > > >> BenchmarkCRC.pureJavaCrc32 avgt 5 6619408.049 ± 3746712.210 >> > ns/op >> > > > > > >> >> > > > > > >> thoughts? >> > > > > > >> > > > > >> > > > >> > > >> > -- Евгений Станиловский