aboutsummaryrefslogtreecommitdiff
path: root/weed/operation/assign_file_id_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/operation/assign_file_id_test.go')
-rw-r--r--weed/operation/assign_file_id_test.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/weed/operation/assign_file_id_test.go b/weed/operation/assign_file_id_test.go
new file mode 100644
index 000000000..f6362dceb
--- /dev/null
+++ b/weed/operation/assign_file_id_test.go
@@ -0,0 +1,68 @@
+package operation
+
+import (
+ "fmt"
+ "github.com/seaweedfs/seaweedfs/weed/pb"
+ "google.golang.org/grpc"
+ "testing"
+ "time"
+)
+
+func BenchmarkWithConcurrency(b *testing.B) {
+ concurrencyLevels := []int{1, 10, 100, 1000}
+
+ ap, _ := NewAssignProxy(func() pb.ServerAddress {
+ return pb.ServerAddress("localhost:9333")
+ }, grpc.WithInsecure(), 16)
+
+ for _, concurrency := range concurrencyLevels {
+ b.Run(
+ fmt.Sprintf("Concurrency-%d", concurrency),
+ func(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ done := make(chan struct{})
+ startTime := time.Now()
+
+ for j := 0; j < concurrency; j++ {
+ go func() {
+
+ ap.Assign(&VolumeAssignRequest{
+ Count: 1,
+ })
+
+ done <- struct{}{}
+ }()
+ }
+
+ for j := 0; j < concurrency; j++ {
+ <-done
+ }
+
+ duration := time.Since(startTime)
+ b.Logf("Concurrency: %d, Duration: %v", concurrency, duration)
+ }
+ },
+ )
+ }
+}
+
+func BenchmarkStreamAssign(b *testing.B) {
+ ap, _ := NewAssignProxy(func() pb.ServerAddress {
+ return pb.ServerAddress("localhost:9333")
+ }, grpc.WithInsecure(), 16)
+ for i := 0; i < b.N; i++ {
+ ap.Assign(&VolumeAssignRequest{
+ Count: 1,
+ })
+ }
+}
+
+func BenchmarkUnaryAssign(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ Assign(func() pb.ServerAddress {
+ return pb.ServerAddress("localhost:9333")
+ }, grpc.WithInsecure(), &VolumeAssignRequest{
+ Count: 1,
+ })
+ }
+}