Open wohali opened 6 years ago
@wohali is there documentation available on the Redis write-through cache implementation. We are currently busy with implementing a Redis based transaction manager across documents so that all documents in a workflow transaction is either saved or rolled back. Are there others implementing such functionality that we can share with and learn from?
@WillemvdW Sorry, company proprietary information I'm not at liberty to disclose. I'll poke some of the others involved in the work and see if they can respond publicly here.
I can confirm that none of that work is transactional in nature, though - the granularity is a single document at a time. CouchDB isn't a good store if you expect relational data absolutely consistently - we are an AP system, not a CP system - they don't call it NoSQL for nothing you know ;)
Thanks @wohali . We would be interested to work and share with others in these two areas. On the transactional work, actually, we are dealing with sets of documents related a a work flow management. We are not interested in relational directly, but that the set of documents all save consistently or not.
Il'l give a use case. The workflow control document and 4 data documents that form part of the workflow action needs to be saved. In a poor network environment, the network fails before the workflow control document as the last step has been saved. In that case, they must all roll back.
Our solution support offline and online work, so the use case can get more complicated if you consider some data being updated online, but other through replication. It is possible that two users update the same workflow, the one offline, and the other online - part of the same workflow. if there is a conflict on one document, then we are experiencing problems of data inconsistency for the whole workflow.
I don't believe it is possible to create sophisticate apps that always work one document at a time. But we can easily batch them. Now we are making sure that whatever the reason, we always save the same batch, or if there is a failure we roll them all back, whether they were processed offline or online
@janl:
@wohali: