summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/PopulateComponentCache.java352
1 files changed, 0 insertions, 352 deletions
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/PopulateComponentCache.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/PopulateComponentCache.java
deleted file mode 100644
index b67bfc8097..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/PopulateComponentCache.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.impl;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-
-import org.apache.tinkerpop.gremlin.structure.VertexProperty;
-import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
-import org.openecomp.sdc.be.dao.cassandra.ComponentCassandraDao;
-import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
-import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.cache.ComponentCache;
-import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.be.resources.data.ComponentCacheData;
-import org.openecomp.sdc.be.resources.data.ESArtifactData;
-import org.openecomp.sdc.common.util.SerializationUtils;
-import org.openecomp.sdc.common.util.ZipUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.thinkaurelius.titan.core.TitanGraph;
-import com.thinkaurelius.titan.core.TitanVertex;
-
-import fj.data.Either;
-
-/**
- * Created by esofer on 9/1/2016.
- */
-public class PopulateComponentCache {
-
- private static Logger log = LoggerFactory.getLogger(PopulateComponentCache.class.getName());
-
- @Autowired
- protected ComponentCassandraDao componentCassandraDao;
-
- @Autowired
- ToscaOperationFacade toscaOperationFacade;
-
- @Autowired
- protected ComponentCache componentCache;
-
- private void exit(String stage, int i) {
- log.error("Failed on {}", stage);
- System.exit(i);
-
- }
-
- public void populateCache() {
- populateCache(ComponentTypeEnum.RESOURCE);
- populateCache(ComponentTypeEnum.SERVICE);
- populateCache(ComponentTypeEnum.PRODUCT);
- }
-
- @SuppressWarnings("unchecked")
- private void populateCache(ComponentTypeEnum componentTypeEnum) {
-
- List<String> list = new ArrayList<>();
- Either<TitanGraph, TitanOperationStatus> graph = toscaOperationFacade.getTitanDao().getGraph();
- TitanGraph titanGraph = graph.left().value();
- Iterable<TitanVertex> vertices = titanGraph.query()
- .has(GraphPropertiesDictionary.LABEL.getProperty(), componentTypeEnum.name().toLowerCase()).vertices();
-
- Iterator<TitanVertex> iterator = vertices.iterator();
- while (iterator.hasNext()) {
- TitanVertex vertex = (TitanVertex) iterator.next();
-
- // VertexProperty<Object> state =
- // vertex.property(GraphPropertiesDictionary.STATE.getProperty());
- // String stateValue = (String)state.value();
-
- // if (false ==
- // stateValue.equalsIgnoreCase(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())
- // ) {
- VertexProperty<Object> uid = vertex.property(GraphPropertiesDictionary.UNIQUE_ID.getProperty());
- String uidValue = (String) uid.value();
-
- list.add(uidValue);
- // }
- }
-
- int counter = 0;
- for (String componentUid : list) {
-
- long time1 = System.currentTimeMillis();
-
- /////////////////////////////////////////////////////////////////////////////////////
- // Pay attention. The component is fetched from the cache in case it
- ///////////////////////////////////////////////////////////////////////////////////// is
- ///////////////////////////////////////////////////////////////////////////////////// already
- ///////////////////////////////////////////////////////////////////////////////////// there.
- /////////////////////////////////////////////////////////////////////////////////////
- Component component = null;
- Either<Resource, StorageOperationStatus> getComponentRes = toscaOperationFacade.getToscaElement(componentUid);
- if (getComponentRes.isRight()) {
- exit("get component", 1);
- }
- component = getComponentRes.left().value();
-
- long time2 = System.currentTimeMillis();
- // System.out.println("fetch resource " + resource.getName());
- // System.out.println("fetch resource time is " + (time2 - time1) +
- // " ms");
-
- boolean setComponent = componentCache.setComponent(component, componentTypeEnum.getNodeType());
- if (setComponent) {
- counter++;
- }
-
- /*
- * Either<byte[], Boolean> valueRes =
- * SerializationUtils.serializeExt(component);
- *
- * if (valueRes.isRight()) { exit("serialize component " +
- * component.getName(), 2); } byte[] value =
- * valueRes.left().value(); log.info("byte[] size is " +
- * value.length); //System.out.println("byte[] size is " +
- * value.length);
- *
- * byte[] zipped = null; try { zipped = ZipUtil.zipBytes(value);
- * //System.out.println("byte[] size after zip is " +
- * zipped.length);
- *
- * ComponentCacheData componentCacheData = new ComponentCacheData();
- * componentCacheData.setDataAsArray(zipped);
- * componentCacheData.setIsZipped(true);
- * componentCacheData.setId(componentUid);
- * componentCacheData.setModificationTime(new
- * Date(component.getLastUpdateDate()));
- * componentCacheData.setType(component.getComponentType().name().
- * toLowerCase());
- *
- * long averageInsertTimeInMilli =
- * writeResourceToCassandraComponent(componentCacheData); log.
- * info("After adding component {} to cassandra. Insert time is {} ms."
- * , componentUid, averageInsertTimeInMilli);
- *
- * } catch (IOException e) {
- * e.printStackTrace(); }
- */
-
- }
-
- log.debug("The number of saved components of type {} is {}. Total size is {}", componentTypeEnum, counter,
- list.size());
-
- }
-
- private long writeResourceToCassandraComponent(ComponentCacheData componentCacheData) {
-
- long startTime = System.currentTimeMillis();
-
- // call to cassandra read
- CassandraOperationStatus saveArtifact = componentCassandraDao.saveComponent(componentCacheData);
- if (saveArtifact != CassandraOperationStatus.OK) {
- exit("writeResourceToCassandra", 3);
- }
-
- long endTime = System.currentTimeMillis();
-
- return (endTime - startTime);
- }
-
- private void deserializeByThreads(List<ESArtifactData> list, ExecutorService executor, int threadNumber) {
-
- long fullSearchStart = System.currentTimeMillis();
- // for (int k =0; k < parts; k++) {
-
- List<List<ESArtifactData>> lists = new ArrayList<>();
- for (int i = 0; i < threadNumber; i++) {
- lists.add(new ArrayList<>());
- }
-
- List<Future<List<Resource>>> results = new ArrayList<>();
- for (int i = 0; i < list.size(); i++) {
- lists.get(i % threadNumber).add(list.get(i));
- }
-
- for (int i = 0; i < threadNumber; i++) {
-
- // Callable<List<Resource>> worker = new
- // MyDesrializabletCallable(lists.get(i), i);
- Callable<List<Resource>> worker = new My3rdPartyDesrializabletCallable(lists.get(i), i);
- Future<List<Resource>> submit = executor.submit(worker);
- results.add(submit);
- }
-
- long fullSearchStart2 = System.currentTimeMillis();
- for (Future<List<Resource>> future : results) {
- try {
- while (false == future.isDone()) {
- Thread.sleep(1);
- }
-
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- long fullSearchEnd2 = System.currentTimeMillis();
- log.info("esofer time wait to threads finish {} ms",((fullSearchEnd2 - fullSearchStart2)));
- // }
- long fullSearchEnd = System.currentTimeMillis();
-
- log.info("esofer full desrialize time {} ms",((fullSearchEnd - fullSearchStart)));
- System.out.println("esofer full desrialize time " + ((fullSearchEnd - fullSearchStart)) + " ms");
- }
-
- public class MyDesrializabletCallable implements Callable<List<Resource>> {
-
- List<ESArtifactData> list;
- int i;
-
- public MyDesrializabletCallable(List<ESArtifactData> list, int i) {
- super();
- this.list = list;
- this.i = i;
- }
-
- @Override
- public List<Resource> call() throws Exception {
- List<Resource> resources = new ArrayList<>();
- long startSer = System.currentTimeMillis();
- long endSer = System.currentTimeMillis();
- long startUnzip = System.currentTimeMillis();
- long endUnzip = System.currentTimeMillis();
-
- long avgUnzip = 0;
- long avgSer = 0;
- for (ESArtifactData esArtifactData : list) {
-
- byte[] dataAsArray = esArtifactData.getDataAsArray();
- startUnzip = System.nanoTime();
- dataAsArray = ZipUtil.unzip(dataAsArray);
- endUnzip = System.nanoTime();
- avgUnzip += (endUnzip - startUnzip);
-
- startSer = System.nanoTime();
- Either<Object, Boolean> deserialize = SerializationUtils.deserialize(dataAsArray);
- endSer = System.nanoTime();
- avgSer += (endSer - startSer);
- // Either<Object, Boolean> deserialize =
- // SerializationUtils.deserialize(esArtifactData.getDataAsArray());
- if (deserialize.isRight()) {
- exit("convertByteArrayToResource " + deserialize.right().value(), 5);
- }
-
- Resource resource = (Resource) deserialize.left().value();
- resources.add(resource);
- // System.out.println("After desrialize T[" + i + "]resource " +
- // resource.getUniqueId());
- }
-
- System.out.println("After desrialize average desrialize " + list.size() + " T[" + i + "] "
- + (avgSer / 1000 / list.size()) + " micro");
- System.out.println(
- "After desrialize average unzip T[" + i + "] " + (avgUnzip / 1000 / list.size()) + " micro");
-
- ////////////////////////
- // maybe register most frequently used classes on conf
- // write
- // byte barray[] = conf.asByteArray(mySerializableObject);
- // read
- // MyObject object = (MyObject)conf.asObject(barray);
-
- return resources;
- }
- }
-
- public class My3rdPartyDesrializabletCallable implements Callable<List<Resource>> {
-
- List<ESArtifactData> list;
- int i;
-
- public My3rdPartyDesrializabletCallable(List<ESArtifactData> list, int i) {
- super();
- this.list = list;
- this.i = i;
- }
-
- @Override
- public List<Resource> call() throws Exception {
- List<Resource> resources = new ArrayList<>();
- long startSer = System.currentTimeMillis();
- long endSer = System.currentTimeMillis();
- long startUnzip = System.currentTimeMillis();
- long endUnzip = System.currentTimeMillis();
-
- long avgUnzip = 0;
- long avgSer = 0;
- for (ESArtifactData esArtifactData : list) {
-
- byte[] dataAsArray = esArtifactData.getDataAsArray();
- startUnzip = System.nanoTime();
- dataAsArray = ZipUtil.unzip(dataAsArray);
- endUnzip = System.nanoTime();
- avgUnzip += (endUnzip - startUnzip);
-
- startSer = System.nanoTime();
-
- Either<Resource, Boolean> deserializeExt = SerializationUtils.deserializeExt(dataAsArray,
- Resource.class, "");
-
- if (deserializeExt.isLeft()) {
- Resource resource = deserializeExt.left().value();
- // System.out.println("=============================================");
- // System.out.println(resource.getCapabilities().size());
- // System.out.println(resource.getRequirements().size());
- endSer = System.nanoTime();
- avgSer += (endSer - startSer);
- resources.add(resource);
- // System.out.println("After desrialize T[" + i + "]resource
- // " + resource.getUniqueId());
- }
- }
-
- System.out.println("After desrialize average desrialize " + list.size() + " T[" + i + "] "
- + (avgSer / 1000 / list.size()) + " micro");
- System.out.println(
- "After desrialize average unzip T[" + i + "] " + (avgUnzip / 1000 / list.size()) + " micro");
-
- return resources;
- }
- }
-
-}