Fork me on GitHub
#clara
<
2018-07-16
>
alex-dixon02:07:36

Stupid question time: Is it possible to use Rete with disk storage only for working sets that can’t fit into memory? Would there be any advantage to using it as part of a database implementation?

wparker08:07:25

@alex-dixon There isn't any reason in principle why you can't use disk storage in a Clara memory implementation. It would obviously be less performant than in memory storage; if every Rete operation resulted in a random disk seek it could be pretty poor at a guess. I've toyed with the idea of a memory implementation dumping overflow to disk before though with some kind of heuristics for what to keep in memory. There could be complications to work through if you're trying to basically serialize random objects too.

alex-dixon18:07:00

> I’ve toyed with the idea of a memory implementation dumping overflow to disk before though with some kind of heuristics for what to keep in memory Heh, I was thinking about the same thing yesterday 🙂 I haven’t been able to find any papers or mention of Rete being used with a persistence layer. Do you know of any?

wparker19:07:31

@alex-dixon No, I don’t know of any offhand. My (completely untested 🙂 ) guess would be that avoiding internal retractions from truth maintenance would be a big part of it. Maybe if the data were appropriately structured you could use a local database to back the memory - is that what you were getting at with “Would there be any advantage to using it as part of a database implementation?”

hiredman20:07:59

there is presentation from, uh, maybe it was at a clojurewest, the presenter discusses implementing a rules system on top of a database, it does away with, maybe just alpha nodes, in rete because it expects database indices to do basically the same thing

👍 4