Bird
Raised Fist0
GCPcloud~5 mins

Configuration properties in GCP - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Configuration properties
O(n)
Understanding Time Complexity

When setting configuration properties in cloud services, it's important to understand how the time to apply these settings changes as you add more properties.

We want to know how the number of configuration changes affects the total time taken.

Scenario Under Consideration

Analyze the time complexity of updating configuration properties one by one.


// Pseudocode for updating configuration properties
for property in configProperties:
  gcpClient.updateConfig(property.key, property.value)
    

This sequence updates each configuration property individually by calling the update API for each.

Identify Repeating Operations

Look at what repeats during this process.

  • Primary operation: API call to update a single configuration property
  • How many times: Once per property in the list
How Execution Grows With Input

Each new property adds one more API call, so the total calls grow directly with the number of properties.

Input Size (n)Approx. API Calls/Operations
1010
100100
10001000

Pattern observation: The number of API calls increases one-to-one with the number of properties.

Final Time Complexity

Time Complexity: O(n)

This means the time to update configuration grows directly in proportion to how many properties you change.

Common Mistake

[X] Wrong: "Updating many properties at once takes the same time as updating one."

[OK] Correct: Each property update requires a separate API call, so more properties mean more calls and more time.

Interview Connect

Understanding how configuration updates scale helps you design efficient cloud setups and shows you can think about how systems behave as they grow.

Self-Check

"What if we batch all configuration properties into a single API call? How would the time complexity change?"

Practice

(1/5)
1. What is the purpose of configuration properties in Google Cloud Platform (GCP)?
easy
A. To define settings that control how cloud resources behave
B. To write application code for cloud functions
C. To store user data in databases
D. To monitor network traffic in real-time

Solution

  1. Step 1: Understand configuration properties

    Configuration properties are settings that control the behavior of cloud resources like virtual machines, storage, or services.
  2. Step 2: Differentiate from other cloud tasks

    Writing code, storing data, or monitoring traffic are different tasks not directly related to configuration properties.
  3. Final Answer:

    To define settings that control how cloud resources behave -> Option A
  4. Quick Check:

    Configuration properties = settings control behavior [OK]
Hint: Think of configuration as setting rules for cloud resources [OK]
Common Mistakes:
  • Confusing configuration with coding
  • Mixing configuration with data storage
  • Assuming configuration monitors traffic
2. Which of the following is the correct way to specify a configuration property in a GCP YAML deployment file?
easy
A. config: instanceType = n1-standard-1
B. properties: instanceType: n1-standard-1
C. settings: instanceType: 'n1-standard-1'
D. parameters: instanceType -> n1-standard-1

Solution

  1. Step 1: Identify correct YAML syntax for properties

    In GCP deployment manager, configuration properties are under 'properties:' with key-value pairs using colon and indentation.
  2. Step 2: Check each option's syntax

    properties: instanceType: n1-standard-1 uses 'properties:' and colon syntax correctly. Options B, C, and D use incorrect keys or invalid syntax like '=' or '->'.
  3. Final Answer:

    properties: instanceType: n1-standard-1 -> Option B
  4. Quick Check:

    YAML properties use colon and indentation [OK]
Hint: YAML uses colon and indentation for key-value pairs [OK]
Common Mistakes:
  • Using '=' instead of ':' in YAML
  • Wrong top-level key like 'config' or 'settings'
  • Using symbols like '->' which are invalid in YAML
3. Given this snippet of a GCP deployment YAML:
resources:
- name: my-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-10
What is the machine type configured for the VM?
medium
A. n1-standard-1
B. us-central1-a
C. debian-10
D. PERSISTENT

Solution

  1. Step 1: Locate machineType property

    The machineType is set under properties as 'zones/us-central1-a/machineTypes/n1-standard-1'. The last part after the last slash is the machine type.
  2. Step 2: Extract machine type value

    The machine type is 'n1-standard-1', which defines the VM size and resources.
  3. Final Answer:

    n1-standard-1 -> Option A
  4. Quick Check:

    Machine type is the last part of the path [OK]
Hint: Machine type is the last segment in the machineTypes path [OK]
Common Mistakes:
  • Confusing zone with machine type
  • Picking image name as machine type
  • Selecting disk type as machine type
4. You have this GCP deployment YAML snippet:
resources:
- name: my-storage
  type: storage.v1.bucket
  properties:
    location: us-east1
    storageClass: STANDARD
    versioning:
      enabled: true
    accessControl:
      - entity: allUsers
        role: READER
What is the error in this configuration?
medium
A. location must be a zone, not a region
B. versioning.enabled must be false for public buckets
C. accessControl should be acl
D. storageClass must be lowercase

Solution

  1. Step 1: Check property names for storage bucket

    The correct property for access control in GCP storage buckets is 'acl', not 'accessControl'.
  2. Step 2: Validate other properties

    Versioning can be true or false regardless of public access. StorageClass is case-insensitive but usually uppercase is accepted. Location is a region, which is correct.
  3. Final Answer:

    accessControl should be acl -> Option C
  4. Quick Check:

    Property names must match GCP specs exactly [OK]
Hint: Check exact property names in GCP docs [OK]
Common Mistakes:
  • Using incorrect property name 'accessControl' instead of 'acl'
  • Assuming versioning must be false for public buckets
  • Confusing region and zone names
5. You want to configure a GCP Compute Engine instance with a startup script and custom metadata. Which configuration properties should you use in your deployment YAML to achieve this?
hard
A. startupScript: | #!/bin/bash echo Hello World
B. scripts: startup: '#!/bin/bash\necho Hello World'
C. customMetadata: startup-script: '#!/bin/bash\necho Hello World'
D. metadata: items: - key: startup-script value: |- #!/bin/bash echo Hello World

Solution

  1. Step 1: Identify correct metadata property for startup scripts

    GCP Compute Engine uses 'metadata' with 'items' list containing key-value pairs for custom metadata like 'startup-script'.
  2. Step 2: Verify syntax for multiline script

    Using '|-' in YAML allows multiline script values correctly under 'value'. Other options use incorrect property names or formats.
  3. Final Answer:

    metadata: items: - key: startup-script value: |- #!/bin/bash echo Hello World -> Option D
  4. Quick Check:

    Use metadata.items with key startup-script [OK]
Hint: Startup scripts go under metadata.items with key 'startup-script' [OK]
Common Mistakes:
  • Using wrong property names like startupScript or scripts
  • Not formatting multiline scripts properly in YAML
  • Placing script outside metadata block