Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
picodata
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Container Registry
Model registry
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
core
picodata
Commits
310a773f
Verified
Commit
310a773f
authored
1 year ago
by
Alexander Tolstoy
Committed by
Denis Smirnov
1 year ago
Browse files
Options
Downloads
Patches
Plain Diff
review contributing.md
parent
8ba5ec39
No related branches found
No related tags found
1 merge request
!528
test: collect sql performance report with k6
Pipeline
#18275
passed
1 year ago
Changes
1
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
CONTRIBUTING.md
+27
-25
27 additions, 25 deletions
CONTRIBUTING.md
with
27 additions
and
25 deletions
CONTRIBUTING.md
+
27
−
25
View file @
310a773f
...
...
@@ -140,43 +140,46 @@ python3.10 -m pipenv run pytest -n 20
---
###
M
acO
s
###
m
acO
S
#### Installation
The first step is to see which version is currently linked homebrew.
The installation sequence requires Python 3.10 or newer, preferably installed via Homebrew.
First check if the required version is available:
```
shell
brew info python
```
If
the python version is equal to `3.10`
, go
to
install
pipenv.
If
it is
, go
and
install
it:
```
shell
brew install python@3.1
0
brew install python@3.1
1
brew link python
python3 --version
```
Check if the default `python3` executable is available and provided by the Homebrew installation:
Since with a high probability you have already installed
`Xcode Developer Tools`, check which executable file you have called by
command:
```
shell
which python3
```
If it is a python3 installed by homebrew then proceed to the installation
pipenv. Also, if you not make sure the `/usr/local/bin` directory is included
in the `PATH`, add it. After that, check homebrew environment:
_Note_: Python versions <=3.9 such as the one provided by the older `Xcode Developer Tools` will not work.
If the `python3` executable is provided by Homebrew, skip the following part and jump to `pipenv` installation.
Otherwise, that needs to be fixed. Let's find out the local Homebrew installation details:
```
shell
brew config
```
Variabl
e `HOMEBREW_PREFIX`
will
point to the directory
in which
brew
installs packages.
Depending on where the homebrew executables are located,
create a symlink.
Th
e `HOMEBREW_PREFIX`
variable should
point to the directory
where `
brew
`
installs packages.
Let's create a symlink:
```
shell
ln -s "$(brew config | sed -n "s/^HOMEBREW_PREFIX: //p" | tr -d "
\n
")/bin/python@3.10" /usr/local/bin/python3
```
_Note_: Make sure that `/usr/local/bin` is in your `PATH`.
Check `python3` location and version. Now it should be provided by Homebrew:
Check `python3` location and version. Now it should be python installed
homebrew.
```
shell
which python3
python3 --version
...
...
@@ -186,9 +189,8 @@ Make sure the `pip3` executable also points to the homebrew directory.
```
shell
which pip3
```
If not using "right" (located in homebrew directory) an executable, then
repeat the steps similar to `python3` before proceeding with installing
`pipenv`.
If it doesn't, then similarly create a simlink for `pip3`:
```
shell
ln -s "$(brew config | sed -n "s/^HOMEBREW_PREFIX: //p" | tr -d "
\n
")/bin/pip@3.10" /usr/local/bin/pip3
```
...
...
@@ -218,20 +220,20 @@ pipenv run lint
### Benchmarks
There is simple benchmark based on pytest scenario. Quick run it with
There is
a
simple benchmark based on
`
pytest
`
scenario. Quick run it with
```
bash
make benchmark
```
The benchmark consist of two parts:
benchmark of t
arantool space operations (replaces) and
benchmark of p
icodata
's
raft writes to leader (NOPs).
The benchmark consist
s
of two parts:
T
arantool space operations (replaces) and
P
icodata
`
raft
`
writes to leader (NOPs).
You will see both results.
The benchmark designed for quick e
stimate of
current application performance.
The benchmark designed for quick e
valuation of the
current application performance.
### Flamegraphs
It is possible to make [flamegraphs](https://github.com/brendangregg/FlameGraph) while benchmarking debug build.
It is possible to make [flamegraphs](https://github.com/brendangregg/FlameGraph) while benchmarking
a
debug build.
- Install `perf`:
```
bash
...
...
@@ -245,7 +247,7 @@ It is possible to make [flamegraphs](https://github.com/brendangregg/FlameGraph)
Your folder structure will look like this:
```
..
picodata (you here)
picodata (you
are
here)
FlameGraph
(other folders and files)
```
...
...
@@ -267,7 +269,7 @@ It is possible to make [flamegraphs](https://github.com/brendangregg/FlameGraph)
### SQL performance
To benchmark SQL, a custom K6 build (
[
xk6
](
https://github.com/grafana/xk6
)
with
To benchmark SQL, a custom K6 build (
[
xk6
](
https://github.com/grafana/xk6
)
)
with
Tarantool protocol support is used.
-
Install
[
golang
](
https://go.dev/doc/install
)
and
[
xk6
](
https://github.com/grafana/xk6
)
.
...
...
@@ -276,4 +278,4 @@ Tarantool protocol support is used.
```
bash
make k6
```
Performance summary
would be placed in
`test/manual/sql/`
directory.
Performance summary
can then be found in the
`test/manual/sql/`
directory.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment