Does excision count towards the 1 billion datom limit?

My team has found some use cases with Datomic where we’d like to store temporary data and delete it at some later point. For example: deleted old user sessions, queuing jobs for a worker process etc.

I know that retracting such data still leaves it in the system. If I excise the data instead, should I be concerned about it creating garbage that can’t be collected? How does excision impact the db/id allocation?

Thanks!

Excision is NOT intended, nor is it suitable for, “clean up” of old/temporary data (https://docs.datomic.com/on-prem/excision.html) or reduction of storage use.

If you need to store data that you plan to “throw away” at a later point, I would recommend either using an alternative store for that data or using a separate logical database in Datomic that can be deleted at the database-level

1 Like

Thanks marshall, makes sense!

Is this a place where the :db/noHistory attribute would be useful?

1 Like

Tom, nice! I just checked, docs say it’s available in both cloud and onprem
https://docs.datomic.com/cloud/schema/schema-reference.html#orgd1343bf

https://docs.datomic.com/on-prem/schema.html#nohistory

Use NoHistory for High-churn Attributes
For high churn attributes, such as a counter or version incrementer, the cost of storing history is frequently not worth the impact on database size or indexing performance. If you have a high-churn attribute that you don’t expect to use in historical queries, you should set :db/noHistory to true.
https://docs.datomic.com/cloud/best.html#nohistory-for-high-churn

1 Like