// CreateBPlusTree 创建一棵B+树, 并返回其bootUUID. func Create(dm dm.DataManager) (utils.UUID, error) { rawRoot := newNilRootRaw() rootUUID, err := dm.Insert(tm.SUPER_XID, rawRoot) if err != nil { return utils.NilUUID, err } bootUUID, err := dm.Insert(tm.SUPER_XID, utils.UUIDToRaw(rootUUID)) if err != nil { return utils.NilUUID, err } return bootUUID, nil }
// LoadBPlusTree 通过BootUUID读取一课B+树, 并返回它. func Load(bootUUID utils.UUID, dm dm.DataManager) (BPlusTree, error) { bootDataitem, ok, err := dm.Read(bootUUID) if err != nil { return nil, err } utils.Assert(ok == true) return &bPlusTree{ bootUUID: bootUUID, DM: dm, bootDataitem: bootDataitem, }, nil }