Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-2200

[C++] Investigate use of google/crc32c vs xxhash in Plasma

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • C++ - Plasma
    • None

    Description

      I'm looking into Plasma's use of XXH64 hash library, and whether we can replace it with google/crc32c.
       
      Here's my build change
       
      With this change, for some reason, the plasma_static library did NOT get linked into libcrc32c.a (which is successfully built), whereas plasma_shared and plasma_store did link with it:
       
      -----------------------
       » tail ./src/plasma/CMakeFiles/plasma_{static,shared,store}.dir/link.txt
      ==> ./src/plasma/CMakeFiles/plasma_static.dir/link.txt <==
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar qc ../../release/libplasma.a  CMakeFiles/plasma_objlib.dir/client.cc.o CMakeFiles/plasma_objlib.dir/common.cc.o CMakeFiles/plasma_objlib.dir/eviction_policy.cc.o CMakeFiles/plasma_objlib.dir/events.cc.o CMakeFiles/plasma_objlib.dir/fling.cc.o CMakeFiles/plasma_objlib.dir/io.cc.o CMakeFiles/plasma_objlib.dir/malloc.cc.o CMakeFiles/plasma_objlib.dir/plasma.cc.o CMakeFiles/plasma_objlib.dir/protocol.cc.o CMakeFiles/plasma_objlib.dir/thirdparty/ae/ae.c.o CMakeFiles/plasma_objlib.dir/thirdparty/xxhash.cc.o
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib ../../release/libplasma.a
       
      ==> ./src/plasma/CMakeFiles/plasma_shared.dir/link.txt <==
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -g -O3 -O3 -DNDEBUG  -Wall -std=c+11 -msse3 -stdlib=libc+  -Qunused-arguments  -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L -fPIC -O3 -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup  -o ../../release/libplasma.0.0.0.dylib -install_name @rpath/libplasma.0.dylib 
      ...
      ../../crc32c_ep/src/crc32c_ep-install/lib/libcrc32c.a ../../release/libarrow.a /usr/lib/libpthread.dylib /usr/local/lib/libboost_system-mt.a /usr/local/lib/libboost_filesystem-mt.a
       
      ==> ./src/plasma/CMakeFiles/plasma_store.dir/link.txt <==
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c+  -g -O3 -O3 -DNDEBUG  -Wall -std=c11 -msse3 -stdlib=libc+  -Qunused-arguments  -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L -fPIC -O3 -DNDEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/plasma_store.dir/store.cc.o  -o ../../release/plasma_store ../../release/libplasma.a ../../crc32c_ep/src/crc32c_ep-install/lib/libcrc32c.a ../../release/libarrow.a /usr/lib/libpthread.dylib /usr/local/lib/libboost_system-mt.a /usr/local/lib/libboost_filesystem-mt.a

      -----------------------
       
      Do you see what's going on?  What am I doing wrong to not have "plasma_static" depend on "crc32c_ep"?
       
      Any advice will be greatly appreciated,
      Zongheng

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ConcreteVitamin Zongheng Yang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: