# T2-A: p3 quorum-write throughput gate. # Gate: ≥1,000 replicated signal-writes/s within SLO at ack=quorum. # Compare to T1 leader-ack ceiling (≥2,000/s); expect ≥50% of that number. # # Apply: kubectl apply -f tidal-stress/k8s/stress-job-t2a.yaml # Watch: kubectl logs -f job/tidal-stress-t2a -n tidaldb-cluster # Rearm: kubectl delete job tidal-stress-t2a -n tidaldb-cluster apiVersion: batch/v1 kind: Job metadata: name: tidal-stress-t2a namespace: tidaldb-cluster labels: app.kubernetes.io/name: tidal-stress app.kubernetes.io/part-of: tidaldb spec: backoffLimit: 0 ttlSecondsAfterFinished: 7200 template: metadata: labels: app.kubernetes.io/name: tidal-stress app.kubernetes.io/part-of: tidaldb spec: restartPolicy: Never automountServiceAccountToken: false affinity: podAntiAffinity: # Keep the generator off the leader's node (pod tidaldb-0). requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: statefulset.kubernetes.io/pod-name: tidaldb-0 topologyKey: kubernetes.io/hostname securityContext: runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 seccompProfile: type: RuntimeDefault containers: - name: stress image: registry.threesix.ai/tidal/stress@sha256:3a75c311e53f8eb7caf6441bfb40bc9c0611ab739ee33909ca700c7d5c29db16 # :m11p3 imagePullPolicy: IfNotPresent args: - --target - http://tidaldb-0.tidaldb-peers.tidaldb-cluster.svc.cluster.local:9500 # region tidaldb-0 (initial leader) - --target - http://tidaldb-1.tidaldb-peers.tidaldb-cluster.svc.cluster.local:9500 # region tidaldb-1 - --target - http://tidaldb-2.tidaldb-peers.tidaldb-cluster.svc.cluster.local:9500 # region tidaldb-2 - --leader-url - http://tidaldb-0.tidaldb-peers.tidaldb-cluster.svc.cluster.local:9500 - --ack - quorum - --ramp - peach-100k - --stage-secs - "120" - --mix - writes - --write-path - leader - --corpus - "20000" - --users - "100000" - --poll-status env: - name: TIDAL_API_KEY valueFrom: secretKeyRef: name: tidaldb-credentials key: TIDAL_API_KEY - name: TIDAL_STRESS_LOG value: warn resources: requests: cpu: 250m memory: 256Mi limits: cpu: "3" memory: 1Gi securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: ["ALL"]