You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create a table and insert some rows, then stop observer.
➜ build ✗ ./bin/obclient -s miniob.sock
miniob > create table just_a_test (id int, id2 int);
SUCCESS
miniob > insert into just_a_test values (1, 1);
SUCCESS
miniob > insert into just_a_test values (2,2);
SUCCESS
miniob >exit
---
### then stop observer
➜ build ✗ ./bin/obclient -s miniob.sock
miniob >select* from just_a_test;
id | id2
Restart observer, then select from the table created before. It return no record. RecordPageHandler will be nullptr and record_page_iterator_ is invalid.
Currently, MiniOB doesn't support durability and if you stop the observer, the data maybe lost. But this issue will be fixed in the future.
You can use sync command to dump the data in the memory into disk now.
### What problem were solved in this pull request?
Issue Number: close#118#279
Problem:
当前的WAL仅记录了事务的日志,没有记录内部对象,比如record manager、B+树等的日志,导致在异常重启时,可能正常无法恢复。
### What is changed and how it works?
除了记录事务日志,还记录了Buffer pool、record
manager、B+树等内部数据日志,可以保证内部对象变更后断电等异常,仍然可以通过日志来恢复数据。
另外,此PR也实现了事务的回滚日志。
Create a table and insert some rows, then stop observer.
Restart observer, then select from the table created before. It return no record.
RecordPageHandler
will benullptr
andrecord_page_iterator_
is invalid.The text was updated successfully, but these errors were encountered: