In a discussion with a DBA today, the topic of commit block sizes and how tuning the commit block size can have an impact on the disk usage of a database and potentially the performance of the database came up.
Bearing in mind that I'm not a DBA, and this particular issue is somewhat new to me, I get the sense that one might tune this by committing, say, on every tenth business transaction instead of every one transaction. That sounds to me as if there's a serious potential for data loss, but that was countered with the idea of savepoints, and that commit blocks in combination with savepoints might allow for significant tuning capabilities.
This came up in the context of talking about Hibernate, and I wasn't able to address how one might be able to do that sort of tuning within the strictures of Hibernate. A search through the documentation and forums doesn't seem to talk about it either, so -- thoughts?
Does Hibernate allow for anything of this nature, and if so, how? To a certain extent, I could imagine that commit blocks are supported simply by not telling Hibernate to commit immediately, but without the concept of savepoints, it seems as if that would mean that a rollback on the ninth business transaction (assuming a commit block size of ten) would roll back the previous eight.
Is this making sense to anyone? I tried to do some preliminary research on the subject before posting, but if I'm making some fundamental missteps here on what the DBA was talking about, please feel free to correct me.
|