Fork me on GitHub
#datalevin
<
2023-03-26
>
hoppy01:03:51

thanks for the datalog-index-cache-limit

hoppy01:03:16

what would be the reasonable interpretation of this message:

hoppy01:03:18

; Execution error (ExceptionInfo) at datalevin.binding.java.LMDB/clear_dbi (java.clj:356). ; Fail to clear DBI: "datalevin/eav" "Environment mapsize reached (-30792)"

hoppy01:03:31

on a (d/clear)

Huahai03:03:45

That means it needs some space to clear the dbi. One may transact some more things to it, so the map (file) is enlarged, then do the clear.

Huahai03:03:58

didn’t think this will happen, interesting

Huahai03:03:17

care to tell more details?

Huahai03:03:47

anyway, 0.9.0 will have fix, we will enlarge the map automatically if this happens.

Huahai16:03:28

You mean there’s an error? Cannot reproduce an error with your code above.

Huahai16:03:24

as to using db instead of conn, sure, it was not my first choice, if people feel it is more natural to clear a conn, we can do that.

Huahai16:03:07

0.9 will have this change

hoppy19:03:42

that is basically how I was setting things up - after that its basically shoveling data in.

Huahai20:03:35

which platform are you on? it seems to be some other issues.

Huahai21:03:52

“environment mapsize reached” is not something i see normally. During transaction, auto resizing will happen. not when clear. Since you seem to see it a lot, you need to tell more about your environment.

hoppy01:03:18

I'm running on arch linux, openJDK 19.0.2

hoppy01:03:24

I seem to see that spectre mostly after having loaded a singificant number of entiites. I continue to keep chugging through the ETL. Currently have roughly 12M datoms loaded, but that number creeps up as I progress

Huahai01:03:15

it would be helpful to know what function call trigger this.

Huahai01:03:15

right now, we catch an exception when the map size is reached, then enlarge the map. this only happens in transact right now, so if other functions may trigger this, we can catch that and do the same

Huahai01:03:41

can you transact something before calling that?

Huahai01:03:11

the transaction will trigger resizing, if that’s the reason, but it may be something else.

hoppy01:03:07

currently in my repl.

hoppy01:03:45

at this point, some number of transactions have completed, and I'm just hanging onto the cn

Huahai01:03:18

you can try to transact something

hoppy01:03:44

after the prior clear attempt, the cn was closed. Reopened it here, transacted something, and retried the clear

hoppy01:03:42

I haven't noticed that it cares if I keep transacting even large numbers of things. Or retracting for that matter. The clear gets in trouble though

Huahai01:03:24

file an issue, and I will investigate

Huahai01:03:06

maybe it’s something about dropping the dbi in LMDB

hoppy01:03:20

I can, anything I can provide that will help with this? I can't give you the actual data, it's client proprietary.

hoppy01:03:39

maybe I can sythesize the behavior with fake data.

Huahai01:03:04

you can set a tiny mapsize and replicate

hoppy01:03:19

It is affected by datom head count, though.

Huahai01:03:23

and create some fake data easily

hoppy01:03:30

I'll play with it and see where it starts breaking down

Huahai01:03:57

don’t think it is about datalog, it’s lmdb drop dbi logic issue

Huahai01:03:41

maybe a bug in lmdb

hoppy02:03:53

#196, trivial to repro

Huahai11:03:59

0.8.9 should have a fix. please let me know if it works.