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"
|
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"
|
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ func populateStorageDir(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var server storage.SimpleServer
|
var server server.SimpleServer
|
||||||
|
|
||||||
server.StorageDir = dirName
|
server.StorageDir = dirName
|
||||||
if cleanup {
|
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 (
|
import (
|
||||||
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
"git.nicholasnovak.io/nnovak/spatial-db/storage"
|
||||||
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
"git.nicholasnovak.io/nnovak/spatial-db/world"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
type HashServer struct {
|
type HashServer struct {
|
||||||
@ -17,8 +18,10 @@ func (hs *HashServer) SetStorageRoot(path string) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, data := range chunks {
|
for chunkIndex, data := range chunks {
|
||||||
// Load in each data point from disk
|
// Load in each data point from disk
|
||||||
|
log.Infof("Reading in chunk %d of %d", chunkIndex, len(chunks))
|
||||||
|
|
||||||
for _, section := range data.Sections {
|
for _, section := range data.Sections {
|
||||||
for blockIndex, blockState := range section.BlockStates {
|
for blockIndex, blockState := range section.BlockStates {
|
||||||
pos := data.IndexToBlockPos(blockIndex)
|
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