Beispiel #1
0
// 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
}
Beispiel #2
0
// 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
}