I have used je with some general configurations.But we found the performance dropped seriously when checkpoint waking up.
These are some EnvironmentStat:
Checkpoints: Frequency and extent of checkpointing activity.
I am confused that why so many Flush happened when checkpoints waking up.Disk io was very crowd so none of the io request can be perform.
The checkpoint continued about 10 seconds.
Then we disbled the checkpoint,but then the files of je were broken.It said:
"This environment's log file has no root. Since the root " +
"is the first entry written into a log at environment " +
"creation, this should only happen if the initial creation " +
"of the environment was never checkpointed or synced. " +
"Please move aside the existing log files to allow the " +
"creation of a new environment".
So I wonder that what would happened when we disabled checkpoint?
Edited by: 786129 on 2011-6-21 下午7:55
Edited by: 786129 on 2011-6-21 下午11:58
It is not advisable to disable checkpointing for BDB JE. Like most transactional database systems, checkpoints are needed to make it possible to recover, or restart an environment.You may find it useful to look up a general description of checkpoints in database systems on the web, to get some context on what purpose they serve, and that may help you understand how best to tune them. BDB
The exception that you ran into usually only occurs if an environment crashes within the first few moments of its initial creation and there are only a few hundred bytes in the first .jdb file. I'm surprised that it happened for you, since the first checkpoint in a system is usually mandatory, but perhaps your configuration settings actually disabled it. I don't think we should investigate that very much, because it's not really the direction you want to go in.
Instead of disabling checkpoints, it would be best to investigate how to make them less frequent, and/or more efficient. One starting point is to try setting EnvironmentConfig.CLEANER_LAZY_MIGRATION to false, which helps make checkpointing faster, at the expense of log cleaning. Other options are to change the checkpoint interval, or the ENV_BACKGROUND_WRITE_LIMIT. Our next release, JE 5, does have some enhancements for making checkpoints more efficient, but unfortunately is not available yet. Take a look at EnvironmentConfig, and see the different options you could try.