You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2016/04/08 22:21:16 UTC
[29/36] usergrid git commit: Forced the indexing schema to store the
map instead of the JSON string that way we only do the parsing once if we're
doing a lot of get's on the schema.
Forced the indexing schema to store the map instead of the JSON string that way we only do the parsing once if we're doing a lot of get's on the schema.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/1736ce15
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/1736ce15
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/1736ce15
Branch: refs/heads/release-2.1.1
Commit: 1736ce15762fa8d1e0341b8383890854b2c0a18e
Parents: 37eca05
Author: George Reyes <gr...@apache.org>
Authored: Thu Mar 31 16:38:16 2016 -0700
Committer: George Reyes <gr...@apache.org>
Committed: Thu Mar 31 16:38:16 2016 -0700
----------------------------------------------------------------------
.../corepersistence/CpEntityManager.java | 17 +++++----------
.../corepersistence/index/IndexSchemaCache.java | 3 ++-
.../index/IndexSchemaCacheImpl.java | 22 +++++++++++++-------
.../corepersistence/index/IndexServiceImpl.java | 13 +++---------
.../index/ReIndexServiceImpl.java | 13 +++---------
5 files changed, 28 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1736ce15/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 08204c9..6bbf0a3 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -1772,27 +1772,20 @@ public class CpEntityManager implements EntityManager {
IndexSchemaCache indexSchemaCache = indexSchemaCacheFactory.getInstance( mm );
- java.util.Optional<String> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
+ java.util.Optional<Map> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
- String jsonSchemaMap = null;
-
- if(collectionIndexingSchema.isPresent()){
- jsonSchemaMap = collectionIndexingSchema.get();
- }
//If we do have a schema then parse it and add it to a list of properties we want to keep.Otherwise return.
- if ( jsonSchemaMap != null ) {
- Map jsonMapData = ( Map ) JsonUtils.parse( jsonSchemaMap );
+ if ( collectionIndexingSchema.isPresent() ) {
+ Map jsonMapData = collectionIndexingSchema.get();
schemaMap.put( "lastReindexed", jsonMapData.get( "lastReindexed" ) );
}
else {
schemaMap.put( "lastReindexed", 0 );
}
-
ArrayList<String> fieldProperties = ( ArrayList<String> ) properties.get( "fields" );
- //TODO: do tests for * , and now add put and delete.
if(fieldProperties.contains( "*" )){
ArrayList<String> wildCardArrayList = new ArrayList<>( );
wildCardArrayList.add( "*" );
@@ -1828,10 +1821,10 @@ public class CpEntityManager implements EntityManager {
IndexSchemaCache indexSchemaCache = indexSchemaCacheFactory.getInstance( mm ); //managerCache.getIndexSchema( mm );
- java.util.Optional<String> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
+ java.util.Optional<Map> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
if(collectionIndexingSchema.isPresent()){
- return JsonUtils.parse( collectionIndexingSchema.get() );
+ return collectionIndexingSchema.get();
}
else{
return null;
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1736ce15/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCache.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCache.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCache.java
index debfe2a..a56ffd6 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCache.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCache.java
@@ -17,6 +17,7 @@
package org.apache.usergrid.corepersistence.index;
+import java.util.Map;
import java.util.Optional;
@@ -27,7 +28,7 @@ public interface IndexSchemaCache {
* @param collectionName
* @return
*/
- public Optional<String> getCollectionSchema(String collectionName);
+ public Optional<Map> getCollectionSchema( String collectionName );
void putCollectionSchema( String collectionName, String collectionSchema );
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1736ce15/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
index 14752b4..3df31cc 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexSchemaCacheImpl.java
@@ -18,12 +18,14 @@
package org.apache.usergrid.corepersistence.index;
+import java.util.Map;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.usergrid.persistence.map.MapManager;
+import org.apache.usergrid.utils.JsonUtils;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
@@ -39,7 +41,7 @@ import com.google.inject.Singleton;
public class IndexSchemaCacheImpl implements IndexSchemaCache {
private static final Logger logger = LoggerFactory.getLogger(IndexSchemaCacheImpl.class );
- private final LoadingCache<String,Optional<String>> indexSchemaCache;
+ private final LoadingCache<String,Optional<Map>> indexSchemaCache;
private final MapManager mapManager;
@@ -48,23 +50,29 @@ public class IndexSchemaCacheImpl implements IndexSchemaCache {
indexSchemaCache = CacheBuilder.newBuilder()
.maximumSize( indexSchemaCacheFig.getCacheSize() )
//.expireAfterWrite( indexSchemaCacheFig.getCacheTimeout(), TimeUnit.MILLISECONDS ) <-- I don't think we want this to expire that quickly.
- .build( new CacheLoader<String, Optional<String>>() {
+ .build( new CacheLoader<String, Optional<Map>>() {
@Override
- public Optional<String> load( final String collectionName ) throws Exception {
+ public Optional<Map> load( final String collectionName ) throws Exception {
return Optional.ofNullable( retrieveCollectionSchema( collectionName ) );
}
} );
}
- private String retrieveCollectionSchema( final String collectionName ){
- return mapManager.getString( collectionName );
+ private Map retrieveCollectionSchema( final String collectionName ){
+ String collectionIndexingSchema = mapManager.getString( collectionName );
+ Map parsedCollectionIndexingSchema = null;
+ if(collectionIndexingSchema!=null){
+ return (Map) JsonUtils.parse( collectionIndexingSchema );
+
+ }
+ return parsedCollectionIndexingSchema;
}
@Override
- public Optional<String> getCollectionSchema( final String collectionName ) {
+ public Optional<Map> getCollectionSchema( final String collectionName ) {
try {
- Optional<String> optionalCollectionSchema = indexSchemaCache.get( collectionName );
+ Optional<Map> optionalCollectionSchema = indexSchemaCache.get( collectionName );
if(!optionalCollectionSchema.isPresent()){
indexSchemaCache.invalidate( collectionName );
return Optional.empty();
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1736ce15/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
index 9e05df3..c81c4ef 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
@@ -212,19 +212,12 @@ public class IndexServiceImpl implements IndexService {
IndexSchemaCache indexSchemaCache = indexSchemaCacheFactory.getInstance( mm );
- Optional<String> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
-
-
- String jsonSchemaMap = null;
-
- if(collectionIndexingSchema.isPresent()){
- jsonSchemaMap = collectionIndexingSchema.get();
- }
+ Optional<Map> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
//If we do have a schema then parse it and add it to a list of properties we want to keep.Otherwise return.
- if ( jsonSchemaMap != null ) {
+ if ( collectionIndexingSchema.isPresent()) {
- Map jsonMapData = ( Map ) JsonUtils.parse( jsonSchemaMap );
+ Map jsonMapData = collectionIndexingSchema.get();
Schema schema = Schema.getDefaultSchema();
defaultProperties = schema.getRequiredProperties( collectionName );
fieldsToKeep = ( ArrayList ) jsonMapData.get( "fields" );
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1736ce15/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReIndexServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReIndexServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReIndexServiceImpl.java
index 591fcd6..125222a 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReIndexServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReIndexServiceImpl.java
@@ -142,19 +142,12 @@ public class ReIndexServiceImpl implements ReIndexService {
MapManager collectionMapStorage = mapManagerFactory.createMapManager( CpNamingUtils.getEntityTypeMapScope( appId.get().getApplication() ) );
IndexSchemaCache indexSchemaCache = indexSchemaCacheFactory.getInstance( collectionMapStorage );
- java.util.Optional<String> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
-
-
- String jsonSchemaMap = null;
-
- if(collectionIndexingSchema.isPresent()){
- jsonSchemaMap = collectionIndexingSchema.get();
- }
+ java.util.Optional<Map> collectionIndexingSchema = indexSchemaCache.getCollectionSchema( collectionName );
//If we do have a schema then parse it and add it to a list of properties we want to keep.Otherwise return.
- if ( jsonSchemaMap != null ) {
+ if ( collectionIndexingSchema.isPresent() ) {
- Map jsonMapData = ( Map ) JsonUtils.parse( jsonSchemaMap );
+ Map jsonMapData = collectionIndexingSchema.get();
jsonMapData.put( "lastReindexed", Instant.now().toEpochMilli() );
//should probably roll this into the cache.