7.1 Google Cloud Storage Service Selection Decision Matrix

Key Takeaways

  • Cloud Spanner provides horizontally scalable relational storage with external consistency via the TrueTime API and a 99.999% multi-region SLA, whereas Cloud SQL provides vertically scaled relational engines (up to 64 TB) with regional high availability.
  • Cloud Bigtable is a wide-column NoSQL database optimized for high-throughput, sub-10ms read/write latency on petabyte-scale streaming, time-series, and IoT workloads, with a minimum recommended data footprint of 1 TB.
  • BigQuery is a serverless, columnar OLAP enterprise data warehouse and lakehouse engineered for complex multi-terabyte to petabyte analytical SQL scans, and is an anti-pattern for high-frequency row-level transactional point lookups.
  • Firestore is a serverless document NoSQL engine tailored for mobile, web, and microservices requiring hierarchical JSON collections, multi-document ACID transactions, real-time client listeners, and automatic offline data synchronization.
  • Cloud Storage serves as an exabyte-scale unstructured object store offering strong global read-after-write consistency, immutable objects, and a flat namespace with virtual directory delimitation for data lakes and archives.
Last updated: September 2026

7.1 Google Cloud Storage Service Selection Decision Matrix

[!IMPORTANT] For the Google Cloud Professional Data Engineer exam, selecting a storage service is never solely about storage capacity or raw price per gigabyte. You must systematically evaluate five interconnected architectural dimensions: Data Model & Schema Rigidity (relational, wide-column, document, object, columnar), Latency Tolerance & Throughput (sub-10 millisecond operational OLTP vs. multi-second analytical OLAP), Query & Access Patterns (point key lookups, lexicographical range scans, full analytical table scans, real-time client sync), Transactional Guarantees (ACID with external consistency vs. regional ACID vs. multi-document ACID vs. single-row atomicity vs. object immutability), and Scale/Cost Boundaries (vertical limits vs. horizontal scaling, minimum operational scale thresholds).

Modern enterprise cloud architectures cannot rely on a single, monolithic persistence layer. Enterprise data ecosystems simultaneously process real-time streaming telemetry, global financial ledgers, mobile client interactions, semi-structured document payloads, and petabyte-scale analytical aggregations. Storing all workloads within a single generic database compromises latency, inflates operational costs, or violates compliance standards. Google Cloud provides a specialized portfolio of persistence engines, each engineered for distinct query semantics and operational scales. Selecting the wrong storage service introduces catastrophic bottlenecks, operational fragility, or exorbitant billing. This section presents a technical decision framework across Google Cloud's core persistence engines: Cloud Storage, Cloud SQL, Cloud Spanner, Cloud Bigtable, BigQuery, Firestore, AlloyDB for PostgreSQL, and Memorystore.


The Five Core Architectural Decision Dimensions

When analyzing exam scenarios, systematically evaluate the requirements across these five architectural axes:

