atlas-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sarath Kumar Subramanian <>
Subject Re: Review Request 51939: Framework to apply updates to types in the type-system
Date Tue, 27 Sep 2016 23:08:33 GMT

This is an automatically generated e-mail. To reply, visit:

(Updated Sept. 27, 2016, 4:08 p.m.)

Review request for atlas, Madhan Neethiraj, Shwetha GS, and Suma Shivaprasad.


throw exception when a patch fails - json deserialization, incorrect type or IO failures,
similar to model behavior.

Bugs: ATLAS-1174

Repository: atlas


1. Introduce "version" attribute to all types in the type-system, this helps to track changes
made to the default types (hive, sqoop, falcon and storm types) and user created types. If
version is not mentioned during creation of a type, default version "1.0" is assigned (optional
2. Using the version attributed for types, introduce a patch framework for type system. This
framework applies patches to a type using its version number and can be used during upgrade
- add new attributes to an existing types and it will be run during atlas startup.
The sequence of steps:
a. During atlas startup, check $ATLAS_HOME/models/patches directory for any available patch
files (json files). If there any patch files handle them.
b. Sample patch json file looks like:
"patches": [
"action": "ADD_ATTRIBUTE",
"typeName": "hive_column",
"applyToVersion": "1.0",
"updateToVersion": "2.0",
"actionParams": [
{ "name": "position", "dataTypeName": "int", "multiplicity": "optional", "isComposite": false,
"isUnique": false, "isIndexable": false, "reverseAttributeName": null }
} ]
c. The framework updates the type in "typeName" for the matching version number and after
applying the patch, update the version to the one mentioned in "updateToVersion"
d. The json file can have more than one action (array of actions).
e. There can be multiple patch json files in the directory and are applied in the sort order
of the filename. eg:

Diffs (updated)

  common/src/main/java/org/apache/atlas/ 17ffbd7 
  common/src/main/java/org/apache/atlas/repository/ d7f9c89 
  repository/src/main/java/org/apache/atlas/services/ PRE-CREATION 
  repository/src/main/java/org/apache/atlas/services/ PRE-CREATION

  repository/src/main/java/org/apache/atlas/services/ PRE-CREATION 
  repository/src/main/java/org/apache/atlas/services/ 3550492 
  repository/src/test/java/org/apache/atlas/service/ 6782970

  typesystem/src/main/java/org/apache/atlas/typesystem/types/ fad091d

  typesystem/src/main/java/org/apache/atlas/typesystem/types/ c56987a 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/ bdd0a13 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/ 6340615

  typesystem/src/main/java/org/apache/atlas/typesystem/types/ 7224699

  typesystem/src/main/java/org/apache/atlas/typesystem/types/ 85ddee7 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/ 6f40c1d 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/ f1ce1b7

  typesystem/src/main/java/org/apache/atlas/typesystem/types/ f23bf5b 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/ 70ba89b 
  typesystem/src/main/java/org/apache/atlas/typesystem/types/utils/ ef8448d

  typesystem/src/main/scala/org/apache/atlas/typesystem/json/TypesSerialization.scala 5618938




Sarath Kumar Subramanian

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message