stateright / stateright

A model checker for implementing distributed systems.

Home Page:https://docs.rs/stateright

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Smaller (and lazy/persistent) states

graydon opened this issue · comments

The system state representation in the actor subsystem is relatively large and eagerly copies vectors and btrees full of contents when cloned. This makes it relatively memory-hungry, which in turn limits the size of the state-space it's possible to explore.

How would you feel about changes that reworked the representation to use lazy/persistent types (that copy-on-write only the substructures written) like those in the im crate? They are a bit slower than the eager types but I think they can take up substantially less room.

I think it’s worth exploring, and I’m curious to learn how the performance differs for your use case.