datomic“索引创建失败”“ merge-db失败”

时间:2018-11-27 09:50:22

标签: database datomic

在datomic中添加新索引后,出现此错误。 几年前,我的一个系统上也发生了同样的问题,但仍未解决:

2018-11-27 10:23:37.580 WARN  default    datomic.update - {:message "Index creation failed", :db-id "xxx-8eb416be-ec26-4bff-b4ce-503bb734026b", :pid 29822, :tid 15}
java.io.IOException: Datei oder Verzeichnis nicht gefunden
    at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191]
    at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191]
    at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na]
    at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na]
    at clojure.core$map$fn__5587.invoke(core.clj:2747) ~[clojure-1.9.0-RC1.jar:na]
    at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0-RC1.jar:na]
    at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0-RC1.jar:na]
    at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0-RC1.jar:na]
2018-11-27 10:23:37.602 WARN  default    datomic.index - {:message "merge-db failed", :pid 29822, :tid 15}
java.io.IOException: Datei oder Verzeichnis nicht gefunden
    at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191]
    at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191]
    at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na]
    at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na]

好像datomic无法为索引过程写下一些缓存。 它总是在重新尝试执行索引工作后不久崩溃。

上次这是在我的一个系统上发生的,我联系了datomic的support @marshall。在他的帮助下,我转储了日期数据库,获取了备份,减少了数据量,分配了很多内存...并成功了。这次是不可能的。

1 个答案:

答案 0 :(得分:1)

这里就是解决方案!

事务处理程序索引器将忽略配置文件(“ datomic.version”“ 0.9.5656”以及经过测试的路径)中的路径设置,并尝试保存实际的相对文件路径。

我将datomic-pro文件夹设置为可访问,并且打开了.... / data目录并建立了索引