feat: Refactored all of the scaling tests and separated them out
This commit is contained in:
parent
31f3c8e21d
commit
76038020f0
@ -9,7 +9,7 @@ import (
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/server"
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||
)
|
||||
|
||||
@ -36,7 +36,7 @@ func populateStorageDir(
|
||||
return
|
||||
}
|
||||
|
||||
var server storage.SimpleServer
|
||||
var server server.SimpleServer
|
||||
|
||||
server.StorageDir = dirName
|
||||
if cleanup {
|
||||
|
39
hash_read_test.go
Normal file
39
hash_read_test.go
Normal file
@ -0,0 +1,39 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/server"
|
||||
)
|
||||
|
||||
var hash server.HashServer
|
||||
var hashInit bool
|
||||
|
||||
func initHash() {
|
||||
if !hashInit {
|
||||
fmt.Println("Initializing hash server")
|
||||
hash.SetStorageRoot("skygrid-save")
|
||||
hashInit = true
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin128Hashtable(b *testing.B) {
|
||||
initHash()
|
||||
readBlockTemplate(&hash, b, 128)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin512Hashtable(b *testing.B) {
|
||||
initHash()
|
||||
readBlockTemplate(&hash, b, 512)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin2048Hashtable(b *testing.B) {
|
||||
initHash()
|
||||
readBlockTemplate(&hash, b, 2048)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin65536Hashtable(b *testing.B) {
|
||||
initHash()
|
||||
readBlockTemplate(&hash, b, 65536)
|
||||
}
|
39
inmemory_read_test.go
Normal file
39
inmemory_read_test.go
Normal file
@ -0,0 +1,39 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/server"
|
||||
)
|
||||
|
||||
var inmemory server.InMemoryServer
|
||||
var inmemoryInit bool
|
||||
|
||||
func initInMemory() {
|
||||
if !inmemoryInit {
|
||||
fmt.Println("Initializing in-memory server")
|
||||
inmemory.SetStorageRoot("skygrid-save")
|
||||
inmemoryInit = true
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin128InMemory(b *testing.B) {
|
||||
initInMemory()
|
||||
readBlockTemplate(&inmemory, b, 128)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin512InMemory(b *testing.B) {
|
||||
initInMemory()
|
||||
readBlockTemplate(&inmemory, b, 512)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin2048InMemory(b *testing.B) {
|
||||
initInMemory()
|
||||
readBlockTemplate(&inmemory, b, 2048)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin65536InMemory(b *testing.B) {
|
||||
initInMemory()
|
||||
readBlockTemplate(&inmemory, b, 65536)
|
||||
}
|
39
ondisk_read_test.go
Normal file
39
ondisk_read_test.go
Normal file
@ -0,0 +1,39 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/server"
|
||||
)
|
||||
|
||||
var disk server.SimpleServer
|
||||
var diskInit bool
|
||||
|
||||
func initDisk() {
|
||||
if !diskInit {
|
||||
fmt.Println("Initializing disk server")
|
||||
disk.SetStorageRoot("skygrid-save")
|
||||
diskInit = true
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin128OnDisk(b *testing.B) {
|
||||
initDisk()
|
||||
readBlockTemplate(&disk, b, 128)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin512OnDisk(b *testing.B) {
|
||||
initDisk()
|
||||
readBlockTemplate(&disk, b, 512)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin2048OnDisk(b *testing.B) {
|
||||
initDisk()
|
||||
readBlockTemplate(&disk, b, 2048)
|
||||
}
|
||||
|
||||
func BenchmarkReadWithin65536OnDisk(b *testing.B) {
|
||||
initDisk()
|
||||
readBlockTemplate(&disk, b, 65536)
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||
)
|
||||
|
||||
var server storage.InMemoryServer
|
||||
|
||||
func init() {
|
||||
server.SetStorageRoot("skygrid-save")
|
||||
}
|
||||
|
||||
func readBlockTemplate(rootDir string, b *testing.B, pointSpread int) {
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
pos := world.RandomBlockPosWithRange(float64(pointSpread))
|
||||
if _, err := server.ReadBlockAt(pos); err != nil {
|
||||
if errors.Is(err, storage.ChunkNotFoundError) || errors.Is(err, io.EOF) {
|
||||
continue
|
||||
} else {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func fetchChunkTemplate(testDir string, b *testing.B) {
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
pos := world.RandomBlockPosWithRange(2048).ToChunkPos()
|
||||
if _, err := server.ReadChunkAt(pos); err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Insert blocks
|
||||
|
||||
func BenchmarkReadClusteredPoints(b *testing.B) {
|
||||
readBlockTemplate("skygrid-test", b, 128)
|
||||
}
|
||||
|
||||
func BenchmarkReadSparserPoints(b *testing.B) {
|
||||
readBlockTemplate("skygrid-test", b, 2048)
|
||||
}
|
||||
|
||||
func BenchmarkReadSparserPoints1(b *testing.B) {
|
||||
readBlockTemplate("skygrid-test", b, 65536)
|
||||
}
|
@ -3,6 +3,7 @@ package server
|
||||
import (
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
type HashServer struct {
|
||||
@ -17,8 +18,10 @@ func (hs *HashServer) SetStorageRoot(path string) {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
for _, data := range chunks {
|
||||
for chunkIndex, data := range chunks {
|
||||
// Load in each data point from disk
|
||||
log.Infof("Reading in chunk %d of %d", chunkIndex, len(chunks))
|
||||
|
||||
for _, section := range data.Sections {
|
||||
for blockIndex, blockState := range section.BlockStates {
|
||||
pos := data.IndexToBlockPos(blockIndex)
|
||||
|
29
templates_test.go
Normal file
29
templates_test.go
Normal file
@ -0,0 +1,29 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
||||
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||
)
|
||||
|
||||
func readBlockTemplate(
|
||||
storageServer storage.StorageServer,
|
||||
b *testing.B,
|
||||
pointSpread int,
|
||||
) {
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
pos := world.RandomBlockPosWithRange(float64(pointSpread))
|
||||
if _, err := storageServer.ReadBlockAt(pos); err != nil {
|
||||
if errors.Is(err, storage.ChunkNotFoundError) || errors.Is(err, io.EOF) {
|
||||
continue
|
||||
} else {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user