2023-03-24

tcl-rocksdb 0.3.2

tcl-rocksdb

 

openSUSE build service 上現在有一個官方維護的 rocksdb,今天收到刪掉我自己維護版本的要求,我想了一下,我也有一段時間沒有更新了,所以刪掉了我自己維護的版本,換成官方的。然後發現 rocksdb 8.0.0 函式庫已經需要 c++ 17 才能夠編譯,所以修改了 tcl-rocksdb 的編譯選項,這樣才能夠成功編譯。

更新:
OBS 下的 server:database/rocksdb 一個很不妙的點是,他們還是把 jemalloc  OPTION 設為 ON,然後系統的 jemalloc 並沒有針對 jemalloc 5.0.1 TLS error: cannot allocate memory in static TLS block 做出相關的改變,這樣會變成可以編譯成功,但是你在使用的時候會無法啟動。

一開始我只是想建個 link 在自己  repo 這樣可以避免找不到 rocksdb 的問題,但是我發現問題很大,所以我有 report 我自己的修改,同時也有提供資訊,至於要怎麼改是打包的人要決定的。總之解法不是直接關閉 jremalloc 選項,效能會下降但是可以執行;不然就是系統端提供的 jemalloc 要加 --disable-initial-exec-tls 並且重新編譯,然後因為 jemalloc 的問題解決了就可以編譯 rocksdb with jemalloc。