Commit Graph

213 Commits

Author SHA1 Message Date
Roman Gershman
10de338926
chore: run fakeredis flow with the debug build (#3612)
1. Fix html publishing code
2. Upload dragonfly logs
3. Run it on pull requests

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-09-01 14:51:00 +03:00
Roman Gershman
20336805f3
chore: enable experimental_new_io by default. (#3605)
* chore: enable experimental_new_io by default.

It has been running for weeks with the flag on, so enabled it also for community.

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-08-29 23:30:26 +03:00
Daniel M
a66cbe150e
fix: fakeredis tests support python 3.10 (#3550)
* fix:change to py3.10

* fix:change to py3.10
2024-08-23 22:31:35 +03:00
Daniel M
e3016a6f83
test: tests using fakeredis to check compatibility (#3534)
* fakeredis tests
2024-08-22 22:30:42 +03:00
Vladislav
1f36c9952d
chore(io): Introduce (carefully) new io with use_new_io flag (#3513)
Plugs in new IO, must be reverted after successful testing
2024-08-16 16:56:04 +03:00
Kostas Kyrimis
d37c2ec85a
fix: pytest warnings (#3497)
* fix truncating the timeout red dots on CI failures
* fix deprecated use of with timeout warnings
* remove @pytest.mark.dbg_only as it doesn't exist
---------

Signed-off-by: kostas <kostas@dragonflydb.io>
2024-08-13 16:05:15 +03:00
Kostas Kyrimis
634b08dc53
fix: sanitizers post failure on google chat (#3496)
* fix sanitizers failure post on google chat
* only report failures on main branch

---------

Signed-off-by: kostas <kostas@dragonflydb.io>
2024-08-12 07:04:57 +00:00
Roman Gershman
7c84b8e524
chore: change how we track memory_budget during evictions (#3457)
* chore: change how we track memory_budget during evictions

We compared memory_budget vs 0 before inserting a new item in DbSlice,
and retired cool pages if we are low on memory.

The problem - when we decide whether we allow growing a table, we estimate the possible object size increase due to the future table growth.
And the memory check described before was not consistent with the actual logic that rejected the insertion.

Moreover, the memory_budget tracking interaction with EvictionPolicy was over-complicated: we passed the memory_budget counter to the evp object
and then read it back, even though evp did not track object deletions memory impact during objects evictions.

Now, we remove the responsibility from evp to update memory_budget_ so it's solely updated by DbSlice.
We also update memory_budget_ during deletions, and when we pass it to evp, we add cool memory size as potential memory resource to avoid
rejections in case we have lots of cool memory.

Fixes #3456
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-08-07 15:43:45 +03:00
Kostas Kyrimis
ff716bb8b0
fix: missing logs on ci timeout (#3452)
The env variables exported when regression tests timeout are not working properly and the if statement on the action step Print last log on timeout would fail to read and upload the files set in /tmp/last_log_file.txt. Furthermore, another problem is the job.timeout argument that kills the whole job/matrix before the upload log step has a chance to run. For that, we need manual timeouts on the workflow similar to what we do in regression tests action.

* remove print last log on timeout action step
* copy the logs on timeout directly within the timeout step
* replace global timeout on CI workflow with timeout command per step


---------

Signed-off-by: kostas <kostas@dragonflydb.io>
2024-08-06 14:52:18 +03:00
Vladislav
55d39b66ff
chore: fix memcached pipeline test (#3438) 2024-08-04 15:41:17 +03:00
Kostas Kyrimis
1aa0720843
chore: increase timeout of regression tests (#3412)
The recent changes of the serialization_max_chunk_size set to 1 for extreme testing increased the running time of the tests causing them sometimes to timeout.

* increase timeout on reg tests from 40 to 50

---------

Signed-off-by: kostas <kostas@dragonflydb.io>
2024-07-31 07:28:44 +00:00
Roman Gershman
776bd79381
fix: reenable macos builds (#3399)
* fix: reenable macos builds

Also, add debug function that prints local state if deadlocks occure.

* fix: free cold memory for non-cache mode as well

* chore: disable FreeMemWithEvictionStep again

Because it heavily affects the performance when performing evictions.

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-28 22:40:51 +03:00
adiholden
e3eb8518fd
feat(test): Improve benchmark workflow (#3330)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-07-17 14:34:48 +03:00
Borys
21620ef46f
fix: missing logs on pytest failures #3255 (#3272)
* fix: missing logs on pytest failures #3255
2024-07-10 10:58:54 +03:00
Stepan Bagritsevich
e914a5f7cf
fix(json_family): Fix error in JsonFamilyTest.MGet (#3285)
* fix(json_family): Fix error in JsonFamilyTest.MGet

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>

* refactor(json_family): address comments

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>

* refactor(json_family): Change LOG(WARNING) to VLOG(2)

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>

* fix(json_family): Test case when jsonpathv2 is false

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>

* refactor(json_family): Update VLOGs level from 2 to 1

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>

---------

Signed-off-by: Stepan Bagritsevich <bagr.stepan@gmail.com>
2024-07-09 16:02:33 +04:00
Roman Gershman
ff5c89d0ad
Create scorecard.yml (#3270)
add https://scorecard.dev/ tool scanning

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-08 08:34:13 +03:00
Roman Gershman
d8946247df
chore: upload all the logs from /tmp (#3263)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-04 09:17:25 +03:00
Roman Gershman
506ecbc3cd
chore: add more logs around the duplicate value case in small_bins (#3254)
Helps investigating #3252

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-02 13:04:00 +03:00
Roman Gershman
dfc7f177c1
chore: update action versions (#3250) 2024-07-01 08:36:36 +00:00
Roman Gershman
3b920cbe5c
fix: total_stash_overflows statistic (#3248)
* fix: total_stash_overflows statistic

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-01 10:43:08 +03:00
Roman Gershman
0e375295e8
chore: introduce back-pressure to tiered storage (#3243)
* chore: introduce back-pressure to tiered storage

Also, so clean-up with mac-os daily build.


Enabled forgotten test.
Improve CI insights

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-30 15:46:11 +03:00
Kostas Kyrimis
d207789610
chore(ci): run replication tests on arm (#3168)
* combine replication tests and reg tests in one flow
* allow replication tests to run on arm
2024-06-18 16:48:35 +03:00
Kostas Kyrimis
165631a5aa
fix(ci): add missing docker option on reg tests workflow (#3172)
* add missing option for iouring and docker
2024-06-13 10:55:45 +03:00
Kostas Kyrimis
a9ffb22384
fix(ci): docker not using iouring (#3169)
* fix(ci): docker not using iouring

* fix errors
2024-06-12 16:38:02 +03:00
Roman Gershman
007d4854db
chore: Introduce pipeline back-pressure (#3152)
* chore: Introduce pipeline back-pressure

Also, improve synchronization primitives and replace them with
thread-local variations.

Before the change, on my local machine with the dragonfly running with 8 threads,
`memtier_benchmark  -c 10 --threads 8  --command="PING"  --key-maximum 100000000  --hide-histogram --distinct-client-seed --pipeline=20 --test-time=10`

reached 10M qps with 0.327ms p99.9.

After the change, the same command showed 13.8M qps with 0.2ms p99.9
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-10 12:39:41 +03:00
Roman Gershman
ce2e127183
chore: call breaker_cb_ on shutdown (#3128)
* chore: call breaker_cb_ on shutdown
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-06 08:09:40 +03:00
Roman Gershman
90b5ec4565
fix: upload action in version release (#3127)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-04 15:46:17 +00:00
Roman Gershman
0394387a5f
chore: export pipeline related metrics (#3104)
* chore: export pipeline related metrics

Export in /metrics
1. Total pipeline queue length
2. Total pipeline commands
3. Total pipelined duration

Signed-off-by: Roman Gershman <roman@dragonflydb.io>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-05-30 19:10:35 +03:00
adiholden
c45f7bfea5
feat(server): remove multi shard sync from replication (#3085)
feat server: remove multi shard sync from replication

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-05-27 14:44:37 +03:00
Roman Gershman
494ccdf2c6
chore: update deprecated actions (#3052) 2024-05-16 13:02:10 +03:00
Roman Gershman
3e0a9e16cc
chore: prevent updating gcc on macos (#3037)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-05-13 10:30:42 +03:00
Roman Gershman
b3c08a3eb1
chore: update versions and remove caching code (#3030) 2024-05-09 11:39:41 +03:00
Zacharya
6b480237be
Benchmark fixes (#3005)
* fix(benchmark): depcreated node 16 github actions
2024-05-03 19:53:45 +03:00
Zacharya
5a37c47aaf
feat(benchmark-tests): run in K8s (#2965)
Signed-off-by: adi_holden <adi@dragonflydb.io>

* feat(benchmark-tests): run in K8s

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
Co-authored-by: adi_holden <adi@dragonflydb.io>
2024-05-03 15:12:15 +00:00
Roman Gershman
5c422e39ee
chore: add ipv6 support for native linux release (#2908) 2024-04-16 06:56:33 +00:00
Vladislav
468942ccbb
chore: pull helio and add ipv6 replication test (#2889)
* chore: pull helio and add ipv6 replication test

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-15 15:37:22 +03:00
Tarun Pothulapati
0f613d8f85
fix(ci/helm): Stick to v0.73.0 version of prom operator (#2893) 2024-04-12 10:36:49 +00:00
adiholden
987fbb640e
fix(replication): replication with multi shard sync enabled lagging (#2823)
fix replication: fix replicaiton with multi shard sync enabled

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-02 14:53:35 +00:00
Roman Gershman
8937e28bc2
chore: Fix build by disabling the tests. (#2821)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-04-02 15:21:28 +03:00
Roman Gershman
6d87acfc43
chore: fix daily build (#2798)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-30 22:00:42 +03:00
adiholden
6e32139ada
Benchmark runner (#2780)
* feat(github runner): add benchmark workflow

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-03-27 07:31:19 +00:00
Fabiano Arruda
30ec81c456
Improve Helm chart to be rendered locally and on machines where is not the application target (#2706)
* fix(helm): add issuer group to create the certificate without wait for the previous created issuer

Signed-off-by: Fabiano Arruda Ferreira das Graças <fafg@fafg-mbm1.fritz.box>

* fix(helm): remove condition that can prevent the helm chart be rendered on machines where monitoring.coreos.com is not installed or is not the end target of the helm template command

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): lint - remove blank line

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* add(helm): missing service monitor test files

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* add(helm): add missing cert-manager test files

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): lint - add missing blank lines

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): rebase

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* Revert "fix(helm): rebase"

This reverts commit c4ce16b76e.

* fix(helm): fix service monitor namespace rendering

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): add missing up to date golden file

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): merge upstream

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* update golden files

* also install prom operator dependencies

* also install cert-manager

* skip cert-manager chart

* skip cert-manager value

* remove CI TLS files

* fix formatting

* fix formatting

* fix actions

---------

Signed-off-by: Fabiano Arruda Ferreira das Graças <fafg@fafg-mbm1.fritz.box>
Signed-off-by: fafg <fabiano.arruda@hotmail.com>
Co-authored-by: Tarun Pothulapati <tarun@dragonflydb.io>
Co-authored-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2024-03-25 12:29:42 +05:30
Roman Gershman
f7292de4e7
chore: Introduce fiber stack allocator (#2730)
1. Use clib malloc for allocating fiber stacks but reduce the fiber stack size.
   clib malloc uses default 4K OS pages when reserving memory from the OS.
   The reason for not using mi_malloc, because we use 2MB large OS pages with mimalloc.
   However, allocating stacks is one of the cases, when using smaller 4KB memory pages is actually more
   RSS efficient because memory pages become hot at better granularity.

2. Add "memory_fiberstack_vms_bytes" metric exposing fiber stack vm usage.
3. Fix macos dependencies & update ci versions.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-18 13:51:33 +02:00
Kostas Kyrimis
d6107e55c5
chore: update sanitizers workflow (#2686)
* change timeout duration
* remove failing false positive tests
2024-03-12 14:19:12 +02:00
Roman Gershman
30ce250ab2
chore: Increase disk space in the coverage runs (#2684)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-04 15:29:00 +02:00
Kostas Kyrimis
1b3594ba35
fix: missing manual trigger for daily sanitizers (#2682)
* add manual trigger for usan/asan workflow
2024-03-04 11:40:01 +02:00
Kostas Kyrimis
f3ba448106
chore: make usan asan optional and enable them on CI (#2631)
* add daily job to run unit tests with asan/usan
2024-03-04 11:00:46 +02:00
Roman Gershman
cf9f10e94e
chore: fuly cover json_family API with json::Path parsing (#2663)
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-02-27 14:58:59 +02:00
Roman Gershman
2b30f69fe3
chore: JSON.GET now works with our own jsonpath (#2653) 2024-02-24 13:23:41 +02:00
Andy Dunstall
47171c4c8e
fix: fix zmalloc_size on macos (#2646)
* fix: fix zmalloc_size on macos

---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Co-authored-by: Roman Gershman <roman@dragonflydb.io>
2024-02-23 17:39:58 +02:00