diff --git a/dingo-dist/bin/start-coordinator.sh b/dingo-dist/bin/start-coordinator.sh index 6f12e9eddc..e389358262 100755 --- a/dingo-dist/bin/start-coordinator.sh +++ b/dingo-dist/bin/start-coordinator.sh @@ -18,6 +18,7 @@ ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" JAR_PATH=$(find $ROOT -name dingo-*-coordinator-*.jar) +JAVA_OPTS="-Xms1g -Xmx1g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError" nohup java ${JAVA_OPTS} \ -Dlogback.configurationFile=file:${ROOT}/conf/logback-coordinator.xml \ diff --git a/dingo-dist/bin/start-executor.sh b/dingo-dist/bin/start-executor.sh index 299cb0c93b..dcb3bd77cb 100755 --- a/dingo-dist/bin/start-executor.sh +++ b/dingo-dist/bin/start-executor.sh @@ -19,6 +19,7 @@ ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" JAR_PATH=$(find $ROOT -name dingo-*-executor-*.jar) STORE_JAR_PATH=$(find $ROOT -name dingo-store*.jar) +JAVA_OPTS="-Xms1g -Xmx1g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError" nohup java ${JAVA_OPTS} \ -Dlogback.configurationFile=file:${ROOT}/conf/logback-executor.xml \ diff --git a/dingo-driver-client/build.gradle b/dingo-driver-client/build.gradle index 23f5ac26c5..3d78a6bf2a 100755 --- a/dingo-driver-client/build.gradle +++ b/dingo-driver-client/build.gradle @@ -21,6 +21,9 @@ plugins { id 'maven-publish' } +apply plugin: 'maven' +apply plugin: 'signing' + dependencies { implementation group: 'org.apache.calcite.avatica', name: 'avatica-core', version: 'avatica'.v() implementation project(':dingo-common') @@ -28,6 +31,16 @@ dependencies { implementation project(':dingo-net-netty') } +task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc +} + +task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allSource +} + task fatJar(type: Jar) { classifier 'all' from( @@ -40,10 +53,6 @@ task fatJar(type: Jar) { exclude "META-INF/*.RSA" } -tasks.named("build") { x -> - x.finalizedBy("fatJar") -} - fatJar.dependsOn([ ':dingo-common:jar', ':dingo-net-api:jar', @@ -53,21 +62,20 @@ fatJar.dependsOn([ ':dingo-expr:dingo-expr-json-runtime:jar' ]) +tasks.named("build") { x -> + x.finalizedBy("fatJar") +} + publishing { repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/dingodb/dingo") - credentials { - username = System.getenv("GITHUB_ACTOR") - password = System.getenv("GITHUB_TOKEN") - } - } maven { name = "OSSRH" - def releasesRepoUrl = "https://s01.oss.sonatype.org/content/repositories/releases/" + def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/" - url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl + /** + * will manually release the artifactory + */ + url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : ""; credentials { username = System.getenv("MAVEN_USERNAME") password = System.getenv("MAVEN_TOKEN") @@ -79,7 +87,64 @@ publishing { maven(MavenPublication) { groupId = 'io.dingodb' artifactId = 'dingo-driver-client' - artifacts = [ fatJar ] + artifacts = [ fatJar, sourcesJar, javadocJar ] + } + } +} + +artifacts { + archives javadocJar, sourcesJar +} + +project.gradle.taskGraph.whenReady { graph -> + project.tasks.findAll().forEach { task -> + if (task.name.contains("signArchives")) { + task.enabled = false + } + } +} + +signing { + sign configurations.archives +} + +uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'dingo-driver-client' + packaging 'jar' + // optionally artifactId can be defined here + description 'A driver client for dingo cluster' + url 'http://www.dingodb.datacanvas.com/' + + scm { + connection 'scm:svn:http://foo.googlecode.com/svn/trunk/' + developerConnection 'scm:svn:https://foo.googlecode.com/svn/trunk/' + url 'http://foo.googlecode.com/svn/trunk/' + } + + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id 'dingodb' + name 'DingoDB develop team' + email 'dingodb@zetyun.com' + } + } + } } } } diff --git a/dingo-example/src/main/java/io/dingodb/example/sdk/client/DingoExampleUsingSDK.java b/dingo-example/src/main/java/io/dingodb/example/sdk/client/DingoExampleUsingSDK.java index 8ef6a1bc5e..a4ac174541 100644 --- a/dingo-example/src/main/java/io/dingodb/example/sdk/client/DingoExampleUsingSDK.java +++ b/dingo-example/src/main/java/io/dingodb/example/sdk/client/DingoExampleUsingSDK.java @@ -183,9 +183,16 @@ public static void scanAllRecords(String tableName) throws Exception { } public static void delete(String tableName) throws Exception { + long startTime = System.currentTimeMillis(); for (int i = 0; i < insertTotalCnt; i++) { Object[] key = new Object[]{i}; - System.out.println("delete key: " + Arrays.toString(key)); + long endTime = System.currentTimeMillis(); + if (i != 0 && i % 10000 == 0) { + System.out.println("AvgTimeCost:" + (endTime - startTime) * 1.0 / i + + ", LoopCnt:" + i + + ", TotalCost:" + (endTime - startTime) / 1000 + "s" + ); + } dingoClient.delete(tableName, key); } } diff --git a/dingo-sdk/build.gradle b/dingo-sdk/build.gradle index 386455d2d1..545bcb97da 100644 --- a/dingo-sdk/build.gradle +++ b/dingo-sdk/build.gradle @@ -5,6 +5,9 @@ plugins { id 'maven-publish' } +apply plugin: 'maven' +apply plugin: 'signing' + dependencies { implementation group: 'org.projectlombok', name: 'lombok', version: 'lombok'.v() implementation group: 'org.apache.commons', name: 'commons-lang3', version: 'commons-lang3'.v() @@ -58,23 +61,44 @@ tasks.named("build") { x -> x.finalizedBy("fatJar") } +task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc +} -publishing { - repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/dingodb/dingo") - credentials { - username = System.getenv("GITHUB_ACTOR") - password = System.getenv("GITHUB_TOKEN") - } +task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allSource +} + +artifacts { + archives javadocJar, sourcesJar +} + +project.gradle.taskGraph.whenReady { graph -> + project.tasks.findAll().forEach { task -> + if (task.name.contains("signArchives")) { + task.enabled = false } + } +} + +signing { + sign configurations.archives +} +publishing { + repositories { maven { name = "OSSRH" - def releasesRepoUrl = "https://s01.oss.sonatype.org/content/repositories/releases/" + def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/" - url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl + + /** + * will manually release the artifactory + */ + url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : ""; + credentials { username = System.getenv("MAVEN_USERNAME") password = System.getenv("MAVEN_TOKEN") @@ -86,7 +110,48 @@ publishing { maven(MavenPublication) { groupId = 'io.dingodb' artifactId = 'dingo-sdk' - artifacts = [ fatJar ] + artifacts = [ fatJar, javadocJar, sourcesJar ] + } + } +} + +uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'dingo-sdk' + packaging 'jar' + // optionally artifactId can be defined here + description 'A sdk library to do operation on dingo cluster' + url 'http://www.dingodb.datacanvas.com/' + + scm { + connection 'scm:svn:http://foo.googlecode.com/svn/trunk/' + developerConnection 'scm:svn:https://foo.googlecode.com/svn/trunk/' + url 'http://foo.googlecode.com/svn/trunk/' + } + + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id 'dingodb' + name 'DingoDB develop team' + email 'dingodb@zetyun.com' + } + } + } } } } diff --git a/gradle.properties b/gradle.properties index fd2143f899..feea5a44ad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,7 +22,18 @@ org.gradle.jvmargs=-Xms2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryErro # Dingo group & version # GROUP=io.dingodb -VERSION=0.4.0-SNAPSHOT +VERSION=0.4.1 + + +# +# For Release script +# +ossrhUsername=dingodb +ossrhPassword=xxxxxx +signing.keyId=keyId +signing.password=password +signing.secretKeyRingFile=./ + # # Library versions #