-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/69072/
-----------------------------------------------------------

(Updated Oct. 18, 2018, 10:01 p.m.)


Review request for ranger, Madhan Neethiraj, Ramesh Mani, and Velmurugan 
Periasamy.


Changes
-------

Addressed review comments on a related patch for ranger-0.7 
(https://reviews.apache.org/r/68881/)


Bugs: RANGER-2203 and RANGER-2219
    https://issues.apache.org/jira/browse/RANGER-2203
    https://issues.apache.org/jira/browse/RANGER-2219


Repository: ranger


Description
-------

Currently, ranger policies are fully normalized and stored in a multiple 
Relational database tables. There is a performance overhead incurred when 
retrieving a ranger policy, as multiple database accesses are required to fully 
reconstruct it. This is significant when there are large ranger policies (that 
is, the number of resources addressed by the policy is large), and/or when 
there is a large number of ranger policies in an installation.

This Jira tracks alternate design of database schema, where a policy is stored 
in a de-normalized way, in its entirely, in one database table (preferably as a 
JSON string).

Currently, tag-definitions, tags and service-resources are stored in database 
using a normalized form. When constructing resource->tag mappings, this schema 
design may lead to a large number of database accesses, thereby causing a major 
performance bottleneck when the number of resource->tag associations is large.

Denormalized schema will reduce the number of database accesses, and improve 
overall performance significantly.


Diffs (updated)
-----

  agents-common/pom.xml 09a32fa8b 
  
agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
 bc4a8b523 
  
agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java
 adafb9985 
  agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java 
5918b1292 
  embeddedwebserver/scripts/ranger-admin-services.sh b8ca6c7d5 
  security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql 32cf6db3b 
  security-admin/db/mysql/patches/035-update-schema-for-x-policy.sql 
PRE-CREATION 
  security-admin/db/mysql/patches/036-denormalize-tag-tables.sql PRE-CREATION 
  security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql 
2e577f3bd 
  security-admin/db/oracle/patches/035-update-schema-for-x-policy.sql 
PRE-CREATION 
  security-admin/db/oracle/patches/036-denormalize-tag-tables.sql PRE-CREATION 
  security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql 
bad32efbc 
  security-admin/db/postgres/patches/035-update-schema-for-x-policy.sql 
PRE-CREATION 
  security-admin/db/postgres/patches/036-denormalize-tag-tables.sql 
PRE-CREATION 
  
security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql 
9482992e7 
  security-admin/db/sqlanywhere/patches/035-update-schema-for-x-policy.sql 
PRE-CREATION 
  security-admin/db/sqlanywhere/patches/036-denormalize-tag-tables.sql 
PRE-CREATION 
  security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql 
85f328556 
  security-admin/db/sqlserver/patches/035-update-schema-for-x-policy.sql 
PRE-CREATION 
  security-admin/db/sqlserver/patches/036-denormalize-tag-tables.sql 
PRE-CREATION 
  security-admin/scripts/db_setup.py 02701c726 
  security-admin/src/main/java/org/apache/ranger/biz/PolicyRefUpdater.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java 
c26f0a576 
  security-admin/src/main/java/org/apache/ranger/biz/RangerTagDBRetriever.java 
7875bc2a8 
  security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java 
6c699cad9 
  security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java d29df930c 
  
security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
 0d5689a03 
  security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java 
5dffc0ef2 
  security-admin/src/main/java/org/apache/ranger/db/XXAccessTypeDefDao.java 
e04280bc8 
  security-admin/src/main/java/org/apache/ranger/db/XXDataMaskTypeDefDao.java 
3dd4376e4 
  security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java 9a87b4cfd 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyConditionDefDao.java 
a12140aba 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemAccessDao.java 
9be38decd 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemConditionDao.java 
9b11545a0 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemDataMaskInfoDao.java
 67c7e9961 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemGroupPermDao.java 
a6fd8c65b 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemRowFilterInfoDao.java
 01a36a50d 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyItemUserPermDao.java 
667265485 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefAccessTypeDao.java 
PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefConditionDao.java 
PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefDataMaskTypeDao.java
 PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefGroupDao.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefResourceDao.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyRefUserDao.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyResourceDao.java 
a7157deb4 
  security-admin/src/main/java/org/apache/ranger/db/XXPolicyResourceMapDao.java 
55d8c50e4 
  security-admin/src/main/java/org/apache/ranger/db/XXResourceDefDao.java 
b2e311fef 
  security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java 
ee0e40043 
  
security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementDao.java
 c9a1c2132 
  
security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceElementValueDao.java
 364af6d0f 
  security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDao.java 
40c3a887b 
  security-admin/src/main/java/org/apache/ranger/db/XXTagAttributeDefDao.java 
129f3c13c 
  security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java e14f836e7 
  security-admin/src/main/java/org/apache/ranger/db/XXTagDefDao.java c0dd88371 
  security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java 
f9e041a3f 
  security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java 58bf4d891 
  security-admin/src/main/java/org/apache/ranger/entity/XXDBBase.java 8405eb3e4 
  security-admin/src/main/java/org/apache/ranger/entity/XXPolicyBase.java 
584a103ff 
  
security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefAccessType.java
 PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefCondition.java 
PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefDataMaskType.java
 PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefGroup.java 
PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefResource.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/entity/XXPolicyRefUser.java 
PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/entity/XXServiceResource.java 
961627a3c 
  security-admin/src/main/java/org/apache/ranger/entity/XXTag.java d26a0b079 
  security-admin/src/main/java/org/apache/ranger/entity/XXTagDef.java 818908ba8 
  
security-admin/src/main/java/org/apache/ranger/patch/PatchForUpdatingPolicyJson_J10019.java
 PRE-CREATION 
  
security-admin/src/main/java/org/apache/ranger/patch/PatchForUpdatingTagsJson_J10020.java
 PRE-CREATION 
  security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 
97b8d7192 
  security-admin/src/main/java/org/apache/ranger/service/RangerAuditFields.java 
e6a519a17 
  
security-admin/src/main/java/org/apache/ranger/service/RangerPolicyServiceBase.java
 8d42165f7 
  
security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
 5cbe47ad3 
  
security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java
 d7256802a 
  
security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java
 6af682a81 
  
security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java 
82eb252e6 
  
security-admin/src/main/java/org/apache/ranger/service/RangerTagDefServiceBase.java
 408358c48 
  security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java 
28b9115fa 
  
security-admin/src/main/java/org/apache/ranger/service/XPortalUserService.java 
c96878d21 
  security-admin/src/main/resources/META-INF/jpa_named_queries.xml cdf6ba655 
  security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java 
c9db90a0e 
  security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java 
15344ea30 
  
security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java
 8f19ffd78 
  
security-admin/src/test/java/org/apache/ranger/service/TestRangerTagService.java
 1175989e2 


Diff: https://reviews.apache.org/r/69072/diff/2/

Changes: https://reviews.apache.org/r/69072/diff/1-2/


Testing
-------

Tested with local VM for migration, policy CRUD, policy browsing and policy 
enforcement in Hive plugin.


Thanks,

Abhay Kulkarni

Reply via email to