Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added scripts from dev meet-up #1

Merged
merged 1 commit into from
May 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions 2023/ru/webinar_cli_web/cmd.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Initialize workload. Force every table to have 1 partition.
# Disable automatical partitioning by load
ydb --user ydbworkload -v -e \
grpc://ydb-node-zone-a.ydb.internal:2136 -d /Root/ydb-workload workload stock \
init -o 10000 -p 10000 --min-partitions 1 --auto-partition 0

# Following commands run three workloads in parallel

# In order to overload a partition let's run 64 threas of workload
# in mode that adds random orders.
# duration: 72 000 seconds (~20 hours)
ydb --user ydbworkload -v -e grpc://ydb-node-zone-a.ydb.internal:2136 \
-d /Root/ydb-workload workload stock run add-rand-order -s 72000 -t 64

# Additionaly let's run workload that puts orders to processing. Processing
# requires a distributed transaction. In 32 threads for 20 hours.

ydb --user ydbworkload -v -e grpc://ydb-node-zone-a.ydb.internal:2136 \
-d /Root/ydb-workload workload stock run put-rand-order -s 72000 -t 32

# Read-only workload that select last orders created by a random users.
# Let's run this workload for 20 hours in 32 threads.

ydb --user ydbworkload -v -e grpc://ydb-node-zone-a.ydb.internal:2136 \
-d /Root/ydb-workload workload stock run rand-user-hist -s 72000 -t 32

# Command launches a dynamic node for /Root/ydb-workload database
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ydb/lib /opt/ydb/bin/ydbd server \
--grpc-port 2136 --ic-port 19002 --mon-port 8765 --yaml-config /opt/ydb/cfg/config.yaml \
--tenant /Root/ydb-workload --node-broker ydb-node-zone-a.ydb.internal:2135 \
--node-broker ydb-node-zone-b.ydb.internal:2135 \
--node-broker ydb-node-zone-c.ydb.internal:2135 >> /opt/ydb/log/dynamic-node.out 2>> /opt/ydb/log/dynamic-node.err &
34 changes: 34 additions & 0 deletions 2023/ru/webinar_cli_web/cmd.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-- Enable partitioning by load for every table of workload stock involved in
-- this webinar
alter table orders set
(
AUTO_PARTITIONING_BY_LOAD = ENABLED,
AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 10,
AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 20
);

alter table ordersLines set
(
AUTO_PARTITIONING_BY_LOAD = ENABLED,
AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 10,
AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 20
);


alter table stock set
(
AUTO_PARTITIONING_BY_LOAD = ENABLED,
AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 10,
AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 20
);

-- SQL query to demonstrate query plan example
-- WARNING: customer ids are generated randomly
select
o.customer, ol.product, sum(ol.quantity) as orders_quantity
from
orders view ix_cust as o inner join orderLines as ol on ol.id_order = o.id
where
customer in ('Name1033', 'Name4313')
group by
o.customer, ol.product