JAva levedbは、歩いてきたピットデータを完全に削除できないなどの問題を使用しています.


1 levedbライブラリjava版
最初に人の紹介を聞くときにこのライブラリを使って、ずっとこのライブラリを使っていました.その後、このライブラリがデータを削除していることに気づき、ハードディスクから削除することはできません.資料を調べると、場合によってはデータが削除されると言われていますが、使用中はハードディスクリソースの解放は見られませんでした.
              org.iq80.leveldb             leveldb             0.12        
以前はいくつかの構成を保存するために使用されただけで、データ量はあまり気にしていませんでした.今、いくつかのデータキャッシュをしたいのですが、sqliteなどを比較したほうが、levedbのほうがいいです.データ削除の問題は解決しなければなりません.そこでlevedbソースコードの紹介を見ると、解放リソースを削除するインタフェースが実現していることが分かった.orgだけだ.iq80.leveldbというjavaバージョンは実現していません.
2 levedb jni
ネット上で突き進んでorgを見つけた.fusesource.leveldbjni;cダイナミックライブラリを呼び出す;dbが提供されています.compactRange(null,null)メソッド;データ削除によるハードディスク(HDD)リソースの解放の問題を解決します.また、キャッシュデータの圧縮は20倍に達したが、javaバージョンライブラリでは圧縮効果が2倍にならなかった.このパッケージには、linux 32、linux 64、osx、window 32、window 64バージョンのダイナミックライブラリが用意されています.
      
          org.fusesource.leveldbjni
          leveldbjni-all
          1.8
      

  
3その他のシステム問題処理
プログラムはベリーパイarvm 7上で実行されるため、leveldbjni-allでは提供されず、ソースコードのコンパイルをダウンロードし、システムフォルダに置く必要があります.
ソースのダウンロード
snapyのダウンロードに失敗した場合は、このダウンロードが可能です.
wget http://snappy.googlecode.com/files/snappy-1.0.5.tar.gz
tar -zxvf snappy-1.0.5.tar.gz
git clone git://github.com/chirino/leveldb.git
git clone git://github.com/fusesource/leveldbjni.git
export SNAPPY_HOME=`cd snappy-1.0.5; pwd`
export LEVELDB_HOME=`cd leveldb; pwd`
export LEVELDBJNI_HOME=`cd leveldbjni; pwd`

コンパイルsnapy
cd ${SNAPPY_HOME}
./configure --disable-shared --with-pic
make

 
コンパイルlevedb
cd ${LEVELDB_HOME}
export LIBRARY_PATH=${SNAPPY_HOME}
export C_INCLUDE_PATH=${LIBRARY_PATH}
export CPLUS_INCLUDE_PATH=${LIBRARY_PATH}
git apply ../leveldbjni/leveldb.patch
make libleveldb.a

mvn leveldbjni
cd ${LEVELDBJNI_HOME}
mvn clean install -P download -P armv7

パッケージが完了したら、leveldbjni-arvm 7-99-master-SNAPSHOTを解凍してliblevedbjniを取得する.soライブラリ、/usr/libの下に置けばいいです.