> On March 20, 2015, 6:08 a.m., Jaideep dhok wrote:
> > Right now none of our cache reads or updates are synchronized. Since we are
> > caching CubeMetastoreClients and these are shared across sessions we should
> > properly synchronize cache calls.
>
> Amareshwari Sriramadasu wrote:
> Will make all the maps ConcurrentHashMap
I think just making them ConcurrentHashMap is not enough. All 'get, check and
put' transactions also need to be synchronized. For example
```
tbl = allHiveTables.get(tableName);
if (tbl == null) {
tbl = getClient().getTable(tableName);
if (enableCaching) {
allHiveTables.put(tableName, tbl);
}
}
```
All similar blocks need to be under a synchronized block or guarded by locks.
- Jaideep
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/32281/#review77172
-----------------------------------------------------------
On March 20, 2015, 5:52 a.m., Amareshwari Sriramadasu wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/32281/
> -----------------------------------------------------------
>
> (Updated March 20, 2015, 5:52 a.m.)
>
>
> Review request for lens, Jaideep dhok and Rajat Khandelwal.
>
>
> Bugs: LENS-404
> https://issues.apache.org/jira/browse/LENS-404
>
>
> Repository: lens
>
>
> Description
> -------
>
> Changes include :
> - getAll* methods in cube metastore are responded through cache
> - isCube and isDimension calls changed to look at allCubes and allDimensions
> instead of hitting metastore when table does not exist
> - Changed the caching keys to have .trim().toLowercase() on all
> updates/lookups. They are lookups/updates in code which dont trim names,
> wanted to the cache to agnostic to those.
> - Changed multiple calls of getClient(sessionid) in CubeMetastoreService in
> single method, as getClient() is not trivial call
>
>
> Diffs
> -----
>
>
> lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionTableCommands.java
> 83fb8c8
>
> lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeDimensionTable.java
> a188a41
> lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
> e0e87ab
>
> lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
> 61e511f
>
> lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
> 8ea6547
>
> Diff: https://reviews.apache.org/r/32281/diff/
>
>
> Testing
> -------
>
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] Lens Checkstyle Rules ............................. SUCCESS [2.173s]
> [INFO] Lens .............................................. SUCCESS [1.769s]
> [INFO] Lens API .......................................... SUCCESS [5.111s]
> [INFO] Lens API for server and extensions ................ SUCCESS [6.955s]
> [INFO] Lens Cube ......................................... SUCCESS [2:06.767s]
> [INFO] Lens DB storage ................................... SUCCESS [10.459s]
> [INFO] Lens Query Library ................................ SUCCESS [4.952s]
> [INFO] Lens Hive Driver .................................. SUCCESS [2:32.339s]
> [INFO] Lens Driver for JDBC .............................. SUCCESS [17.878s]
> [INFO] Lens Server ....................................... SUCCESS [4:15.372s]
> [INFO] Lens client ....................................... SUCCESS [21.028s]
> [INFO] Lens CLI .......................................... SUCCESS [2:51.992s]
> [INFO] Lens Examples ..................................... SUCCESS [0.769s]
> [INFO] Lens Distribution ................................. SUCCESS [9.239s]
> [INFO] Lens ML Lib ....................................... SUCCESS [42.785s]
> [INFO] Lens Regression ................................... SUCCESS [0.452s]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 13:51.009s
> [INFO] Finished at: Fri Mar 20 05:51:42 UTC 2015
> [INFO] Final Memory: 110M/1132M
> [INFO]
> ------------------------------------------------------------------------
>
>
> Thanks,
>
> Amareshwari Sriramadasu
>
>