daml/ledger-service/http-json-perf/BUILD.bazel
Stephen Compall ad529e9a8b
http-json-perf: querying larger ACSes with different data patterns (#9530)
* new perf test module LargeAcs to shift many-contract creation to Daml-side

* using MakeIouRange to make blocks of (more or less constant) Ious

* syntax and bad variable quasiquoting

* ACS data distribution plans

* run with 100k contracts, same template, 1% observer frequency

* use CanAssert instead of CanAbort

* query under proper alternative jwt

* no changelog

CHANGELOG_BEGIN
CHANGELOG_END

* make sure the database accurately represents the ACS
2021-05-25 08:23:31 -04:00

148 lines
5.3 KiB
Python

# Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
load(
"//bazel_tools:scala.bzl",
"da_scala_binary",
"da_scala_library",
"lf_scalacopts",
)
load(
"//rules_daml:daml.bzl",
"daml_compile",
)
load("@scala_version//:index.bzl", "scala_major_version", "scala_version_suffix")
load(
"//daml-lf/language:daml-lf.bzl",
"lf_version_configuration",
)
scalacopts = lf_scalacopts + [
"-P:wartremover:traverser:org.wartremover.warts.NonUnitStatements",
]
perf_runtime_deps = {
"ce": [],
"ee": [
"@maven//:com_oracle_database_jdbc_ojdbc8",
],
}
[
da_scala_library(
name = "http-json-perf-{}".format(edition),
srcs = glob(["src/main/scala/**/*.scala"]),
plugins = [
"@maven//:org_typelevel_kind_projector_{}".format(scala_version_suffix),
],
resources = glob(["src/main/resources/**/*"]),
scala_deps = [
"@maven//:com_github_scopt_scopt",
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_http_core",
"@maven//:com_typesafe_akka_akka_stream",
"@maven//:com_typesafe_scala_logging_scala_logging",
"@maven//:io_spray_spray_json",
"@maven//:org_scalactic_scalactic",
"@maven//:org_scalatest_scalatest",
"@maven//:org_scalaz_scalaz_core",
],
scalacopts = scalacopts,
tags = ["maven_coordinates=com.daml:http-json-perf-{}:__VERSION__".format(edition)],
visibility = ["//visibility:public"],
runtime_deps = [
"@maven//:ch_qos_logback_logback_classic",
],
deps = [
"//language-support/scala/bindings-akka",
"//ledger-api/rs-grpc-bridge",
"@maven//:io_gatling_gatling_netty_util",
"@maven//:io_netty_netty_common",
"@maven//:io_netty_netty_transport",
"//ledger-service/http-json:http-json-{}".format(edition),
"//ledger-service/http-json-cli:{}".format(edition),
"//ledger-service/http-json-testing:{}".format(edition),
"//ledger-service/jwt",
"//libs-scala/gatling-utils",
"//libs-scala/oracle-testing",
"//libs-scala/ports",
"//libs-scala/postgresql-testing",
"//libs-scala/scala-utils",
"//runtime-components/jdbc-drivers:jdbc-drivers-{}".format(edition),
"@maven//:com_fasterxml_jackson_core_jackson_core",
"@maven//:com_fasterxml_jackson_core_jackson_databind",
"@maven//:io_gatling_gatling_app",
"@maven//:io_gatling_gatling_commons",
"@maven//:io_gatling_gatling_commons_shared_unstable",
"@maven//:io_gatling_gatling_core",
"@maven//:io_gatling_gatling_http",
"@maven//:io_gatling_gatling_http_client",
"@maven//:org_slf4j_slf4j_api",
],
)
for edition in [
"ce",
"ee",
]
] if scala_major_version == "2.13" else None
daml_compile(
name = "LargeAcs",
srcs = ["daml/LargeAcs.daml"],
target = lf_version_configuration.get("latest"),
)
[
da_scala_binary(
name = "http-json-perf-binary-{}".format(edition),
data = [
":release/json-api-perf-logback.xml",
],
jvm_flags = [
"-Dlogback.configurationFile=$(location :release/json-api-perf-logback.xml)",
],
main_class = "com.daml.http.perf.Main",
scala_deps = [
"@maven//:com_github_scopt_scopt",
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_http_core",
"@maven//:com_typesafe_akka_akka_stream",
"@maven//:com_typesafe_scala_logging_scala_logging",
"@maven//:org_scalactic_scalactic",
"@maven//:org_scalatest_scalatest",
"@maven//:org_scalaz_scalaz_core",
],
scalacopts = scalacopts,
visibility = ["//visibility:public"],
runtime_deps = [
"@maven//:ch_qos_logback_logback_classic",
"@maven//:io_gatling_highcharts_gatling_charts_highcharts",
] + perf_runtime_deps.get(edition),
deps = [
"@maven//:io_gatling_highcharts_gatling_charts_highcharts",
":http-json-perf-{}".format(edition),
"//language-support/scala/bindings-akka",
"//ledger-api/rs-grpc-bridge",
"//ledger-service/http-json:http-json-{}".format(edition),
"//ledger-service/http-json-testing:{}".format(edition),
"//ledger-service/jwt",
"//libs-scala/gatling-utils",
"//libs-scala/scala-utils",
"@maven//:com_fasterxml_jackson_core_jackson_core",
"@maven//:com_fasterxml_jackson_core_jackson_databind",
"@maven//:io_gatling_gatling_app",
"@maven//:io_gatling_gatling_commons",
"@maven//:io_gatling_gatling_core",
"@maven//:io_gatling_gatling_http",
"@maven//:io_gatling_gatling_http_client",
"@maven//:org_slf4j_slf4j_api",
],
)
for edition in [
"ce",
"ee",
]
] if scala_major_version == "2.13" else None
exports_files(["release/json-api-perf-logback.xml"])