Are the SSE4.2 instructions only needed when running with the dpdk? If so, can that new requirement be ignored if running with the Posix stack?
It's actually for the CRC32 instruction that is used by the commitlog. What kind of setup are you running on? SSE 4.2 appeared in Nehalem in 2008 so most servers today should have it.
Ping @avikivity
I'm trying to do some testing/development/prototyping on an older server I picked up for use at home and it has the Intel Xeon X5450 which appears to have launched in 2007.
If there ends up being other people in a similar situation, maybe it would be worth having the development mode support a different CRC32 implementation?
@dlandoll We already had a CRC32 implementation base on boost so supporting your CPU really just a matter of reverting commit a8ff8ea44295e2f87bf1d6c36890ca431834ea97. The problem, of course, is coming up with a version that switches between the correct implementation at runtime for us to be able to include it.
Yeah, it's probably not worth changing for my single use case unless there is enough demand from others trying to use older hardware (I'll get new hardware eventually).
I can try to compile my own version with the CRC changes reverted for now.
Runtime switching of the CRC implementation won't be easy without sacrificing performance.
That said, just compiling Scylla on a 2007 machine won't be a fun exercise.
I was able to revert the needed changes and rebuild a scylla-server deb package for Ubuntu 14.04 fairly easily so this can probably be closed if there is no desire to support an official (compile or runtime) option for the CRC implementation.
Thanks for confirming
I don't really see a problem with a compile-time option. @avikivity?
It's just work
I just got hit by this trying to dev on a older box running Ubuntu 16.04 64-bit & Docker Compose. :(
Most helpful comment
I just got hit by this trying to dev on a older box running Ubuntu 16.04 64-bit & Docker Compose. :(