The current design around batching operations adds a large chunk of complexity to dialects supporting it. They need to deal with the queue, flushing and so on. The MongoDBDialect got much harder to comprehend (and adapt) since we added the batching support.
I'd like us to investigate alternatives, which move complexity away from dialects into the engine. Specifically, I imagine an optional dialect facet with methods that accept a List<Tuple> e.g. representing tuples to be inserted. That way, all the queue and flush handling could be done by the core.
An interesting point is how this would integrate with Davide D'Alto's recent work about writing embedded associations in one go with their embedding entity as this also uses the batching mechanism.
|