Skip to content
This repository has been archived by the owner on Jan 28, 2019. It is now read-only.

Transaction/Pipeline API #19

Open
arrdem opened this issue Mar 2, 2018 · 0 comments
Open

Transaction/Pipeline API #19

arrdem opened this issue Mar 2, 2018 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@arrdem
Copy link
Owner

arrdem commented Mar 2, 2018

Right now, all the Shelving stores sorta assume that they've got some in-memory state that's backed by a file which we may want to flush to ... eventually. Hence the flush operation. For networked stores, it'd be a good idea to have a transactions API which lets users batch writes for efficiency. Especially since content hashing means that we aren't dependent on a central system to dictate identifiers.

This also opens the gate to extending Shelving's model of tuples to include as Datomic does the transaction in which a tuple was created. Not something I have a use case for, but a possible neat addition.

This would suggest exposing some sort of write batching endpoint for implementations.

Being able to choose abort vs. clobber in the case of conflicts on records would be interesting.
Most of Shelving actually is just the set monoid under addition so transaction conflicts should be rare.

@arrdem arrdem added the enhancement New feature or request label Mar 2, 2018
@arrdem arrdem self-assigned this Mar 2, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant