Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename to linked page, split out meta page interface #353

Merged
merged 2 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/visualizer/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func main() {
// this is a linked meta page
lmps = lmps[1:]

// metaPage, err := metapage.NewMultiBPTree(pf, int(i))
// metaPage, err := linkedpage.NewMultiBPTree(pf, int(i))
// if err != nil {
// panic(err)
// }
Expand Down
6 changes: 3 additions & 3 deletions pkg/appendable/appendable_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package appendable

import (
"github.com/kevmo314/appendable/pkg/buftest"
"github.com/kevmo314/appendable/pkg/metapage"
"github.com/kevmo314/appendable/pkg/linkedpage"
"github.com/kevmo314/appendable/pkg/pagefile"
"reflect"
"testing"
Expand All @@ -16,7 +16,7 @@ func TestMarshalMetadata(t *testing.T) {
t.Fatal(err)
}

tree, err := metapage.NewMultiBPTree(p, 0)
tree, err := linkedpage.NewMultiBPTree(p, 0)
if err != nil {
t.Fatal(err)
}
Expand Down Expand Up @@ -69,7 +69,7 @@ func TestMarshalMetadata(t *testing.T) {
t.Fatal(err)
}

tree, err := metapage.NewMultiBPTree(p, 0)
tree, err := linkedpage.NewMultiBPTree(p, 0)
if err != nil {
t.Fatal(err)
}
Expand Down
10 changes: 5 additions & 5 deletions pkg/appendable/index_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package appendable
import (
"errors"
"fmt"
"github.com/kevmo314/appendable/pkg/metapage"
"github.com/kevmo314/appendable/pkg/linkedpage"
"io"
"time"

Expand All @@ -21,7 +21,7 @@ type DataHandler interface {

// IndexFile is a representation of the entire index file.
type IndexFile struct {
tree *metapage.LinkedMetaPage
tree *linkedpage.LinkedPage
dataHandler DataHandler

pf *pagefile.PageFile
Expand All @@ -36,7 +36,7 @@ func NewIndexFile(f io.ReadWriteSeeker, dataHandler DataHandler, searchHeaders [
return nil, fmt.Errorf("failed to create page file: %w", err)
}

tree, err := metapage.NewMultiBPTree(pf, 0)
tree, err := linkedpage.NewMultiBPTree(pf, 0)
if err != nil {
return nil, fmt.Errorf("failed to create multi b+ tree: %w", err)
}
Expand Down Expand Up @@ -101,7 +101,7 @@ func (i *IndexFile) SetMetadata(metadata *FileMeta) error {
return i.tree.SetMetadata(buf)
}

func (i *IndexFile) Indexes() (*metapage.LinkedMetaPage, error) {
func (i *IndexFile) Indexes() (*linkedpage.LinkedPage, error) {
return i.tree.Next()
}

Expand Down Expand Up @@ -146,7 +146,7 @@ func (i *IndexFile) IndexFieldNames() ([]string, error) {
return fieldNames, nil
}

func (i *IndexFile) FindOrCreateIndex(name string, fieldType FieldType) (*metapage.LinkedMetaPage, *IndexMeta, error) {
func (i *IndexFile) FindOrCreateIndex(name string, fieldType FieldType) (*linkedpage.LinkedPage, *IndexMeta, error) {
mp := i.tree
for {
next, err := mp.Next()
Expand Down
11 changes: 2 additions & 9 deletions pkg/bptree/bptree.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,16 @@ package bptree
import (
"bytes"
"fmt"
"github.com/kevmo314/appendable/pkg/metapage"
"io"
"slices"

"github.com/kevmo314/appendable/pkg/pagefile"
"github.com/kevmo314/appendable/pkg/pointer"
)

// MetaPage is an abstract interface over the root page of a bptree
// This allows the caller to control the memory location of the meta
// pointer
type MetaPage interface {
Root() (pointer.MemoryPointer, error)
SetRoot(pointer.MemoryPointer) error
}

type BPTree struct {
MetaPage MetaPage
MetaPage metapage.MetaPage
PageFile pagefile.ReadWriteSeekPager

Data []byte
Expand Down
6 changes: 3 additions & 3 deletions pkg/handlers/equality_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"bytes"
"encoding/binary"
"fmt"
"github.com/kevmo314/appendable/pkg/metapage"
"github.com/kevmo314/appendable/pkg/linkedpage"
"github.com/kevmo314/appendable/pkg/pointer"
"log/slog"
"math"
Expand Down Expand Up @@ -133,7 +133,7 @@ func compareFieldNames(i1, i2 []string) (bool, string) {
return true, ""
}

func compareIndexMeta(i1, i2 []*metapage.LinkedMetaPage) (bool, string) {
func compareIndexMeta(i1, i2 []*linkedpage.LinkedPage) (bool, string) {

for i, collected1 := range i1 {
buf1, err := collected1.Metadata()
Expand Down Expand Up @@ -180,7 +180,7 @@ func compareIndexMeta(i1, i2 []*metapage.LinkedMetaPage) (bool, string) {
return true, ""
}

func compareMetaPages(i1, i2 []*metapage.LinkedMetaPage, jr, cr []byte) (bool, string) {
func compareMetaPages(i1, i2 []*linkedpage.LinkedPage, jr, cr []byte) (bool, string) {
h1 := [2]string{"test1", "test3"}
h2 := [2]float64{37.3, 4}

Expand Down
12 changes: 6 additions & 6 deletions pkg/handlers/jsonl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"math"
"testing"

"github.com/kevmo314/appendable/pkg/metapage"
"github.com/kevmo314/appendable/pkg/linkedpage"
"github.com/kevmo314/appendable/pkg/ngram"
"github.com/kevmo314/appendable/pkg/pointer"

Expand Down Expand Up @@ -144,7 +144,7 @@ func TestJSONL(t *testing.T) {
t.Errorf("got len(i.Indexes) = %d, want 4", len(collected))
}

var strIndexes []*metapage.LinkedMetaPage
var strIndexes []*linkedpage.LinkedPage

for _, ms := range collected {
buf, err := ms.Metadata()
Expand Down Expand Up @@ -490,7 +490,7 @@ func TestJSONL(t *testing.T) {
t.Errorf("got len(i.Indexes) = %d, want 5", len(collected))
}

var vanillaIndexes []*metapage.LinkedMetaPage
var vanillaIndexes []*linkedpage.LinkedPage

for _, ms := range collected {
buf, err := ms.Metadata()
Expand Down Expand Up @@ -567,7 +567,7 @@ func TestJSONL(t *testing.T) {
t.Errorf("got len(i.Indexes) = %d, want 2", len(collected))
}

var vanillaIndexes []*metapage.LinkedMetaPage
var vanillaIndexes []*linkedpage.LinkedPage

for _, ms := range collected {
buf, err := ms.Metadata()
Expand Down Expand Up @@ -765,7 +765,7 @@ func TestJSONL(t *testing.T) {
t.Fatalf("expected 4 pages, got: %v", len(collected))
}

var tripage []*metapage.LinkedMetaPage
var tripage []*linkedpage.LinkedPage

for _, ms := range collected {
buf, err := ms.Metadata()
Expand Down Expand Up @@ -833,7 +833,7 @@ func TestJSONL(t *testing.T) {
t.Fatalf("expected 4 pages, got: %v", len(collected))
}

var tripages []*metapage.LinkedMetaPage
var tripages []*linkedpage.LinkedPage

for _, ms := range collected {
buf, err := ms.Metadata()
Expand Down
Loading
Loading