Commit Graph

326 Commits

Author SHA1 Message Date
Roman Gershman e646209da4 Stability fixes to PUBSUB code 2022-06-08 08:46:48 +03:00
Ali-Akber Saifee 746c04fb9d
Use sum instead of individual counts for channels/patterns (#119) 2022-06-08 05:26:02 +03:00
Ali-Akber Saifee 02bc4425ae
Support Pubsub (P)UNSUBSCRIBE commands without arguments (#117)
* Add tests demonstrating expectations of (p)unsubscribe

- When there are subscriptions the return should contain the count of
  remaining channels or patterns subscribed to
- When there are no subscriptions and no arguments are provided
  a single response containing null for channel / pattern and count = 0
  should be returned
- When there are subscriptions and no arguments are provided
  a response per unsubscribed channel or pattern should be returned

* Update arity of (p)unsubscribe commands

* Lint test

* Handle (p)unsubscribe without arguments

Side effects:
- Extract response construction for (p)sububscribe, (p)unsubscribe
  into private method
- Use UnsubscribeAll, PunsubscribeAll in cleanup

* Fix linting errors

* Replace ternary with explicit if/else

* Simplify setup for (p)unsubscribe tests
2022-06-08 05:09:10 +03:00
Roman Gershman b855b50fb7 fix(lua): use broadwell architecture when compiling lua for x86_64. 2022-06-08 01:02:33 +03:00
Roman Gershman 1c51a65d25
feat(docker): try increasing a memlock limit in the container (#114)
feat(docker): try increasing a memlock limit in DF container.

This should solve the awkward command overrides in K8S scripts.
Fixes #57.
2022-06-07 14:33:55 +03:00
Roman Gershman 62b6ae48c0 Fix prerelease docker pipeline 2022-06-06 18:32:19 +03:00
Ali-Akber Saifee 2caa2b0df2
Update response to HELLO command (#102)
* Update response to HELLO command

Update response from HELLO command to match the api of redis.

Notes:
- For any protocol version other than 2 an error matching what redis
  returns for !2,3 is returned

* Add test for redis HELLO command

* Extract version building to GetVersion function

* Update contributors file

* Add HELLO command to README readiness matrix

* Revert "Add HELLO command to README readiness matrix"

This reverts commit 069f590ad0.

* Add HELLO command to api_status document
2022-06-06 18:17:40 +03:00
Roman Gershman 1fe3862e57 Update docker pipeline to support pre-releases as well 2022-06-06 16:47:59 +03:00
Philipp B 8297c4635d
Helm chart updates (v0.1.1, init command override, TLS configuration, CRs for ServiceMonitor and PrometheusRule objects) (#105)
* helm-chart: add serviceMonitor

* helm-chart: implement tls

* helm-chart: add prometheusrule

* helm-chart: add parameter to override the container's command

Sample values:

    command:
      cmd:
        - '/bin/sh'
        - '-c'
        - 'ulimit -l unlimited && dragonfly'

    securityContext:
      privileged: true

* helm-chart: bump chart appVersion to v0.1.1 and remove hardcoded latest image.tag
2022-06-06 16:26:00 +03:00
Roman Gershman ef20178b76
Factor out theAPI readiness matrix into a separate doc (#103)
Factor out API readiness matrix into a separate doc
2022-06-06 15:50:41 +03:00
odedponcz c070e8a96f
Add FAQ (#64)
* add FAQ file
2022-06-06 11:28:42 +03:00
Zacharya 5ff2a43a1f
Add Promehtues metrics for Grafana close #61 (#85)
* Add Promehtues metrics for Grafana close #61

* remove debug code

* Add doc and Grafana dashboard

* PR comments fixes

* Remove macros
2022-06-05 21:47:56 +03:00
Ryan Russell 4a8644559a
Fix Various Naming Conventions around `Subscriber` (#87)
* Fix `SubscribeMap`

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* Fix `subscriber_arr`

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* Fix `CopySubscribers`

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* Fix `SubscriberMessagesLen`

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* Fix remaining `subscribe` variants

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* Add Ryan Russell to Contributors

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-06-04 05:07:13 +03:00
Roman Gershman e806e6ccd8 Add unstripped binary to allow optional profiling 2022-06-03 07:49:21 +03:00
Roman Gershman 89baa5bfa0
Fix bugs related to concurrency when saving multiple databases under … (#82)
Fix bugs related to concurrency when saving multiple databases under write load
2022-06-03 00:52:38 +03:00
Roman Gershman ec9754150f Implement PSUBSCRIBE/PUNSUBSCRIBE commands.
Add minimal tests.
2022-06-02 22:45:56 +03:00
TAKAHASHI Shuuji 8570a12d81
docs: Fix a variable name for bucket in Dashtable section (#80)
In the the `dashtable.svg` diagram, the last segment is denoted by `N` while `K` is used for buckets (like bucket1, bucket2, ..., bucketK).
2022-06-02 14:02:18 +03:00
Philipp B 7ff6e47332
Initial commit for helm chart (#57) (#79)
* Initial commit for helm chart

Includes support for
- persistence for /data (if enabled, a Statefulset is deployed)
- mounting extra volumes (for logs, debugging, whatever)
- initContainers (adjusting the pod's ulimit, possibly)
- passing extra arguments to the dragonfly binary through extraArgs

Squashed commit of the following:

caa91a0 helm-chart: initial commit
7ec9ea5 helm-chart: add extraArgs and update README/TODO
e1da96c helm-chart: add StatefulSet for persistence and update chart README
4d81f8a helm-chart: add liveness+readinessProbe
cdf70b3 helm-chart: add initContainers, extraVolumes and extraVolumeMounts
aed0ef1 helm-chart: update README

* add CONTRIBUTORS
2022-06-02 14:01:26 +03:00
Roman Gershman d3f598eb88 More printings in rdb_test in order to catch the snapshotting bug 2022-06-02 12:32:10 +03:00
Ryan Russell a049128ab6
Improving Readability r3 (#75)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-06-01 19:31:36 +03:00
Roman Gershman d5f2c23922
Fixes #66. (#70)
* Fixes #66.

1. Introduce `hz` flag to control the frequency of periodically running tasks.
2. Update helio dependency.

* Fix CI caching for PRs.
2022-06-01 13:19:41 +03:00
quiver 33af405434
Update build steps for Ubuntu (#72)
cmake and c++ compilers are required to build from source
2022-06-01 13:13:17 +03:00
Zacharya 1758503e97
Add basic Prometheus support and metrics (#67)
* Add basic Prometheus support and metrics

* Remove human metrics

* Pull AppendMetric outside

* Fix typo
2022-06-01 12:34:37 +03:00
Roman Gershman 398b2b00bf Fix a crash in debug mode when working with huge strings.
Seems like a mimalloc bug.
Opened https://github.com/microsoft/mimalloc/issues/587 for this.
2022-06-01 09:12:02 +03:00
Ryan Russell eae5c08e76
Improve Comment Readability (#69)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-05-31 23:07:00 +03:00
Roman Gershman f641ba83b9 Add a debug assertion in order to chaise a bug when serialization finishes 2022-05-31 17:56:31 +03:00
Olle Jonsson c7534dfb6a
CI: Use v3 of Actions "upload-artifacts", "checkout" and "cache" (#62)
CI: Use v3 of GitHub Actions actions

Affects "checkout", "upload-artifacts", and "cache".
2022-05-31 17:42:05 +03:00
Olle Jonsson 6c08d848ad
docs: Repair Markdown markup (#63)
Some Markdown was not rendered, due to being mixed with regular HTML tags. Now separated.
2022-05-31 17:22:25 +03:00
Roman Gershman dbc407b9ec Add romanger's twitter handle. We will post about DragonflyDb from his personal twitter. 2022-05-31 14:27:14 +03:00
Philipp B 8aa8f2b0b0
Update docker-release workflow to tag image with release version (#60) 2022-05-31 14:04:08 +03:00
Roman Gershman f7124f943e
Update dragonfly blurb (#48) 2022-05-31 10:08:21 +03:00
Ryan Russell 9e258de236
Improve readability (#52)
Signed-off-by: Ryan Russell <ryanrussell@users.noreply.github.com>
2022-05-30 21:45:45 +03:00
James Herdman 2fcee28d92
Fix a spelling error (#50) 2022-05-30 21:18:45 +03:00
Roman Gershman f23c552bd3 Fix docker pipeline 2022-05-30 15:51:48 +03:00
Zacharya 4ca9dc71b3
Fix info command to use git version (#49) 2022-05-30 15:17:52 +03:00
Roman Gershman c488baec3c Add a DCHECK to catch a bug 2022-05-30 14:53:42 +03:00
Roman Gershman 29575d00ee Fix aarch64 pipeline and update docker path in README 2022-05-30 12:30:00 +03:00
Roman Gershman e239fc68b4 Added glue code to expose various http handlers from dragonfly 2022-05-30 11:53:39 +03:00
Roman Gershman 5af2fe0145 docker-release pipeline now uses release assets for building dockers 2022-05-30 11:24:56 +03:00
Roman Gershman 4d276c7ef0 Integrate version metadata into build. Fixes #46. 2022-05-30 08:49:19 +03:00
Roman Gershman bb7b205bff Switch to using absl flags 2022-05-30 06:45:09 +03:00
Roman Gershman 6dd1552506
Some clean-ups in rdb_save code. Add verbosity printings for CI build (#47) 2022-05-29 20:23:05 +03:00
odedponcz e5107c2047
Add license (#45)
* Add BSL license
* set change date

Co-authored-by: Roman Gershman <romange@gmail.com>
2022-05-29 18:24:29 +03:00
Roman Gershman 776276ccd4
Add more benchmarks to README (#44) 2022-05-29 17:47:34 +03:00
Roman Gershman ccf051742d Execute commands from the replicated log 2022-05-28 23:20:52 +03:00
Roman Gershman 1490eb5c3c Implement parsing of replication stream from redis 2022-05-28 21:24:07 +03:00
Roman Gershman 46929e9c52
Update README: add benchmarks (#43) 2022-05-27 16:15:12 +03:00
Roman Gershman 114e8bec5d Fixes #41.
1. Found dangling transaction pointers that where left in the watch queue. Fix the state machine there.
2. Improved transaction code a bit, merged duplicated code into RunInShard function, got rid of RunNoop.
3. Improved BPopper::Run flow.
4. Added 'DEBUG WATCH' command. Also 'DEBUG OBJECT' now returns shard id and the lock status of the object.
2022-05-27 12:20:01 +03:00
Roman Gershman 3a38576bbb Introduce regression tests 2022-05-27 00:26:51 +03:00
Roman Gershman 4a2e84b975 In order to support Debian/Bullseye, we know require minimal kernel version - 5.10 2022-05-26 20:04:33 +03:00