+---------------------------------------------------------------------------------------------------+
|                         The 5 Architectural Storage Selection Dimensions                          |
+-------------------+--------------------+--------------------+--------------------+----------------+
| 1. Data Model     | 2. Latency Profile | 3. Access Pattern  | 4. Transactional   | 5. Scale & Cost|
| • Relational      | • Sub-1ms (Cache)  | • Single-key point | • External (Spanner| • Vertical (SQL|
| • Wide-Column     | • Sub-10ms (OLTP)  | • Row-range scan   | • Regional ACID    | • Horizontal   |
| • Document JSON   | • Multi-sec (OLAP) | • Ad-hoc SQL scan  | • Multi-doc ACID   | • Min footprint|
| • Columnar OLAP   | • High-throughput  | • Real-time listen | • Single-row atomic| • Serverless vs|
| • Unstructured    |   batch streaming  | • Object prefix GET| • Strong read/write|   provisioned  |
+-------------------+--------------------+--------------------+--------------------+----------------+

1. Data Model and Schema Rigidity

  • Structured Relational (Tabular / SQL): Rigid schemas with strongly typed columns, primary keys, foreign key constraints, table normalization, and complex relational joins. Best served by Cloud SQL (single-region workloads $\le 64$ TB), AlloyDB for PostgreSQL (high-throughput enterprise PostgreSQL workloads), or Cloud Spanner (horizontally scaled, globally distributed relational OLTP).
  • Semi-Structured Document (Hierarchical JSON): Flexible, schema-on-read or semi-structured entities organized into collections, documents, subcollections, and nested key-value maps. Best served by Firestore.
  • Wide-Column NoSQL (Sparse Multidimensional Sorted Map): Sparse tables organized by a single indexed Row Key, containing Column Families and timestamped column qualifiers. Lacks secondary indexes or joins. Best served by Cloud Bigtable.
  • Columnar Analytical (OLAP / Capacitor): Data stored column-by-column rather than row-by-row, optimized for high-speed parallel scans, aggregations, filtering, and partitioning across billions of records. Best served by BigQuery.
  • Unstructured Binary Objects (Blobs): Arbitrary opaque byte streams (CSV, JSON, Parquet, Avro, image, audio, video, backup tarballs) stored in a flat namespace. Best served by Cloud Storage.

2. Latency Tolerance and SLA Profiles

  • Microsecond In-Memory Latency ($< 1$ ms): Sub-millisecond read/write operations for transient caches, session management, and pub/sub message brokers. Best served by Memorystore for Redis / Memcached.
  • Sub-10 Millisecond Operational Latency (1–10 ms): Low, deterministic latency at massive query rates (millions of QPS). Best served by Cloud Bigtable (1–5 ms writes/reads) and Firestore (sub-10 ms document lookups).
  • Low Operational Transactional Latency (10–30 ms): Relational transactional operations with ACID durability. Best served by Cloud SQL, AlloyDB, and Cloud Spanner.
  • Analytical Scans (Sub-second to Multi-Minute): High-throughput analytical batch scans over terabytes or petabytes. Best served by BigQuery.
  • Object Retrieval Latency (Tens to Hundreds of Milliseconds): Immediate time-to-first-byte streaming for large binary files. Best served by Cloud Storage.

3. Query Semantics and Indexing Mechanics

  • Point Lookups by Single Key: Primary key lookups in Cloud SQL/Spanner, document ID path traversals in Firestore, or exact row-key lookups in Bigtable.
  • Lexicographical Key-Range Scans: Sequential scans across sorted keys (e.g., querying device_id#2026-09-01 through device_id#2026-09-14). Natively supported by Cloud Bigtable.
  • Complex Ad-Hoc SQL with Aggregations, Window Functions, and Joins: Large multi-table analytical queries spanning millions of rows. Natively supported by BigQuery (and to a lesser scale, Cloud Spanner and Cloud SQL).
  • Real-Time Client Queries with Active Synchronization: Mobile and web applications that require live snapshot listeners via WebSockets and automatic offline mutation queuing. Supported exclusively by Firestore.
  • Object Key Prefix Traversals: Listing and reading files by virtual directory prefixes (gs://bucket/data/2026/09/). Supported by Cloud Storage.

4. Transactional Consistency Guarantees

  • ACID with External Consistency (Strict Serializability): Guarantees that if a transaction commits before another begins in real-world wall-clock time, every client globally will observe the transactions in that exact order. Delivered exclusively by Cloud Spanner via the TrueTime API.
  • Regional ACID Transactions: Traditional database transactions isolated within a single regional database engine. Delivered by Cloud SQL and AlloyDB.
  • Multi-Document ACID Transactions: Coordinated atomic writes across multiple documents within collections. Delivered by Firestore.
  • Single-Row Atomicity Only: Atomic mutations restricted to a single row key; no distributed cross-row or cross-table transactions. Characterizes Cloud Bigtable.
  • Strong Global Read-After-Write Consistency: Immediate global propagation of object creations, overwrites, metadata updates, and deletions. Characterizes Cloud Storage.

5. Scalability Ceilings and Economic Minimum Thresholds

  • Vertical Compute & Storage Ceilings: Cloud SQL has a rigid upper limit of 64 TB per instance and maxes out at 96 vCPUs and 624 GB of RAM. When write throughput or storage exceeds these parameters, vertical scaling collapses.
  • Horizontal Elasticity: Cloud Spanner, Cloud Bigtable, BigQuery, and Cloud Storage scale horizontally across hundreds or thousands of nodes without downtime or architectural partitioning.
  • Minimum Operational Scale: Cloud Bigtable provisions dedicated compute nodes running continuously. The minimum recommended dataset size is 1 TB or sustained traffic exceeding several thousand queries per second. Provisioning Bigtable for a 50 GB dataset with sporadic traffic wastes hundreds of dollars monthly on idle compute; Firestore or Cloud SQL is vastly more economical.

Deep Dive: Google Cloud Persistence Engines

1. Cloud Storage (Exabyte Unstructured Object Store)

Cloud Storage is Google Cloud's globally distributed, exabyte-scale object persistence layer. It stores unstructured data as immutable binary blobs organized into buckets.

  • Namespace & Directory Semantics: Buckets possess a globally unique namespace across Google Cloud. Within a bucket, the namespace is completely flat. Forward slashes (/) in object paths (e.g., telemetry/2026/09/data.avro) do not represent physical filesystem directory inodes; they are string prefixes interpreted visually by client tooling.
  • Object Immutability: Once written, an object cannot be mutated in place. An update requires a complete overwrite of the entire payload. Concurrency control is enforced via immutable system metadata: generation numbers (identifying the content version) and metageneration numbers (identifying metadata updates). Data pipelines utilize precondition headers (if-generation-match) to prevent race conditions during concurrent writes.
  • Consistency Model: Provides strong global read-after-write consistency for all PUT, DELETE, and metadata update operations, as well as bucket LIST operations. The moment an upload returns HTTP 200 OK, all subsequent read operations globally reflect the updated object.
  • Ideal Workloads: Raw data lake landing zones for Apache Beam (Cloud Dataflow) and Apache Spark (Cloud Dataproc), BigLake external tables, machine learning model weights, and disaster recovery archives.

2. Cloud SQL (Managed Regional Relational OLTP)

Cloud SQL provides fully managed relational database engines supporting PostgreSQL, MySQL, and Microsoft SQL Server.

  • Architecture & Scaling: Cloud SQL scales vertically. Compute can be scaled up to 96 vCPUs and 624 GB of RAM. Storage auto-scales dynamically up to 64 TB per instance using Google Cloud Persistent Disks. Read capacity can be scaled horizontally by deploying read replicas within the primary region or across secondary regions.
  • High Availability (HA): Configured as a regional deployment with a primary instance and a standby instance residing in separate availability zones within the same region. Data replication between primary and standby is synchronous at the persistent disk block storage layer. In the event of primary zone failure, automated failover redirects connections to the standby instance within 60 seconds, delivering an SLA of 99.95%.
  • Exam Traps & Constraints: Cloud SQL cannot scale write operations horizontally across multiple nodes. Read replicas are strictly read-only and replicate asynchronously. Cloud SQL cannot exceed 64 TB. If an exam scenario specifies global multi-region active-active writes, horizontal write scaling, or storage exceeding 64 TB, Cloud SQL is an architectural anti-pattern.

3. Cloud Spanner (Globally Distributed Relational OLTP/HTAP)

Cloud Spanner is Google's enterprise-grade, globally distributed, horizontally scalable relational database service.

  • The TrueTime API & External Consistency: Traditional distributed databases suffer from clock drift, making global strict serializability impossible without expensive cross-datacenter locking locks. Spanner resolves this via the TrueTime API, which integrates atomic clocks and GPS receivers synchronized across Google's global data centers to bound clock uncertainty (represented as $\epsilon$, typically $< 7$ ms). By introducing an intentional commit wait equal to $2\epsilon$, Spanner guarantees external consistency (linearizability): if transaction $T_2$ initiates after transaction $T_1$ commits in real-world wall-clock time, $T_2$'s timestamp will strictly follow $T_1$'s timestamp globally.
  • High Availability & Scale: Regional Spanner instances offer a 99.99% SLA. Multi-region instances span continental regions and deliver an unprecedented 99.999% (five nines) availability SLA (less than 5.26 minutes of downtime per year) with zero planned maintenance windows.
  • Schema & SQL: Supports full ANSI 2011 SQL with relational schemas, secondary indexes, foreign keys, and zero-downtime online schema migrations. Under the hood, Spanner automatically splits tables into granular byte-range "splits" governed by individual Paxos consensus groups, balancing load dynamically across compute nodes.
  • Ideal Workloads: Mission-critical global OLTP systems such as financial transaction ledgers, international inventory management, travel reservation engines, and large-scale gaming economies.

4. Cloud Bigtable (Low-Latency Wide-Column NoSQL)

Cloud Bigtable is a sparsely populated, persistent, multidimensional sorted map, accessible via the open-source Apache HBase client API and high-performance gRPC.

  • Decoupled Architecture: Bigtable separates compute from storage. Compute nodes run inside Google's Borg container management system, while data is stored as immutable SSTables on Google's distributed file system, Colossus. Bigtable tablet servers do not hold data on local disks; they simply maintain pointers to SSTables on Colossus. Consequently, scaling a Bigtable cluster up or down completes in minutes without physical data rebalancing or copying.
  • Performance Profile: Engineered for sustained write throughput of millions of operations per second with predictable sub-10 millisecond latency (consistently 1 to 5 ms) for both single-row reads and writes.
  • Data Model & Row Key Mechanics: Data is indexed strictly by a single Row Key. Rows contain Column Families, which group related Column Qualifiers. Bigtable maintains multiple timestamped versions of each cell and enforces garbage collection policies (e.g., retain only the newest 3 versions, or drop cells older than 30 days). Bigtable does not support secondary indexes, foreign keys, or multi-row ACID transactions.
  • Minimum Operational Scale: Bigtable is cost-prohibitive for small workloads. Google recommends deploying Bigtable only when data volume exceeds 1 TB or continuous throughput exceeds thousands of queries per second. For smaller datasets, Firestore or Cloud SQL is significantly more cost-effective.
  • Ideal Workloads: Large-scale IoT and sensor telemetry streams, financial market ticker feeds, clickstream analytics, and real-time machine learning feature stores.

5. BigQuery (Serverless Columnar Enterprise Data Warehouse & Lakehouse)

BigQuery is Google Cloud's fully managed, serverless enterprise data warehouse and lakehouse platform.

  • Dremel & Capacitor Architecture: BigQuery completely decouples execution compute (Dremel MPP engine dynamically allocating slots) from storage (Capacitor columnar format on Colossus), interconnected by the ultra-high-bandwidth Jupiter network fabric (providing over 1 Petabit/sec bisection bandwidth).
  • Columnar Efficiency: Capacitor stores table data column-by-column rather than row-by-row. When analytical SQL queries execute SELECT category, SUM(revenue) FROM sales GROUP BY category, BigQuery reads only the bytes for the category and revenue columns, skipping all other attributes entirely.
  • Ingestion & Latency: BigQuery is an OLAP engine designed for multi-second to minute-long analytical queries scanning billions of records. High-throughput streaming ingestion is handled via the BigQuery Storage Write API, supporting exactly-once stream processing. However, BigQuery is not an operational OLTP database; using BigQuery for single-row sub-second point lookups or high-frequency row-level mutations is a severe architectural anti-pattern.
  • Ideal Workloads: Enterprise data warehousing, business intelligence reporting, ad-hoc exploratory SQL, BigQuery ML, and federated queries across Cloud Storage data lakes via BigLake.

6. Firestore (Native Mode / Document NoSQL)

Firestore is a serverless, horizontally scalable NoSQL document database designed for web, mobile, and serverless microservices.

  • Hierarchical Document Model: Data is organized into collections containing documents, which can contain nested subcollections and structured JSON-like key-value maps.
  • Enterprise Features: Out-of-the-box support for multi-document ACID transactions, automatic indexing on all document fields, real-time client listeners via WebSockets, and built-in offline synchronization with mobile and web client SDKs.
  • Availability: Regional deployments provide 99.99% availability, and multi-region deployments provide 99.999% availability.
  • Ideal Workloads: User profile stores, mobile app backend persistence, shopping carts, game state management, and collaborative real-time web applications.

7. AlloyDB for PostgreSQL (Enterprise High-Performance HTAP)

AlloyDB is a fully managed, PostgreSQL-compatible relational database service designed for demanding enterprise workloads requiring high transaction throughput and hybrid analytical processing.

  • Disaggregated Compute and Storage: AlloyDB replaces the standard PostgreSQL storage layer with a distributed, database-aware storage engine that offloads write-ahead logging (WAL) processing, backups, and replication to a dedicated storage fleet.
  • Performance Acceleration: Delivers up to 4x faster transaction processing than standard open-source PostgreSQL and up to 100x faster analytical queries via an integrated Columnar Engine that caches data in memory in columnar format.
  • Ideal Workloads: Modernizing legacy Oracle or Microsoft SQL Server databases to open-source PostgreSQL standards, and HTAP workloads requiring transactional processing alongside real-time analytical reporting.

8. Memorystore (In-Memory Microsecond Cache)

Memorystore provides fully managed implementations of Redis and Memcached.

  • Performance Profile: Delivers sub-millisecond response times by retaining data entirely in memory.
  • High Availability: Memorystore for Redis provides cross-zone high availability with automated failover, read replicas for scaling read throughput, and persistent RDB/AOF snapshots.
  • Ideal Workloads: In-memory session caches, gaming leaderboards, application query caching in front of Cloud SQL or Spanner, and transient pub/sub messaging buffers.

Master Storage Engine Comparison Matrix

Persistence EngineData ModelPrimary Access KeyQuery InterfaceTransactional SemanticsScalability CeilingLatency ProfileHigh Availability SLAMinimum Economic Footprint
Cloud StorageUnstructured binary blobsBucket + Object Name stringREST API, gRPC, Cloud SDK, GCS URIObject-level atomic; generation preconditionExabytes (horizontal)Tens to hundreds of ms99.95% (Multi/Dual), 99.9% (Regional)Zero (pay-per-GB)
Cloud SQLRelational (MySQL, Postgres, SQL Server)Primary Key / Foreign KeyStandard Dialect SQLFull ACID (single-instance)64 TB storage; 96 vCPU ceiling (vertical)5–20 ms operational99.95% (Regional HA with failover)Single micro-instance
AlloyDBPostgreSQL Relational + Columnar CachePrimary Key / Foreign KeyPostgreSQL ANSI SQLFull ACIDUp to 128 TB; horizontal read pools2–10 ms operational; sub-sec HTAP99.99% (Regional HA)1 Primary Instance + Storage
Cloud SpannerHorizontally distributed RelationalPrimary Key / Sharded SplitsANSI 2011 SQLFull ACID with External Consistency (TrueTime)Virtually unlimited (petabytes+)5–15 ms read, 10–30 ms write99.99% (Regional), 99.999% (Multi-Region)100 Processing Units (0.1 node)
Cloud BigtableWide-column NoSQL (sparse sorted map)Single Row KeyHBase API, gRPC client librariesSingle-row atomic only (no multi-row ACID)Petabytes+ (horizontal node scaling)Sub-10 ms (1–5 ms read/write)99.9% (Single Cluster), 99.99%–99.999% (Multi)1 TB recommended / sustained QPS
BigQueryRelational columnar (Capacitor format)Partition Key / Cluster KeysANSI SQL 2011 with ML extensionsBatch DML transactions (no row-level OLTP)Exabytes (serverless horizontal)Sub-second to multi-minute analytical scans99.99% (Multi-Region / Regional)Zero (pay-per-query or slot reservations)
FirestoreHierarchical Document NoSQLDocument Path / Unique Document IDFirestore SDK, structured filter queriesMulti-document ACID transactionsTerabytes+ (serverless horizontal)Sub-10 ms document lookups99.99% (Regional), 99.999% (Multi-Region)Zero (serverless pay-per-operation)
MemorystoreKey-Value / In-memory data structuresIn-memory String KeyRedis API / Memcached protocolRedis atomic operations / transactionsUp to 300 GB in-memory per instanceSub-millisecond ($< 1$ ms)99.9% (Basic), 99.95% (Standard HA)1 GB instance

The Six-Step Architectural Selection Methodology

When confronting a scenario question on the Google Cloud Professional Data Engineer exam, follow this deterministic selection workflow:

Step 1: Is the data unstructured binary content (files, images, raw logs, models)?
  ├── YES ──> Choose CLOUD STORAGE.
  └── NO  ──> Proceed to Step 2.

Step 2: Is the primary workload analytical OLAP requiring complex aggregations over historical data?
  ├── YES ──> Choose BIGQUERY.
  └── NO  ──> Proceed to Step 3.

Step 3: Does the workload require sub-millisecond in-memory caching or session management?
  ├── YES ──> Choose MEMORYSTORE (Redis/Memcached).
  └── NO  ──> Proceed to Step 4.

Step 4: Does the data require a Relational schema (tables, foreign keys, SQL joins, ACID)?
  ├── YES ──> Evaluate Scale & Distribution:
  │           ├── Global multi-region active-active writes, >64 TB, or 99.999% SLA? ──> Choose CLOUD SPANNER.
  │           ├── High-performance PostgreSQL enterprise modernization / HTAP? ───────> Choose ALLOYDB.
  │           └── Regional deployment, <=64 TB, standard MySQL/Postgres/SQL Server? ──> Choose CLOUD SQL.
  └── NO  ──> Proceed to Step 5 (NoSQL).

Step 5: Is the NoSQL data structure Wide-Column or Document-based?
  ├── Wide-Column: Massive streaming, time-series/IoT, sub-10ms, >= 1 TB ─────────────> Choose CLOUD BIGTABLE.
  └── Document: Mobile/web backend, JSON entities, offline sync, multi-doc ACID ───────> Choose FIRESTORE.

Architectural Anti-Patterns and Common Exam Traps

  1. BigQuery as an Operational OLTP Engine: Storing user session states or transactional shopping carts in BigQuery and executing high-frequency single-row UPDATE and INSERT DML statements. BigQuery imposes concurrent rate limits on DML mutations and charges per byte scanned or per slot. Point lookups and single-row updates incur prohibitive query latencies (typically 1–3 seconds) and exhaust DML quotas. Use Firestore, Cloud SQL, or Memorystore instead.
  2. Cloud Bigtable for Under-Scale or Relational Datasets: Selecting Bigtable for a 40 GB relational customer catalog that requires SQL joins across customer orders. Bigtable does not support SQL joins, secondary indexes, or multi-row ACID transactions. Furthermore, provisioning a 3-node Bigtable cluster for a small dataset wastes budget on idle compute nodes. Cloud SQL or Firestore provides native query capabilities at a fraction of the cost.
  3. Cloud SQL for Globally Distributed Active-Active Writes: Designing a global banking system across the US, Europe, and Asia on Cloud SQL using cross-region read replicas. Cloud SQL read replicas are strictly read-only and replicate asynchronously from the primary instance. Writing to the replica is impossible; all writes must funnel to the single regional primary instance, causing severe cross-continental latency and single-point-of-failure bottlenecks. Globally distributed active writes mandate Cloud Spanner.
  4. Using Cloud Storage as a High-Frequency Mutable Key-Value Store: Storing rapidly changing real-time application states as small JSON files in Cloud Storage. Because Cloud Storage objects are immutable, every minor state modification rewrites the entire file. This creates massive write amplification, triggers API rate-limiting thresholds (especially when writing to the same object name more than once per second), and introduces concurrency contention. Use Memorystore or Firestore instead.
  5. Firestore for High-Velocity Unbounded IoT Telemetry: Ingesting 200,000 sensor telemetry readings per second into Firestore documents. Firestore charges per document write. Ingesting billions of writes per day into Firestore results in catastrophic billing escalation and violates document write rate limits (1 write/second per document). High-throughput streaming time-series data must be routed to Cloud Bigtable or ingested directly into BigQuery via the Storage Write API.
Loading diagram...
Google Cloud Storage Engine Architectural Selection Decision Flowchart
Test Your Knowledge

A multinational financial services institution is re-architecting its global payment authorization ledger. The platform must process credit card transactions simultaneously across North America, Europe, and Asia. The system mandates relational table structures, ANSI SQL query capabilities, strict ACID transactional integrity with external consistency, and continuous 24/7 availability with an SLA of at least 99.999%. The projected database storage footprint will exceed 150 TB within the first year. Which Google Cloud storage engine meets all requirements?

A
B
C
D
Test Your Knowledge

An industrial IoT telemetry platform collects sensor metrics from 2,500,000 wind turbines worldwide. Each turbine transmits telemetry readings every 4 seconds, generating over 600,000 writes per second. The system requires single-digit millisecond write latency, and downstream analytical jobs must perform sequential time-range scans across specific turbine identifier prefixes over a 12 PB historical dataset. The architecture does not require multi-row transactions or complex SQL joins. Which storage solution is optimal?

A
B
C
D
Test Your Knowledge

A digital media startup is developing a collaborative mobile drawing application. The application requires storing user profile documents, live canvas metadata, and chat message history. The platform must automatically synchronize real-time updates to connected mobile clients, support offline data creation on mobile devices with automatic synchronization upon reconnection, and execute ACID transactions across multiple document updates. The total data volume is estimated at 300 GB. Which storage engine should the engineering team select?

A
B
C
D