| Feature | Amazon DMS | Azure DMS |
|---|---|---|
| Primary Use | Database migration & CDC replication | Database migration & CDC replication |
| Supported Targets | Aurora, RDS, Redshift, S3 | Azure SQL, PostgreSQL, MySQL, SQL Managed Instance |
| CDC / Incremental Load | Yes | Yes |
| Serverless Mode | Yes (DMS Serverless) | Yes (DMS Standard with Azure Migrate Integration) |
| Monitoring | CloudWatch | Azure Monitor / Azure Portal |
| Schema Conversion | With AW |
| | **Feature** | **Amazon DMS** | **Azure DMS** | | |
| |----------------------------|--------------------------------------------------|----------------------------------------------------------| | |
| | **Primary Use** | Database migration & CDC replication | Database migration & CDC replication | | |
| | **Supported Targets** | Aurora, RDS, Redshift, S3 | Azure SQL, PostgreSQL, MySQL, SQL Managed Instance | | |
| | **CDC / Incremental Load** | Yes | Yes | | |
| | **Serverless Mode** | Yes (DMS Serverless) | Yes (DMS Standard with Azure Migrate Integration) | | |
| | **Monitoring** | CloudWatch | Azure Monitor / Azure Portal | | |
| | **Schema Conversion** | With AW |
| Feature | Amazon DMS | Azure DMS |
| -------------------------- | ------------------------------------ | -------------------------------------------------------- |
| Primary Use | Database migration & CDC replication | Database migration & CDC replication |
| Supported Targets | Aurora, RDS, Redshift, S3 | Azure SQL, PostgreSQL, MySQL, SQL MI |
| CDC / Incremental Load | Yes | Yes |
| Stage | AWS Services | Purpose |
| ------------------ | -------------------------------------- | ------------------------------------------------------ |
| Ingestion | DMS, Kinesis, AppFlow, Transfer Family | Bringing data from on-prem, SaaS, or streaming sources |
| Transformation | Glue, EMR, Kinesis Data Analytics | Cleaning, enriching, and standardizing data |
| Orchestration | Glue Workflows, Step Functions, Lambda | Scheduling, dependency handling, and automation |
| Memory Area | Description |
|---|---|
| User Space | Memory accessible by applications, including heap, stack, and loaded libraries. Each process has its own isolated user space. |
| Kernel Space | Protected memory used by the operating system for core routines, drivers, and managing processes. Shared among all processes but inaccessible to user applications. |
| Metric | Description |
|---|---|
| VSZ (Virtual Memory Size) | Total virtual memory requested by a process, including all mapped libraries, heap, stack, and reserved address space. Can appear very large, even if not all memory is used. |
| RSS (Resident Set Size) | Actual memory currently residing in RAM for the process. Reflects the real memory footprint that affects system performance. |
| Field | Purpose |
|---|---|
| lock | Mutex used for protecting span and memory operations. |
| free | mTreap of non-scavenged spans, i.e., available memory that hasn’t been returned to the OS. |
| scav | mTreap of free and scavenged spans, i.e., memory ready to be reused or returned to the OS. |
| sweepgen | Tracks the current sweep generation for the garbage collector. |
| sweepdone | Indicates whether all spans in a generation have been swept. |
| sweepers | Number of active sweepone calls running concurrently. |
| Term | Description |
|---|---|
| Concurrent | Runs alongside your goroutines without stopping the world for long periods. |
| Tri-color | Objects are tracked as: • White = unreachable (candidate for GC) • Gray = discovered, still need scanning • Black = reachable, fully scanned |
| Mark-and-sweep | The GC first marks all live objects (reachable from roots), then sweeps memory used by unreachable objects. |
| Aspect | mspan | mheap |
|---|---|---|
| Scope | Local to P while allocated | Global, shared among all Ps |
| Allocation | Divided into slots for small objects | Provides spans to mcentral/mcache or allocates large objects directly |
| Sharing | Moves between Ps via mcentral, never shared while in use | Shared globally across all Ps |
| Locking | Lock-free while local | Locking required for global access |
| Type | Size | Allocation Path |
|---|---|---|
| Tiny | <16 bytes | mcache (fast path) |
| Small | 16B–32KB | mcache → mspan → mcentral → mheap → OS |
| Large | >32KB | mheap → OS (direct allocation) |