Hi Camel users I am testing LevelDB as repository for the aggregator component. After reading the docs about the "sync" flag, I am unsure if I need to set it or not.
Let's say my Java process with the Camel aggregator dies (not gracefully). What happens to the aggregation? A current aggregation in progress would not complete which is OK because it would not be commited to the queue (JMS transaction) and therefore resubmitted after restart. With "sync" flag I guess that the above applies to any aggregation that is not completely written to LevelDB. Therefore it should be absolutely safe in this scenario and even for power-outage scenario. Without "sync" flag a completed aggregation that is handed over for writing would be commited to the queue. So if the Java process dies, what happens to LevelDB? Does it still write pending aggregations because it is just between the operating system and the LevelDB file? Or is the completed but not written aggregation lost? The first would mean that "sync" = true is only needed to protect against power outage of the whole machine, while the latter would mean that "sync" = true would be needed to protect against not graceful shutdowns of the aggregator process. Thanks Stephan