diff options
Diffstat (limited to 'mdbc-internal-benchmark/src/main')
11 files changed, 0 insertions, 1824 deletions
diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricAddTxDigestBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricAddTxDigestBenchmark.java deleted file mode 100644 index d15c3e6..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricAddTxDigestBenchmark.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MusicTxDigestId; -import org.onap.music.mdbc.tables.StagingTable; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricAddTxDigestBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricAddTxDigestBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - OwnUtils.addTransactionDigest(state.copy, state.copyTxDigestId, - (MusicMixin) state.getManager().getMusicInterface()); - } - - @State(Scope.Benchmark) - public static class MyState { - public MusicTxDigestId musicTxDigestId,copyTxDigestId; - public StagingTable copy,current; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"127.0.0.1"}) - public String ip; - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows,1,1); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - try { - Statement stmt = conn.createStatement(); - stmt.execute(OwnUtils.UPDATE); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - musicTxDigestId = OwnUtils.setupCommit(conn.getPartition(), conn.getTransactionDigest()); - final DatabasePartition partition = conn.getPartition(); - OwnUtils.appendToRedo((MusicMixin)getManager().getMusicInterface(),partition.getMRIIndex(),partition.getLockId(), - musicTxDigestId); - current=conn.getTransactionDigest(); - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - meta=null; - } - - @Setup(Level.Invocation) - public void doInvocationSetup(){ - try { - copy = new StagingTable(current); - } catch (CloneNotSupportedException e) { - e.printStackTrace(); - System.exit(1); - } - copyTxDigestId = new MusicTxDigestId(MDBCUtils.generateUniqueKey(), -1); - } - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricCommitBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricCommitBenchmark.java deleted file mode 100644 index 7461457..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricCommitBenchmark.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.SQLException; -import java.sql.Statement; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricCommitBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricCommitBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - try { - state.conn.commit(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - } - - @State(Scope.Benchmark) - public static class MyState { - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"104.209.240.219"}) - public String ip; - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows,1,1); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - meta=null; - } - - @Setup(Level.Invocation) - public void doInvocationSetup(){ - Statement stmt = null; - try { - stmt = conn.createStatement(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - try { - stmt.execute(OwnUtils.UPDATE); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - } - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricIsolatedMixinCommBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricIsolatedMixinCommBenchmark.java deleted file mode 100644 index c789ca7..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricIsolatedMixinCommBenchmark.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.SQLException; -import java.sql.Statement; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import org.onap.music.exceptions.MDBCServiceException; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MusicTxDigestId; -import org.onap.music.mdbc.tables.StagingTable; -import org.onap.music.mdbc.tables.TxCommitProgress; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricIsolatedMixinCommBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricIsolatedMixinCommBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - try { - state.musicMixin.commitLog(state.conn.getPartition(),null,state.copy, - state.copyTxDigestId.transactionId.toString(),state.progressKeeper); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - @State(Scope.Benchmark) - public static class MyState { - public TxCommitProgress progressKeeper; - public MusicTxDigestId musicTxDigestId,copyTxDigestId; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"104.209.240.219"}) - public String ip; - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - public StagingTable copy,current; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows,1,1); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - Statement stmt = null; - try { - stmt = conn.createStatement(); - stmt.execute(OwnUtils.UPDATE); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - musicTxDigestId = OwnUtils.setupCommit(conn.getPartition(), conn.getTransactionDigest()); - current=conn.getTransactionDigest(); - progressKeeper = new TxCommitProgress(); - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - meta=null; - } - - @Setup(Level.Invocation) - public void doInvocationSetup(){ - try { - copy = new StagingTable(current); - } catch (CloneNotSupportedException e) { - e.printStackTrace(); - System.exit(1); - } - copyTxDigestId = new MusicTxDigestId(MDBCUtils.generateUniqueKey(), -1); - progressKeeper.createNewTransactionTracker(copyTxDigestId.transactionId.toString(),conn); - } - - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricOwnBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricOwnBenchmark.java deleted file mode 100644 index 42665b1..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricOwnBenchmark.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.SQLException; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import org.onap.music.exceptions.MDBCServiceException; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricOwnBenchmark{ - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricOwnBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - try { - state.conn.preStatementHook(state.update); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - @State(Scope.Benchmark) - public static class MyState { - public String update="SELECT * FROM PERSONS;"; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"104.209.240.219"}) - public String ip; - //Rows per transaction (e.g. size of each tx digest) - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - //Transaction before each ownership transition (e.g. size of redo log) - @Param({"1","10","100"}) - public int updates; - //Number of ownership transitions before measurement (e.g. number of mri rows" - @Param({"1","10","100"}) - public int transitions; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows, updates, transitions); - meta=null; - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - meta=null; - } - - @Setup(Level.Invocation) - public void doInvocationSetup(){ - setupServer(); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - try { - OwnUtils.dropAndCreateTable(conn.getDBInterface()); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - } - - @TearDown(Level.Invocation) - public void doInvocationTearDown(){ - OwnUtils.deleteLastMriRow((MusicMixin) musicMixin); - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - getManager().closeConnection(id); - } - - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricPeekLockBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricPeekLockBenchmark.java deleted file mode 100644 index 1b56c6b..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricPeekLockBenchmark.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import com.datastax.driver.core.ConsistencyLevel; -import com.datastax.driver.core.ExecutionInfo; -import com.datastax.driver.core.QueryTrace; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.SimpleStatement; -import org.onap.music.datastore.MusicDataStore; -import org.onap.music.datastore.MusicDataStoreHandle; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.exceptions.MusicQueryException; -import org.onap.music.exceptions.MusicServiceException; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MusicRangeInformationRow; -import org.openjdk.jmh.annotations.*; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -import java.sql.SQLException; -import java.sql.Statement; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricPeekLockBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricPeekLockBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - String table = state.table_prepend_name+OwnUtils.MRI_TABLE_NAME; - String selectQuery = "select * from "+OwnUtils.KEYSPACE+"."+table+" where key='"+state.key+"' LIMIT 1;"; - PreparedQueryObject queryObject = new PreparedQueryObject(); - queryObject.appendQueryString(selectQuery); - ResultSet results=null; - SimpleStatement statement = new SimpleStatement(queryObject.getQuery(), queryObject.getValues().toArray()); - statement.setConsistencyLevel(ConsistencyLevel.ONE); - statement.enableTracing(); - results = state.dsHandle.getSession().execute(statement); - blackhole.consume(results); - } - - public void printInfo(ResultSet results){ - ExecutionInfo executionInfo = results.getExecutionInfo(); - System.out.println(executionInfo.getQueriedHost().getAddress()); - System.out.println(executionInfo.getQueriedHost().getDatacenter()); - System.out.println(executionInfo.getQueriedHost().getRack()); - final QueryTrace trace = executionInfo.getQueryTrace(); - System.out.printf( - "'%s' to %s took %dμs%n", - trace.getRequestType(), trace.getCoordinator(), trace.getDurationMicros()); - for (QueryTrace.Event event : trace.getEvents()) { - System.out.printf( - " %d - %s - %s%n", - event.getSourceElapsedMicros(), event.getSource(), event.getDescription()); - } - } - - @State(Scope.Benchmark) - public static class MyState { - public MusicDataStore dsHandle; - public String key; - private String table_prepend_name = "lockQ_"; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"104.209.240.219"}) - public String ip; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - public MusicRangeInformationRow lastRow; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - try { - dsHandle=MusicDataStoreHandle.getDSHandle(); - } catch (MusicServiceException e) { - e.printStackTrace(); - System.exit(1); - } - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, 1,1,1); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - lastRow = OwnUtils.getLastRow((MusicMixin) musicMixin); - key = lastRow.getPartitionIndex().toString(); - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - System.exit(1); - } - meta=null; - } - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricRedoLogBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricRedoLogBenchmark.java deleted file mode 100644 index 7e227fd..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricRedoLogBenchmark.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.UUID; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.TimeUnit; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MusicTxDigestId; -import org.onap.music.mdbc.tables.StagingTable; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricRedoLogBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricRedoLogBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - @Benchmark - public void testMethod(MyState state, Blackhole blackhole) { - final DatabasePartition partition = state.conn.getPartition(); - OwnUtils.appendToRedo((MusicMixin)state.getManager().getMusicInterface(),partition.getMRIIndex(), - partition.getLockId(),state.musicTxDigestId); - } - - @State(Scope.Benchmark) - public static class MyState { - public MusicTxDigestId musicTxDigestId; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"104.209.240.219"}) - public String ip; - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - OwnUtils.dropAll(ip); - setupServer(); - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows,1,1); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - Statement stmt = null; - try { - stmt = conn.createStatement(); - stmt.execute(OwnUtils.UPDATE); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - musicTxDigestId = OwnUtils.setupCommit(conn.getPartition(), conn.getTransactionDigest()); - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - meta=null; - } - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricThreadJoinBenchmark.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricThreadJoinBenchmark.java deleted file mode 100644 index 70ba10a..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/MetricThreadJoinBenchmark.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import org.onap.music.exceptions.MDBCServiceException; -import org.onap.music.exceptions.MusicLockingException; -import org.onap.music.logging.EELFLoggerDelegate; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MusicTxDigestId; -import org.onap.music.mdbc.tables.StagingTable; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Level; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Param; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.infra.Blackhole; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@BenchmarkMode({Mode.AverageTime, Mode.SampleTime}) -@OutputTimeUnit(TimeUnit.MILLISECONDS) -@State(Scope.Benchmark) -public class MetricThreadJoinBenchmark { - - public static void main(String[] args) throws RunnerException { - Options opt = new OptionsBuilder() - .include(MetricThreadJoinBenchmark.class.getSimpleName()) - .threads(1) - .forks(1) - .build(); - new Runner(opt).run(); - } - - public void testMethod1(final MyState state) { - final String lockId = state.conn.getPartition().getLockId(); - final UUID MRIIndex = state.conn.getPartition().getMRIIndex(); - Thread t1=null; - Thread t2=null; - if(state.runTxDigest) { - final Runnable insertDigestCallable = new Runnable() { - @Override - public void run() { - OwnUtils.hardcodedAddtransaction(110); - } - }; - t1 = new Thread(insertDigestCallable); - t1.start(); - } - if(state.runRedo) { - final Runnable appendCallable = new Runnable() { - @Override - public void run() { - OwnUtils.hardcodedAppendToRedo(MRIIndex,lockId); - } - }; - t2 = new Thread(appendCallable); - t2.start(); - } - - try { - if(state.runTxDigest) { - t1.join(); - } - if(state.runRedo) { - t2.join(); - } - } catch (InterruptedException e) { - e.printStackTrace(); - System.exit(1); - } - } - - @Benchmark - public void testMethod2(final MyState state) { - final String lockId = state.conn.getPartition().getLockId(); - final UUID MRIIndex = state.conn.getPartition().getMRIIndex(); - OwnUtils.hardcodedAddtransaction(110); - OwnUtils.hardcodedAppendToRedo(MRIIndex,lockId); - } - - @State(Scope.Benchmark) - public static class MyState { - public MusicTxDigestId musicTxDigestId,copyTxDigestId; - public StagingTable copy,current; - final String user = OwnUtils.SQL_USER; - final String password = OwnUtils.SQL_PASSWORD; - public final Range range = new Range(OwnUtils.TABLE); - @Param({"127.0.0.1"}) - public String ip; - @Param({"1", "10", "50", "80", "100", "200", "300", "400"}) - public int rows; - @Param({"true","false"}) - public boolean runRedo; - @Param({"true","false"}) - public boolean runTxDigest; - private MusicInterface musicMixin = null; - private MdbcConnection conn; - private DBInterface dbMixin; - private MdbcServerLogic meta; - private String id; - public ExecutorService commitExecutorThreads; - - private void setupServer(){ - meta = OwnUtils.setupServer(user, password); - } - - private StateManager getManager(){ - return meta.getStateManager(); - } - - private void assignManager() { - StateManager manager = getManager(); - musicMixin=manager.getMusicInterface(); - } - - @Setup(Level.Trial) - public void doTrialSetup(){ - commitExecutorThreads = Executors.newFixedThreadPool(4); - OwnUtils.dropAll(ip); - setupServer(); - assignManager(); - OwnUtils.initMri((MusicMixin) musicMixin,range,meta, rows,0,0); - id = UUID.randomUUID().toString(); - conn = (MdbcConnection) getManager().getConnection(id); - try { - Statement stmt = conn.createStatement(); - stmt.execute(OwnUtils.UPDATE); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - musicTxDigestId = OwnUtils.setupCommit(conn.getPartition(), conn.getTransactionDigest()); - current=conn.getTransactionDigest(); - } - - @TearDown(Level.Trial) - public void doTrialTearDown(){ - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - meta=null; - commitExecutorThreads.shutdown(); - } - - @Setup(Level.Invocation) - public void doInvocationSetup(){ - try { - copy = new StagingTable(current); - } catch (CloneNotSupportedException e) { - e.printStackTrace(); - System.exit(1); - } - copyTxDigestId = new MusicTxDigestId(MDBCUtils.generateUniqueKey(), -1); - } - } -} diff --git a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/OwnUtils.java b/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/OwnUtils.java deleted file mode 100644 index 980408b..0000000 --- a/mdbc-internal-benchmark/src/main/java/org/onap/music/mdbc/OwnUtils.java +++ /dev/null @@ -1,383 +0,0 @@ -/* - * ============LICENSE_START==================================================== - * org.onap.music.mdbc - * ============================================================================= - * Copyright (C) 2019 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.onap.music.mdbc; - -import com.datastax.driver.core.Cluster; -import com.datastax.driver.core.Cluster.Builder; -import com.datastax.driver.core.Session; - -import java.nio.ByteBuffer; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.sql.Statement; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Properties; -import java.util.UUID; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -import com.datastax.driver.core.SocketOptions; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.exceptions.MDBCServiceException; -import org.onap.music.exceptions.MusicLockingException; -import org.onap.music.exceptions.MusicServiceException; -import org.onap.music.lockingservice.cassandra.MusicLockState; -import org.onap.music.main.MusicCore; -import org.onap.music.main.ResultType; -import org.onap.music.main.ReturnType; -import org.onap.music.mdbc.configurations.NodeConfiguration; -import org.onap.music.mdbc.mixins.DBInterface; -import org.onap.music.mdbc.mixins.MusicInterface; -import org.onap.music.mdbc.mixins.MusicMixin; -import org.onap.music.mdbc.tables.MriRowComparator; -import org.onap.music.mdbc.tables.MusicRangeInformationRow; -import org.onap.music.mdbc.tables.MusicTxDigestId; -import org.onap.music.mdbc.tables.StagingTable; - -public class OwnUtils { - - public static final int SQL_PORT= 3306; - - public static final String SQL_USER = "root"; - public static final String SQL_PASSWORD = "metriccluster"; - public static final String CASSANDRA_USER = "metric"; - public static final String CASSANDRA_PASSWORD = "metriccluster"; - public static final String KEYSPACE ="namespace"; - public static final String MRI_TABLE_NAME = "musicrangeinformation"; - public static final String MTD_TABLE_NAME = "musictxdigest"; - public static final String MDBC_SERVER_NAME = "name"; - public static final String DATABASE = "test"; - public static final String TABLE= "PERSONS"; - public static final int REPLICATION_FACTOR = 3; - public static final String SQL_URL="jdbc:mariadb://localhost:"+OwnUtils.SQL_PORT; - final static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS "+TABLE+" (\n" + - " PersonID int,\n" + - " Counter int,\n" + - " LastName varchar(255),\n" + - " FirstName varchar(255),\n" + - " Address varchar(255),\n" + - " City varchar(255),\n" + - " PRIMARY KEY(PersonID)"+ - ");"; - - public static final String UPDATE = new StringBuilder() - .append("UPDATE PERSONS ") - .append("SET Counter = Counter + 1,") - .append("City = 'Sandy Springs'") - .append(";").toString(); - public static final String PURGE = "PURGE BINARY LOGS BEFORE '"; - public static final String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE + ";"; - private static Lock sessionLock = new ReentrantLock(); - private static Boolean sessionReady= false; - private static Cluster cluster; - private static Session session; - - private static String getPurgeCommand(){ - String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - return PURGE+timeStamp+"';"; - } - - public static Session getSession(String CASSANDRA_HOST){ - sessionLock.lock(); - try { - if(!sessionReady){ - SocketOptions options = new SocketOptions(); - options.setConnectTimeoutMillis(30000); - options.setReadTimeoutMillis(300000); - options.setTcpNoDelay(true); - final Builder builder = Cluster.builder(); - builder.addContactPoint(CASSANDRA_HOST); - builder.withCredentials(CASSANDRA_USER, CASSANDRA_PASSWORD); - builder.withSocketOptions(options); - cluster = builder.build(); - session=cluster.newSession(); - } - return session; - // access the resource protected by this lock - } finally { - sessionLock.unlock(); - } - } - - public static Connection getConnection() throws ClassNotFoundException, SQLException { - Class.forName("org.mariadb.jdbc.Driver"); - Properties connectionProps = new Properties(); - connectionProps.put("user", SQL_USER); - connectionProps.put("password", SQL_PASSWORD); - Connection connection = DriverManager.getConnection(SQL_URL+"/"+DATABASE, connectionProps); - connection.setAutoCommit(false); - return connection; - } - - public static void purgeBinLogs(Connection conn) throws SQLException{ - final Statement dropStatement = conn.createStatement(); - dropStatement.execute(getPurgeCommand()); - dropStatement.close(); - } - - public static void dropTable(Connection conn) throws SQLException { - final Statement dropStatement = conn.createStatement(); - dropStatement.execute(DROP_TABLE); - dropStatement.close(); - } - - private static void createTable(Connection conn) throws SQLException { - final Statement createStatement = conn.createStatement(); - createStatement.execute(CREATE_TABLE); - createStatement.close(); - } - - public static void dropAndCreateTable(DBInterface dbMixin) throws SQLException { - dbMixin.dropSQLTriggers(TABLE); - dropTable(dbMixin.getSQLConnection()); - createTable(dbMixin.getSQLConnection()); - dbMixin.createSQLTriggers(TABLE); - } - - public static void unlockRow(String keyspace, String mriTableName, DatabasePartition partition) - throws MusicLockingException { - String fullyQualifiedMriKey = keyspace+"."+ mriTableName+"."+partition.getMRIIndex().toString(); - MusicLockState musicLockState = MusicCore.voluntaryReleaseLock(fullyQualifiedMriKey, partition.getLockId()); - } - - public static DatabasePartition createBasicRow(Range range, MusicInterface mixin, String mdbcServerName) - throws MDBCServiceException { - List<Range> ranges = new ArrayList<>(); - ranges.add(range); - final UUID uuid = MDBCUtils.generateTimebasedUniqueKey(); - DatabasePartition dbPartition = new DatabasePartition(ranges,uuid,null); - MusicRangeInformationRow newRow = new MusicRangeInformationRow(uuid,dbPartition, new ArrayList<MusicTxDigestId>(), "", - mdbcServerName, true); - DatabasePartition partition=mixin.createMusicRangeInformation(newRow); - return partition; - } - - public static void initMriTable(MusicMixin musicMixin, Range range) - throws MDBCServiceException, SQLException, MusicLockingException { - final DatabasePartition partition = createBasicRow(range, musicMixin, MDBC_SERVER_NAME); - unlockRow(KEYSPACE,MRI_TABLE_NAME,partition); - } - - public static MusicRangeInformationRow getLastRow(MusicMixin musicMixin){ - List<MusicRangeInformationRow> allMriRows; - try { - allMriRows = musicMixin.getAllMriRows(); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - allMriRows=null;//Just to avoid IDE annoyance - } - Collections.sort(allMriRows, new MriRowComparator()); - MusicRangeInformationRow musicRangeInformationRow = allMriRows.get(allMriRows.size() - 1); - return musicRangeInformationRow; - } - - public static void deleteLastMriRow(MusicMixin musicMixin){ - MusicRangeInformationRow musicRangeInformationRow = getLastRow(musicMixin); - try { - musicMixin.deleteMriRow(musicRangeInformationRow); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - private static void changeRows(Connection conn) throws SQLException { - Statement stmt = conn.createStatement(); - Boolean execute = stmt.execute(UPDATE); - conn.commit(); - stmt.close(); - } - - private static void addRowsToTable(int totalNumberOfRows, Connection testConnection) throws SQLException { - for (int i = 0; i < totalNumberOfRows; i++) { - final StringBuilder insertSQLBuilder = new StringBuilder() - .append("INSERT INTO PERSONS VALUES (") - .append(i) - .append(", ") - .append(0) - .append(", '") - .append("Last-") - .append(i) - .append("', '") - .append("First-") - .append(i) - .append("', 'KACB', 'ATLANTA');"); - Statement stmt = testConnection.createStatement(); - Boolean execute = stmt.execute(insertSQLBuilder.toString()); - stmt.close(); - } - testConnection.commit(); - } - - public static void createHistory(MdbcServerLogic meta,int rows, int updates,int transitions) - throws SQLException { - final StateManager stateManager = meta.getStateManager(); - String id = UUID.randomUUID().toString(); - Connection connection = stateManager.getConnection(id); - createTable(connection); - addRowsToTable(rows, connection); - connection.close(); - stateManager.closeConnection(id); - for(int mriRow=0;mriRow<transitions;mriRow++) { - final String finalId = UUID.randomUUID().toString(); - connection = stateManager.getConnection(finalId); - for(int depth=0;depth<updates;depth++){ - changeRows(connection); - } - connection.close(); - stateManager.closeConnection(finalId); - } - } - - public static MdbcServerLogic setupServer(String user, String password){ - MdbcServerLogic meta; - NodeConfiguration config = new NodeConfiguration("","",null,OwnUtils.DATABASE, - OwnUtils.MDBC_SERVER_NAME); - //\TODO Add configuration file with Server Info - Properties connectionProps = new Properties(); - connectionProps.setProperty("user", user); - connectionProps.setProperty("password", password); - connectionProps.setProperty(MusicMixin.KEY_MUSIC_RFACTOR,Integer.toString(OwnUtils.REPLICATION_FACTOR)); - connectionProps.setProperty(MusicMixin.KEY_MUSIC_NAMESPACE,OwnUtils.KEYSPACE); - try { - meta = new MdbcServerLogic(OwnUtils.SQL_URL,connectionProps,config); - } catch (SQLException e) { - e.printStackTrace(); - meta=null; - System.exit(1); - } catch (MDBCServiceException e) { - e.printStackTrace(); - meta=null; - System.exit(1); - } - return meta; - } - - public static void dropAll(String ip){ - Session session=OwnUtils.getSession(ip); - session.execute("DROP KEYSPACE IF EXISTS "+OwnUtils.KEYSPACE+";"); - try { - Connection connection = OwnUtils.getConnection(); - OwnUtils.dropTable(connection); - connection.close(); - } catch (SQLException|ClassNotFoundException e) { - e.printStackTrace(); - System.exit(1); - } - } - - public static void initMri(MusicMixin musicMixin,Range range,MdbcServerLogic meta, int rows, int updates, int transitions){ - try { - OwnUtils.initMriTable(musicMixin,range); - } catch (MusicLockingException|SQLException|MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - try { - OwnUtils.createHistory(meta, rows, updates, transitions); - } catch (SQLException e) { - e.printStackTrace(); - System.exit(1); - } - } - - public static void hardcodedAddtransaction(int size){ - final UUID uuid = MDBCUtils.generateTimebasedUniqueKey(); - ByteBuffer serializedTransactionDigest = ByteBuffer.allocate(size); - for(int i=0;i<size;i++){ - serializedTransactionDigest.put((byte)i); - } - PreparedQueryObject query = new PreparedQueryObject(); - String cql = String.format("INSERT INTO %s.%s (txid,transactiondigest,compressed ) VALUES (?,?,?);",KEYSPACE, - MTD_TABLE_NAME); - query.appendQueryString(cql); - query.addValue(uuid); - query.addValue(serializedTransactionDigest); - query.addValue(false); - //\TODO check if I am not shooting on my own foot - try { - MusicCore.nonKeyRelatedPut(query,"critical"); - } catch (MusicServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - public static void hardcodedAppendToRedo(UUID mriId, String lockId){ - final UUID uuid = MDBCUtils.generateTimebasedUniqueKey(); - PreparedQueryObject query = new PreparedQueryObject(); - StringBuilder appendBuilder = new StringBuilder(); - appendBuilder.append("UPDATE ") - .append(KEYSPACE) - .append(".") - .append(MRI_TABLE_NAME) - .append(" SET txredolog = txredolog +[('") - .append(MTD_TABLE_NAME) - .append("',") - .append(uuid) - .append(")] WHERE rangeid = ") - .append(mriId) - .append(";"); - query.appendQueryString(appendBuilder.toString()); - ReturnType returnType = MusicCore.criticalPut(KEYSPACE, MRI_TABLE_NAME, mriId.toString(), - query, lockId, null); - //returnType.getExecutionInfo() - if (returnType.getResult().compareTo(ResultType.SUCCESS) != 0) { - System.exit(1); - } - } - - public static void addTransactionDigest(StagingTable transactionDigest, MusicTxDigestId digestId, MusicMixin music){ - try { - music.createAndAddTxDigest(transactionDigest, digestId.transactionId); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - public static void appendToRedo(MusicMixin music, UUID MRIIndex, String lockId, MusicTxDigestId digestId){ - try { - music.appendToRedoLog(KEYSPACE,MRIIndex,digestId.transactionId,lockId,OwnUtils.MTD_TABLE_NAME, - OwnUtils.MRI_TABLE_NAME); - } catch (MDBCServiceException e) { - e.printStackTrace(); - System.exit(1); - } - } - - public static MusicTxDigestId setupCommit(DatabasePartition partition, StagingTable transactionDigest){ - UUID mriIndex = partition.getMRIIndex(); - - if(transactionDigest == null || transactionDigest.isEmpty()) { - System.err.println("Transaction digest is empty"); - System.exit(1); - } - - MusicTxDigestId digestId = new MusicTxDigestId(MDBCUtils.generateUniqueKey(), -1); - return digestId; - } -} diff --git a/mdbc-internal-benchmark/src/main/resources/logback.xml b/mdbc-internal-benchmark/src/main/resources/logback.xml deleted file mode 100755 index 4215681..0000000 --- a/mdbc-internal-benchmark/src/main/resources/logback.xml +++ /dev/null @@ -1,369 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ============LICENSE_START========================================== - mdbc - =================================================================== - Copyright © 2017 AT&T Intellectual Property. All rights reserved. - =================================================================== - - Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the “License”); - you may not use this software 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. - - Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - you may not use this documentation except in compliance with the License. - You may obtain a copy of the License at - - https://creativecommons.org/licenses/by/4.0/ - - Unless required by applicable law or agreed to in writing, documentation - 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============================================ - - - --> - -<configuration scan="false" scanPeriod="3 seconds" debug="true"> - <!-- - Logback files for the mdbc Driver "mdbc" - are created in directory ${catalina.base}/logs/mdbc; - e.g., apache-tomcat-8.0.35/logs/mdbc/application.log - --> - <!--<jmxConfigurator /> --> - - <!-- specify the component name --> - <property name="catalina.home" value="/var/log/metric/"/> - <property name="componentName" value="mdbc"></property> - - <!-- specify the base path of the log directory --> - <property name="logDirPrefix" value="${catalina.base}/logs"></property> - - <!-- The directories where logs are written --> - <property name="logDirectory" value="${logDirPrefix}/${componentName}"/> - <!-- Can easily relocate debug logs by modifying this path. --> - <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}"/> - - <!-- log file names --> - <property name="generalLogName" value="application"/> - <property name="errorLogName" value="error"/> - <property name="metricsLogName" value="metrics"/> - <property name="auditLogName" value="audit"/> - <property name="debugLogName" value="debug"/> - <!-- - These loggers are not used in code (yet). - <property name="securityLogName" value="security" /> - <property name="policyLogName" value="policy" /> - <property name="performanceLogName" value="performance" /> - <property name="serverLogName" value="server" /> - --> - - <!-- 1610 Logging Fields Format Revisions --> - <property name="auditLoggerPattern" - value="%X{AuditLogBeginTimestamp}|%X{AuditLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n"/> - - <property name="metricsLoggerPattern" - value="%X{MetricsLogBeginTimestamp}|%X{MetricsLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n"/> - - <property name="errorLoggerPattern" - value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ClassName}|%X{AlertSeverity}|%X{ErrorCode}|%X{ErrorDescription}| %msg%n"/> - - <property name="defaultLoggerPattern" - value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ClassName}| %msg%n"/> - - <!-- use %class so library logging calls yield their class name --> - <property name="applicationLoggerPattern" - value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%class{36}| %msg%n"/> - - <!-- Example evaluator filter applied against console appender --> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>${defaultLoggerPattern}</pattern> - </encoder> - </appender> - - <!-- ============================================================================ --> - <!-- EELF Appenders --> - <!-- ============================================================================ --> - - <!-- The EELFAppender is used to record events to the general application - log --> - - - <appender name="EELF" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${generalLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- daily rollover --> - <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> - - <!-- keep 30 days' worth of history capped at 3GB total size --> - <maxHistory>30</maxHistory> - <totalSizeCap>3GB</totalSizeCap> - - </rollingPolicy> - <encoder> - <pattern>${applicationLoggerPattern}</pattern> - </encoder> - </appender> - - <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <!-- Class name is part of caller data --> - <includeCallerData>true</includeCallerData> - <appender-ref ref="EELF"/> - </appender> - - <!-- EELF Security Appender. This appender is used to record security events - to the security log file. Security events are separate from other loggers - in EELF so that security log records can be captured and managed in a secure - way separate from the other logs. This appender is set to never discard any - events. --> - <!-- - <appender name="EELFSecurity" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${securityLogName}.log</file> - <rollingPolicy - class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>9</maxIndex> - </rollingPolicy> - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>5MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${defaultPattern}</pattern> - </encoder> - </appender> - - <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <discardingThreshold>0</discardingThreshold> - <appender-ref ref="EELFSecurity" /> - </appender> - --> - - <!-- EELF Performance Appender. This appender is used to record performance - records. --> - <!-- - <appender name="EELFPerformance" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${performanceLogName}.log</file> - <rollingPolicy - class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>9</maxIndex> - </rollingPolicy> - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>5MB</maxFileSize> - </triggeringPolicy> - <encoder> - <outputPatternAsHeader>true</outputPatternAsHeader> - <pattern>${defaultPattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFPerformance" /> - </appender> - --> - - <!-- EELF Server Appender. This appender is used to record Server related - logging events. The Server logger and appender are specializations of the - EELF application root logger and appender. This can be used to segregate Server - events from other components, or it can be eliminated to record these events - as part of the application root log. --> - <!-- - <appender name="EELFServer" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${serverLogName}.log</file> - <rollingPolicy - class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>9</maxIndex> - </rollingPolicy> - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>5MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${defaultPattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFServer" /> - </appender> - --> - - <!-- EELF Policy Appender. This appender is used to record Policy engine - related logging events. The Policy logger and appender are specializations - of the EELF application root logger and appender. This can be used to segregate - Policy engine events from other components, or it can be eliminated to record - these events as part of the application root log. --> - <!-- - <appender name="EELFPolicy" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${policyLogName}.log</file> - <rollingPolicy - class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>9</maxIndex> - </rollingPolicy> - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>5MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${defaultPattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFPolicy" /> - </appender> - --> - - <!-- EELF Audit Appender. This appender is used to record audit engine - related logging events. The audit logger and appender are specializations - of the EELF application root logger and appender. This can be used to segregate - Policy engine events from other components, or it can be eliminated to record - these events as part of the application root log. --> - - <appender name="EELFAudit" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- daily rollover --> - <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> - - <!-- keep 30 days' worth of history capped at 3GB total size --> - <maxHistory>30</maxHistory> - <totalSizeCap>3GB</totalSizeCap> - - </rollingPolicy> - <encoder> - <pattern>${auditLoggerPattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFAudit"/> - </appender> - - <appender name="EELFMetrics" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- daily rollover --> - <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> - - <!-- keep 30 days' worth of history capped at 3GB total size --> - <maxHistory>30</maxHistory> - <totalSizeCap>3GB</totalSizeCap> - - </rollingPolicy> - <encoder> - <pattern>${metricsLoggerPattern}</pattern> - </encoder> - </appender> - - - <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFMetrics"/> - </appender> - - <appender name="EELFError" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- daily rollover --> - <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> - - <!-- keep 30 days' worth of history capped at 3GB total size --> - <maxHistory>30</maxHistory> - <totalSizeCap>3GB</totalSizeCap> - - </rollingPolicy> - <encoder> - <pattern>${errorLoggerPattern}</pattern> - </encoder> - </appender> - - <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFError"/> - </appender> - - <appender name="EELFDebug" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${debugLogDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <!-- daily rollover --> - <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> - - <!-- keep 30 days' worth of history capped at 3GB total size --> - <maxHistory>30</maxHistory> - <totalSizeCap>3GB</totalSizeCap> - - </rollingPolicy> - <encoder> - <pattern>${defaultLoggerPattern}</pattern> - </encoder> - </appender> - - <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>256</queueSize> - <appender-ref ref="EELFDebug"/> - </appender> - - - <logger name="com.att.eelf" level="error" additivity="false"> - <appender-ref ref="asyncEELF"/> - </logger> - - <logger name="com.att.eelf" level="error" additivity="false"> - <appender-ref ref="asyncEELFAudit"/> - </logger> - - <logger name="com.att.eelf" level="error" additivity="false"> - <appender-ref ref="asyncEELFDebug"/> - </logger> - - <logger name="com.att.eelf.error" level="error" additivity="false"> - <appender-ref ref="asyncEELFError"/> - </logger> - - <logger name="com.att.eelf.metrics" level="error" additivity="false"> - <appender-ref ref="asyncEELFMetrics"/> - </logger> - - <root level="ERROR"> - <appender-ref ref="asyncEELF"/> - </root> - -</configuration> diff --git a/mdbc-internal-benchmark/src/main/resources/mdbc.properties b/mdbc-internal-benchmark/src/main/resources/mdbc.properties deleted file mode 100755 index 73e8f77..0000000 --- a/mdbc-internal-benchmark/src/main/resources/mdbc.properties +++ /dev/null @@ -1,13 +0,0 @@ -# -# A list of all Mixins that should be checked by MDBC -# -MIXINS= \ - org.onap.music.mdbc.mixins.MySQLMixin \ - org.onap.music.mdbc.mixins.MusicMixin \ - org.onap.music.mdbc.mixins.Music2Mixin - -DEFAULT_DRIVERS=\ - org.h2.Driver \ - com.mysql.jdbc.Driver - -txdaemonsleeps=15
\ No newline at end of file diff --git a/mdbc-internal-benchmark/src/main/resources/music.properties b/mdbc-internal-benchmark/src/main/resources/music.properties deleted file mode 100755 index ccacd38..0000000 --- a/mdbc-internal-benchmark/src/main/resources/music.properties +++ /dev/null @@ -1,8 +0,0 @@ -cassandra.host =\ - 10.0.0.5 -cassandra.user =\ - metric -cassandra.password =\ - metriccluster -zookeeper.host =\ - localhost |