Some Questions about eXtremeDB Log

1. About log, in document "eXtremeDB_Transaction_Logging.pdf", it said "mco_translog_init()" should be called just after "mco_runtime_start()", but if the database is opened using SQL C++ API "engine.open()", is it right that call "mco_translog_init()" after "engine.open()" ?
Answer: In the case that the SQL engine opens a database it is ok to call function mco_translog_init() before "engine.open()".




2. In general,  The design of transaction log for DB system should look for small log file size and short replay time. How did we make tradeoff between the two conflict goals in eXtremeDB ? What's our log format ? Can you describe the progress of log replay in eXtremeDB ?
Answer: It depends on the database usage strategy. TL is helpful when the flow of write transactions is not so fast and most operations are done in the context of read transactions. This gives the power of a pure in-memory database plus reliability and data safety. However when the database is modified frequently, it might me better to use the disk-manager and make the database classes persistent. If the cache memory device is big enough then performance is similar to an IM database, but logging and database restoration mechanisms are much smarter and faster. For example writing of the transaction log in the disk manager doesn't involve object serialization operations.




3. Which performance is better, writing transaction one by one in log file in local file system or exporting data into remote SQL Server through "pipe iterate" ?
Answer:Both cases will take similar time on the application side (writer). Usually a write operation to a local file is faster than transferring data to a separated database. In the latter case it may happen that the remote SQL server will be a bottle-neck if the flow of logged operations is fast.
 
 
4. Describtion the following scenario: The application creates a checkpoint for transaction log, then the application performs a transaction which update/insert/delete a record in the database, a transaction log is created and saved. Just after the transaction log is successfully saved, the database is broken. we need to use the transaction log to restore the database. When the transaction log is replayed, the record in the database is the same as if the previous mentioned transaction was performed. Their question is: How is the time difference between the application performed transaction and the transaction log replay ?
Answer: Transaction log replay will take the same time as the natural operations  insert|update|delete.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值