From 002e05eb892756b08e0985de879dcbcea98acdfd Mon Sep 17 00:00:00 2001 From: Marek Goc Date: Thu, 12 Feb 2026 15:18:55 +0100 Subject: [PATCH] fix: env --- .gitignore | 2 + README.md | 78 ++--- docker-compose.yml | 24 +- example.env | 15 +- go.mod | 1 + go.sum | 2 + cmd/replica/main.go => main.go | 6 +- replica | Bin 12481215 -> 0 bytes {pkg/replica => replica}/config.go | 17 +- {pkg/replica => replica}/handlers.go | 17 +- {pkg/replica => replica}/initial_transfer.go | 284 +++++++++++++++++-- {pkg/replica => replica}/logging.go | 0 {pkg/replica => replica}/position.go | 0 {pkg/replica => replica}/service.go | 33 ++- {pkg/replica => replica}/sqlbuilder.go | 0 15 files changed, 373 insertions(+), 106 deletions(-) rename cmd/replica/main.go => main.go (93%) delete mode 100755 replica rename {pkg/replica => replica}/config.go (92%) rename {pkg/replica => replica}/handlers.go (94%) rename {pkg/replica => replica}/initial_transfer.go (65%) rename {pkg/replica => replica}/logging.go (100%) rename {pkg/replica => replica}/position.go (100%) rename {pkg/replica => replica}/service.go (90%) rename {pkg/replica => replica}/sqlbuilder.go (100%) diff --git a/.gitignore b/.gitignore index 4c49bd7..981a290 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .env +bin/ +examples/ diff --git a/README.md b/README.md index 799ed7f..4cbc4ed 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A robust MySQL/MariaDB binlog streaming replication service with automatic initi ### Quick Install (Go) ```bash -go install git.ma-al.com/goc_marek/replica/cmd/replica@latest +go install git.ma-al.com/goc_marek/replica@latest ``` ### Build from Source @@ -18,18 +18,15 @@ git clone https://git.ma-al.com/goc_marek/replica.git cd replica # Build the service -go build -o replica ./cmd/replica +go build -o bin/replica ./main.go -# Or install globally -go install ./cmd/replica +# Run the service +./bin/replica ``` -### Docker +### Docker Compose ```bash -# Build the image -docker build -t replica . - # Run with docker-compose docker-compose up -d ``` @@ -76,14 +73,14 @@ nano .env | File | Purpose | |------|---------| -| [`cmd/replica/main.go`](cmd/replica/main.go) | Application entry point and configuration | -| [`pkg/replica/service.go`](pkg/replica/service.go) | BinlogSyncService - core replication orchestration | -| [`pkg/replica/handlers.go`](pkg/replica/handlers.go) | EventHandlers - binlog event processing with resilience | -| [`pkg/replica/initial_transfer.go`](pkg/replica/initial_transfer.go) | InitialTransfer - bulk data transfer management | -| [`pkg/replica/position.go`](pkg/replica/position.go) | PositionManager - binlog position persistence | -| [`pkg/replica/sqlbuilder.go`](pkg/replica/sqlbuilder.go) | SQLBuilder - SQL statement generation | -| [`pkg/replica/config.go`](pkg/replica/config.go) | Configuration types | -| [`pkg/replica/logging.go`](pkg/replica/logging.go) | Structured logging with Graylog support | +| [`main.go`](main.go) | Application entry point and configuration | +| [`replica/service.go`](replica/service.go) | BinlogSyncService - core replication orchestration | +| [`replica/handlers.go`](replica/handlers.go) | EventHandlers - binlog event processing with resilience | +| [`replica/initial_transfer.go`](replica/initial_transfer.go) | InitialTransfer - bulk data transfer management | +| [`replica/position.go`](replica/position.go) | PositionManager - binlog position persistence | +| [`replica/sqlbuilder.go`](replica/sqlbuilder.go) | SQLBuilder - SQL statement generation | +| [`replica/config.go`](replica/config.go) | Configuration types | +| [`replica/logging.go`](replica/logging.go) | Structured logging with Graylog support | ### Data Flow @@ -116,10 +113,10 @@ BinlogSyncService.processEvent() ```bash # Build the service -go build -o replica +go build -o bin/replica ./main.go # Run the service -./replica +./bin/replica ``` ### Configuration @@ -213,7 +210,8 @@ GRAYLOG_SOURCE=binlog-sync-prod | Variable | Description | Default | |----------|-------------|---------| -| `TRANSFER_BATCH_SIZE` | Rows per transfer chunk | `1000` | +| `TRANSFER_BATCH_SIZE` | Rows per transfer chunk | `10000` | +| `TRANSFER_WORKER_COUNT` | Number of parallel transfer workers | `4` | | `LOCAL_PROJECT_NAME` | Project name for logging | `naluconcept` | ## Resilience Features @@ -359,7 +357,7 @@ When resync is needed (empty replica or no saved position), the service performs - Get table schema (column definitions) - Check row count - Transfer in chunks using primary key or LIMIT/OFFSET -5. **Progress Checkpointing**: Save progress to JSON file every 1000 rows +5. **Progress Checkpointing**: Save progress to JSON file every 10000 rows 6. **Position Reset**: Clear saved binlog position after successful transfer 7. **Binlog Streaming**: Start streaming from current position @@ -375,7 +373,7 @@ SELECT * FROM table WHERE pk >= 1000 AND pk < 2000 ORDER BY pk SELECT * FROM table LIMIT 1000 OFFSET 1000 ``` -**Batch Size:** Configurable (default: 1000 rows per chunk) +**Batch Size:** Configurable (default: 10000 rows per chunk) ### Progress Checkpointing @@ -400,7 +398,7 @@ If the transfer is interrupted, it resumes from the last checkpoint. Transfers can be paused and resumed programmatically: ```go -transfer := NewInitialTransfer(dsn, dsn, 1000, 1) +transfer := NewInitialTransfer(dsn, dsn, 10000, 4) // Pause during transfer transfer.Pause() @@ -445,8 +443,8 @@ type EventHandlers struct { type InitialTransfer struct { primaryDB *sql.DB secondaryDB *sql.DB - batchSize int // Default: 1000 - workerCount int // Default: 1 + batchSize int // Default: 10000 + workerCount int // Default: 4 excludedDBs map[string]bool checkpointFile string progress TransferProgress @@ -575,15 +573,15 @@ SELECT COUNT(*) FROM your_table; ## Performance Considerations -1. **Batch Size**: Start with 1000, adjust based on table size and memory +1. **Batch Size**: Start with 10000, adjust based on table size and memory 2. **Connection Pooling**: `SetMaxOpenConns(25)` for moderate load -3. **Worker Count**: Currently single-threaded (multi-worker planned) +3. **Worker Count**: Default: 4 workers for parallel processing 4. **Schema Caching**: Table schemas cached in memory (auto-updated on drift) 5. **Index Usage**: Chunked transfers require indexed primary key ## Limitations -- **Single-threaded**: One worker processes events sequentially +- **Multi-threaded**: Multiple workers process events in parallel (configurable via TRANSFER_WORKER_COUNT) - **Position-based**: No GTID support yet (position-based only) - **Integer PKs**: Chunking requires integer primary key for efficiency - **No Conflict Resolution**: Concurrent writes not handled @@ -618,18 +616,20 @@ SELECT COUNT(*) FROM your_table; ``` replica/ -├── cmd/ -│ └── replica/ -│ └── main.go # Entry point -├── pkg/ -│ └── replica/ -│ ├── service.go # Replication orchestration -│ ├── handlers.go # Event processing -│ ├── initial_transfer.go # Bulk data transfer -│ ├── position.go # Position persistence -│ ├── sqlbuilder.go # SQL generation -│ ├── config.go # Configuration types -│ └── logging.go # Structured logging +├── main.go # Entry point +├── replica/ +│ ├── service.go # Replication orchestration +│ ├── handlers.go # Event processing +│ ├── initial_transfer.go # Bulk data transfer +│ ├── position.go # Position persistence +│ ├── sqlbuilder.go # SQL generation +│ ├── config.go # Configuration types +│ └── logging.go # Structured logging +├── examples/ +│ └── binlog-listener/ +│ └── main.go # Example binlog listener +├── bin/ +│ └── replica # Compiled binary ├── example.env # Environment template ├── .env # Environment (gitignored) ├── docker-compose.yml # Local development diff --git a/docker-compose.yml b/docker-compose.yml index 7979cef..e0106d1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,7 @@ services: - --log_bin=log_bin - --binlog_format=ROW - --server-id=${MARIA_SERVER_ID} + - --log_bin_trust_function_creators=1 ports: - "${MARIA_PRIMARY_PORT}:3306" networks: @@ -21,8 +22,8 @@ services: environment: MARIADB_USER: ${MARIA_USER} MARIADB_PASSWORD: ${MARIA_PASS} - MYSQL_DATABASE: ${MARIA_NAME} - MYSQL_ROOT_PASSWORD: ${MARIA_PASS} + MARIADB_DATABASE: ${MARIA_NAME} + MARIADB_ROOT_PASSWORD: ${MARIA_PASS} restart: always mariadb-secondary: @@ -46,27 +47,12 @@ services: environment: MARIADB_USER: ${MARIA_USER} MARIADB_PASSWORD: ${MARIA_PASS} - MYSQL_DATABASE: ${MARIA_NAME} - MYSQL_ROOT_PASSWORD: ${MARIA_PASS} + MARIADB_DATABASE: ${MARIA_NAME} + MARIADB_ROOT_PASSWORD: ${MARIA_PASS} restart: always depends_on: - mariadb-primary - # postgresql: - # container_name: ${POSTGRES_HOST} - # restart: always - # image: postgres:18 - # networks: - # repl: - # ports: - # - 5432:5432 - # volumes: - # - postgres-data:/var/lib/postgresql:Z - # command: postgres -c shared_buffers=512MB -c work_mem=16MB -c maintenance_work_mem=256MB -c effective_cache_size=4GB -c max_connections=20 - # environment: - # POSTGRES_USER: ${POSTGRES_USER} - # POSTGRES_PASSWORD: ${POSTGRES_PASS} - # POSTGRES_DB: ${POSTGRES_NAME} networks: diff --git a/example.env b/example.env index 65679f0..aa920be 100644 --- a/example.env +++ b/example.env @@ -1,21 +1,22 @@ # Primary MariaDB Configuration -MARIA_USER=replica +MARIA_USER=root MARIA_PASS=replica +MARIA_NAME=replica MARIA_SERVER_ID=100 -MARIA_PRIMARY_HOST=mariadb-primary +MARIA_PRIMARY_HOST=localhost MARIA_PRIMARY_PORT=3306 MARIA_PRIMARY_NAME=mariadb-primary # Secondary MariaDB Configuration (comma-separated for multiple) # Format: host1:port1,host2:port2,host3:port3 # Or just hostnames and use MARIA_SECONDARY_PORTS for ports -MARIA_SECONDARY_HOSTS=mariadb-secondary-1,mariadb-secondary-2,mariadb-secondary-3 -MARIA_SECONDARY_PORTS=3307,3308,3309 -MARIA_SECONDARY_NAMES=secondary-1,secondary-2,secondary-3 +MARIA_SECONDARY_HOSTS=localhost +MARIA_SECONDARY_PORTS=3307 +MARIA_SECONDARY_NAMES=mariadb-secondary # Optional: Override per-secondary credentials (must match number of secondaries or use defaults) -# MARIA_SECONDARY_USERS=replica1,replica2,replica3 -# MARIA_SECONDARY_PASSWORDS=pass1,pass2,pass3 +MARIA_SECONDARY_USERS=root +MARIA_SECONDARY_PASSWORDS=replica # Legacy single secondary (for backward compatibility) # MARIA_SECONDARY_HOST=mariadb-secondary diff --git a/go.mod b/go.mod index 9ff13ac..aa63013 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/joho/godotenv v1.5.1 // indirect github.com/klauspost/compress v1.17.8 // indirect github.com/pingcap/errors v0.11.5-0.20250318082626-8f80e5cb09ec // indirect github.com/pingcap/log v1.1.1-0.20241212030209-7e3ff8601a2a // indirect diff --git a/go.sum b/go.sum index 1183093..d6cf1cd 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= diff --git a/cmd/replica/main.go b/main.go similarity index 93% rename from cmd/replica/main.go rename to main.go index 51a6513..0057fbd 100644 --- a/cmd/replica/main.go +++ b/main.go @@ -7,7 +7,7 @@ import ( "strconv" "syscall" - "git.ma-al.com/goc_marek/replica/pkg/replica" + "git.ma-al.com/goc_marek/replica/replica" _ "github.com/go-sql-driver/mysql" ) @@ -88,7 +88,9 @@ func main() { // Start all services replica.Info("Starting binlog replication...") - multiService.StartAll() + if err := multiService.StartAll(cfg.BatchSize, cfg.WorkerCount, cfg.ExcludeSchemas); err != nil { + replica.Fatalf("Failed to start all services: %v", err) + } // Wait for shutdown signal sig := <-sigChan diff --git a/replica b/replica deleted file mode 100755 index 4939496a44e5c6334747bb743fd78d9194dac5be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12481215 zcmeFad3==B**88}8DzN!0SN*+=wOr9B|*_dh)y8D8JIvQs6kMpVvN>mATtmFF))c_ zI*gsFeX5VPwTsJuVxQfhJW*oa`TOH=5>Kl z&b%@&|FL|Qyfc5C#*Ml@U3iUrHm_zsSx(mBROuGy3RTXyRz7>Jd^WF%

)~=L0H# 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