Commit Graph

483 Commits

Author SHA1 Message Date
Ryan Russell d0af04d427
docs(PR Template): Add PR Template Enforcing Conventional Commits #107 (#137)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-06-12 10:40:17 +03:00
Ryan Russell a29b66068c
feat(community): Add Conventional Commits; Code of Conduct #107 (#133)
* docs(community): Add Code of Conduct #107

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

* feat(pre-commit): Add Conventional Commits `commit-msg` hook #107

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

* bug(pre-commit): Fix conventional commits entry to include `contrib/scripts` #107

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-06-12 08:21:40 +03:00
Ryan Russell ff632b1c4b
feat(docker-compose): Add `docker-compose.yml` #100 (#130)
* feat(docker-compose): Add `docker-compose.yml` #100

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

* docs(build-from-source): Include build from source

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-06-10 16:30:05 +03:00
Ali-Akber Saifee e82a378354
Reduce scope of HELLO implementation (#129)
* Reduce scope of HELLO implementation

Only accept protover=2 as a valid argument as that is
the only thing that is supported at the moment. For all
other arguments degrade to 'unknown command'

The previous implementation creates issues for clients
expecting the presence of the HELLO command to also signal
the presence of RESP3 (as technically the command appeared in
redis at the same time as support for RESP3).

It also did not raise any errors when unsupported (or invalid)
arguments were passed to the command (such as AUTH, SETNAME)

* Fix error in test

* Remove unnecessary context in assertion

* Fix construction of unknown command error string

* Fix casing of error string
2022-06-09 21:53:30 +03:00
Roman Gershman a9c0fa8ea4 Implement basic XADD, XRANGE, XLEN commands.
Covers most funvtionality for #59.
2022-06-08 22:04:49 +03:00
Roman Gershman 819b2f0716 Introduce the initial skeleton code for stream routines
1. Take redis stream code from Redis 7.0 branch (d2b5a579d).
2. Introduce stream_family class and test.
2022-06-08 20:28:52 +03:00
Roman Gershman e2c52c47a5 chore(actions): Minor improvements to the release scripts. 2022-06-08 14:46:46 +03:00
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