Implement/Design the version control map system

Problem: Implement the version control map system which takes the snapshot of the versions of data. Implement the following functions:

  • put(key, value) – puts the value again the key in the latest version of the map
  • get(key) – get the value of the key for the latest version of the data
  • snapshot() – take a snapshot and increment the version
  • getValVersion(version id, key) – return value of the key of the particular version
  • getCurrentVersion() – return the latest/current version

Example:

Operations
put("memory", "16GB")
put("os_version", "10")
put("graphics", "intel_10_153")
snapshot()
put("os_version", "11")
put("graphics", "intel_11_153")
get("graphics"))
getCurrentVersion())
getValVersion(0, "graphics"))
get("os_version"))

Output:
graphics in current version: intel_11_153
Current Control Map version is : 1
graphics in version 0 : intel_10_153
os_version in current version: 11

Approach: Use Map of maps

  • The first map will have the version of the control map system as key and the second map as value. 
  • The second map will store the key-value pairs of attributes of a particular version of the control map.
  • Integer currentVersion will represent the latest version at any point of time.
  • put(key, value) – Insert a key-value pair in the second map against the current_version in the first map.
  • get(key) – Get the value from the second map for the given key against the current_version in the first map
  • snapshot() – do old_version = current_version. Increment the current_version by 1 and then insert all the values from old_version to current_version.
  • getValVersion(version_id, key) – Get the value from the second map for the given key against the version_id in the first map. If version_id does not exist, print the error message.
  • getCurrentVersion() – return the current_version.

Complete Code:

Output:

Initializing Version Control Map System
graphics in current version: intel_11_153
Current Control Map version is : 1
graphics in version 0 : intel_10_153
os_version in current version: 11

Reference: https://www.careercup.com/question?id=5708770181644288

__________________________________________________
Top Companies Interview Questions..-

Google Microsoft Amazon Facebook more..

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.
__________________________________________________

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: