Поддерживает ли RocksDB Java ARM?

Я работаю над своим университетским проектом и использую последнюю версию RocksDB с Maven для хранения своих данных "ключ-значение":

<dependency>
  <groupId>org.rocksdb</groupId> 
  <artifactId>rocksdbjni</artifactId> 
  <version>5.5.1</version> 
</dependency>

. Он хорошо работает на моей машине, но когда я пытаюсь запустить его на своем Raspberry Pi 2, я получаю сообщение об ошибке:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni5424421652341245125.so: /tmp/librocksdbjni5424421652341245125.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78)
    at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56)
    at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64)
    at org.rocksdb.RocksDB.<clinit>(RocksDB.java:35)
    at Main.main(Main.java:39)

Это означает, что RocksJava не поддерживает платформу ARM? Если нет, какие альтернативы я могу использовать в своем проекте Maven? (Я пытался использовать эту библиотеку, но в ней много ошибок и нереализованных методов: https://github.com/dain/leveldb)


person Joci Ivanics    schedule 05.04.2018    source источник
comment
comment
Спасибо, но я хочу хранить огромное количество данных. Ключ — это уникальный идентификатор, а значение — строка JSON. Мое приложение - это сервер, поэтому любой может отправить идентификатор, и он вернет значение. (Или вставьте новый ключ-значение.) Мой сервер хранит только сериализованные строки JSON разных объектов.   -  person Joci Ivanics    schedule 05.04.2018


Ответы (1)


RocksDB написан на C++, что означает нативный код. Из https://github.com/facebook/rocksdb/blob/master/INSTALL.md кажется, что он достаточно переносим, ​​и его относительно легко установить на Raspbian (то есть Debian Linux). Тогда ваш модуль Java может работать.

В противном случае найдите другое хранилище ключей и значений, написанное на Java, или изучите JDBC и используйте базу данных. Дерби написан на Java.

person Thorbjørn Ravn Andersen    schedule 05.04.2018