All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project will adhere to Semantic Versioning starting v22.0.0
.
v22.0.2 - 2022-12-16
- ARM Support - Dgraph now supports ARM64 Architecture for development (dgraph-io#8543 dgraph-io#8520 dgraph-io#8503 dgraph-io#8436 dgraph-io#8405 dgraph-io#8395)
- Additional logging and trace tags for debugging (dgraph-io#8490)
-
EDgraph
- fix(ACL): Prevents permissions overrride and merges acl cache to persist permissions across different namespaces (dgraph-io#8506)
-
Core Dgraph
- Fix(badger): Upgrade badger version to fix manifest corruption (dgraph-io#8365)
- fix(pagination): Fix after for regexp, match functions (dgraph-io#8471)
- fix(query): Do not execute filters if there are no source uids(dgraph-io#8452)
- fix(admin): make config changes to pass through gog middlewares (dgraph-io#8442)
- fix(sort): Only filter out nodes with positive offsets (dgraph-io#8441)
- fix(fragment): merge the nested fragments fields (dgraph-io#8435)
- Fix(lsbackup): Fix profiler in lsBackup (dgraph-io#8432)
- fix(DQL): optimize query for has function with offset (dgraph-io#8431)
-
GraphQL
- Fix(GraphQL): Make mutation rewriting tests more robust (dgraph-io#8449)
-
Security
-
CVE Fixes (35 total)
- CVE-2013-4235
- CVE-2016-20013
- CVE-2016-2781
- CVE-2017-11164
- CVE-2018-16886
- CVE-2019-0205
- CVE-2019-0210
- CVE-2019-11254
- CVE-2019-16167
- CVE-2020-29652
- CVE-2021-31525
- CVE-2021-33194
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-38561
- CVE-2021-39537
- CVE-2021-43565
- CVE-2021-44716
- CVE-2021-44758
- CVE-2022-21698
- CVE-2022-27191
- CVE-2022-27664
- CVE-2022-29458
- CVE-2022-29526
- CVE-2022-3219
- CVE-2022-32221
- CVE-2022-3437
- CVE-2022-35737
- CVE-2022-3715
- CVE-2022-3821
- CVE-2022-39377
- CVE-2022-41916
- CVE-2022-42800
- CVE-2022-42898
- CVE-2022-44640
-
-
CI Enhancements
- Added more unit tests (dgraph-io#8470 dgraph-io#8489 dgraph-io#8479 dgraph-io#8488 dgraph-io#8433)
- Coveralls on CI is enhanced to measure code coverage for integration tests (dgraph-io#8494)
- LDBC Benchmarking in enabled on CI
-
CD Enhancements
- Enhanced our CD Pipeline to support ARM64 binaries and docker-images (dgraph-io#8520)
- Enhanced dgraph-lambda to support arm64 (dgraph-io/dgraph-lambda#39 dgraph-io/dgraph-lambda#38 dgraph-io/dgraph-lambda#37)
- Enhanced badger to support arm64 (dgraph-io/badger#1838)
v22.0.1 - 2022-11-10
- CD Release Pipeline
- Badger Binary fetch steps added to the release CD pipeline (dgraph-io#8425)
- Corresponding Badger artifacts will be fetched & uploaded from v22.0.1 onwards
v22.0.0 - 2022-10-21
Note
v22.0.0
release is based ofv21.03.2
release. https://discuss.dgraph.io/t/dgraph-v22-0-0-rc1-20221003-release-candidate/17839
Warning We are discontinuing support for
v21.12.0
. This will be a breaking change for anyone moving fromv21.12.0
tov.22.0.0
.
- GraphQL
- fix(GraphQL): optimize eq filter queries (dgraph-io#7895)
- fix(GraphQL): add validation of null values with correct order of graphql rule validation (dgraph-io#8333)
- fix(GraphQL) fix auth query rewriting with ID filter (dgraph-io#8157)
- EDgraph
- fix(query): Prevent multiple entries for same predicate in mutations (dgraph-io#8332)
- Posting
- fix(rollups): Fix splits in roll-up (dgraph-io#8297)
- Security
-
CVE Fixes (417 total)
- CVE-2019-0210
- CVE-2019-0205
- CVE-2021-43565
- CVE-2022-27664
- CVE-2021-38561
- CVE-2021-44716
- CVE-2021-33194
- CVE-2022-27191
- CVE-2020-29652
- CVE-2018-16886
- CVE-2022-21698
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-3116
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2022-37434
- CVE-2020-16156
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2021-37750
- CVE-2021-36222
- CVE-2020-35525
- CVE-2020-35527
- CVE-2021-20223
- CVE-2020-9794
- CVE-2022-29526
- CVE-2021-31525
- CVE-2019-11254
- CVE-2022-3219
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2017-11164
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-43618
- CVE-2016-20013
- CVE-2016-2781
- CVE-2022-1587
- CVE-2022-1586
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-43618
- CVE-2016-20013
- CVE-2022-3219
- CVE-2016-2781
- CVE-2022-1587
- CVE-2022-1586
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2017-11164
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-43618
- CVE-2016-20013
- CVE-2022-3219
- CVE-2016-2781
- CVE-2021-3671
- CVE-2022-3219
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2021-3671
- CVE-2022-3219
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2022-3219
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2019-16167
- CVE-2013-4235
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2013-4235
- CVE-2021-3671
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2017-11164
- CVE-2022-1587
- CVE-2022-1586
- CVE-2022-29458
- CVE-2021-39537
- CVE-2022-29458
- CVE-2021-39537
- CVE-2021-3671
- CVE-2021-43618
- CVE-2016-20013
- CVE-2021-3671
- CVE-2016-2781
- CVE-2021-3671
- CVE-2022-1587
- CVE-2022-1586
- CVE-2021-3671
- CVE-2020-9991
- CVE-2020-9849
-
fix(sec): fixing HIGH CVEs (dgraph-io#8289)
-
fix(sec): CVE High Vulnerability (dgraph-io#8277)
-
fix(sec): Fixing CVE-2021-31525 (dgraph-io#8274)
-
fix(sec): CVE-2019-11254 (dgraph-io#8270)
-
- CI Test Infrastructure
- Configured to run with Github Actions
- Stability Improvements to test harness
- Enabled Unit/Integration Tests
- Enabled Load Tests
- Enabled Linters
- Enabled Code Coverage
- CI Security
- Configured to run with Github Actions
- Enabled Trivy Scans
- Enabled dependabot scans
- Configured to run with Github Actions
- CD Release Pipeline
- Automated Release Pipeline to facilitate building of dgraph-binary & corresponding docker-images. The built artifacts are published to repositories through the same pipeline.
- Github Issues Enabled
21.03.2 - 2021-08-26
-
GraphQL
- Handle extend keyword for Queries and Mutations (#7923)
-
Core Dgraph
- fix(Raft): Detect network partition when streaming (#7908)
- fix(Raft): Reconnect via a redial in case of disconnection. (#7921)
- fix(conn): JoinCluster loop should use latest conn (#7952)
- fix(pool): use write lock when getting health info (#7967)
- fix(acl): The Acl cache should be updated on restart and restore. (#7964)
- fix(acl): filter out the results based on type (#7981)
- fix(backup): Fix full backup request (#7934)
- fix(live): quote the xid when doing upsert (#7999)
- fix(export): Write temporary files for export to the t directory. (#7998)
- protobuf: upgrade golang/protobuf library v1.4.1 -> v1.5.2 (#7949)
- chore(raft): Log packets message less frequently. (#7913)
- feat(acl): allow access to all the predicates using wildcard. (#7993)
- feat(Multi-tenancy): Add namespaces field to state. (#7936)
21.03.1 - 2021-06-16
-
GraphQL
- fix(GraphQL): fix @cascade with Pagination for @auth queries (#7695)
- Fix(GraphQL): Fix GraphQL encoding in case of empty list (#7726) (#7730)
- Fix(GraphQL): Add filter in DQL query in case of reverse predicate (#7728) (#7733)
- Fix(graphql): Fix error message of lambdaOnMutate directive (#7751) (#7754)
-
Core Dgraph
- fix(vault): Hide ACL flags when not required (#7701)
- fix(Chunker): don't delete node with empty facet in mutation (#7737) (#7745)
- fix(bulk): throw the error instead of crashing (#7722) (#7749)
- fix(raftwal): take snapshot after restore (#7719) (#7750)
- fix(bulk): upsert guardian/groot for all existing namespaces (#7759) (#7769)
- fix(txn): ensure that txn hash is set (#7782) (#7784)
- bug fix to permit audit streaming to stdout writer(#7803) (#7804)
- fix(drop): attach galaxy namespace to drop attr done on 20.11 backup (#7827)
- fix: Prevent proposal from being dropped accidentally (#7741) (#7811)
- fix(schema-update): Start opIndexing only when index creation is required. (#7845) (#7847)
- fix(export): Fix facet export of reference type postings to JSON format (#7744) (#7756)
- fix(lease): don't do rate limiting when not limit is not specified (#7787)
- fix(lease): prevent ID lease overflow (#7802)
- fix(auth): preserve the status code while returning error (#7832) (#7834)
- fix(ee): GetKeys should return an error (#7713) (#7797)
- fix(admin): remove exportedFiles field (#7835) (#7836)
- fix(restore): append galaxy namespace to type name (#7881)
- fix(DQL): revert changes related to cascade pagination with sort (#7885) (#7888)
- fix(metrics): Expose dgraph_num_backups_failed_total metric view. (#7900) (#7904)
- opt(GraphQL): filter existence queries on GraphQL side instead of using @filter(type) (#7757) (#7760)
- feat(cdc): Add support for SCRAM SASL mechanism (#7765) (#7767)
- Add asynchronous task API (#7781)
- make exports synchronous again (#7877)
- feat(schema): do schema versioning and make backup non-blocking for i… (#7856) (#7873)
21.03.0 - 2021-04-07
- [BREAKING] Feat(flags): expand badger to accept all valid options (#7677)
- [BREAKING] Feat(Dgraph): Read-Only replicas (#7272)
- [BREAKING] Consolidate multiple flags into a few SuPerflags (#7436) (#7337) (#7560) (#7652) (#7675)
- [BREAKING] Feat(zero): Make zero lease out namespace IDs (#7341)
- [BREAKING] Fix(commit): make txn context more robust (#7659)
- [BREAKING] Fix(Query): Return error for illegal math operations. (#7631)
- [BREAKING] Rename Badger metrics. (#7507)
- [BREAKING] Fix(Backups): new badger Superflag, NumGoroutines option solves OOM crashes (#7387)
- [BREAKING] Remove restore tracker as its not necessary (#7148)
- [BREAKING] Chore(GraphQL): Remove
dgraph.graphql.p_sha256hash
predicate and merge it intodgraph.graphql.p_query
(#7451) - [BREAKING] Introducing Multi-Tenancy in dgraph (#7293) (#7400) (#7397) (#7399) (#7377) (#7414) (#7418)
-
GraphQL
- Feat(GraphQL): Zero HTTP endpoints are now available at GraphQL admin (GraphQL-1118) (#6649) (#7670)
- Feat(GraphQL): Webhooks on add/update/delete mutations (GraphQL-1045) (#7494) (#7616)
- Feat(GraphQL): Allow Multiple JWKUrls for auth. (#7528) (#7581)
- Feat(GraphQL): allow string --> Int64 hardcoded coercing (#7584)
- Feat(Apollo): Add support for
@provides
and@requires
directive. (#7503) - Feat(GraphQL): Handle upsert with multiple XIDs in case one of the XIDs does not exist (#7472)
- Feat(GraphQL): Delete redundant reference to inverse object (#7469)
- Feat(GraphQL): upgarde GraphQL-transport-ws module (#7441)
- Feat(GraphQL): This PR allow multiple
@id
fields in a type. (#7235) - Feat(GraphQL): Add support for GraphQL Upsert Mutations (#7433)
- Feat(GraphQL): This PR adds subscriptions to custom DQL. (#7385)
- Feat(GraphQL): Make XID node referencing invariant of order in which XIDs are referenced in Mutation Rewriting (#7448)
- Feat(GraphQL): Dgraph.Authorization should with irrespective of number of spaces after # (#7410)
- Feat(GraphQL): adding auth token support for regexp, in and arrays (#7039)
- Feat(GraphQL): Extend Support of IN filter to all the scalar data types (#7340)
- Feat(GraphQL): Add
@include
and@skip
to the Directives (#7314) - Feat(GraphQL): add support for has filter with list of arguments. (#7406)
- Feat(GraphQL): Add support for has filter on list of fields. (#7363)
- Feat(GraphQL): Allow standard claims into auth variables (#7381)
- Perf(GraphQL): Generate GraphQL query response by optimized JSON encoding (GraphQL-730) (#7371)
- Feat(GraphQL): Extend Support For Apollo Federation (#7275)
- Feat(GraphQL): Support using custom DQL with
@groupby
(#7476) - Feat(GraphQL): Add support for passing OAuth Bearer token as authorization JWT (#7490)
-
Core Dgraph
- Feat(query): Add mechanism to have a limit on number of pending queries (#7603)
- Perf(bulk): Reuse allocator (#7360)
- Perf(compression): Use gzip with BestSpeed in export and backup (#7643) (#7683)
- Feat(flags): Add query timeout as a limit config (#7599)
- Opt(reindex): do not try building indices when inserting a new predicate (#7109)
- Perf(txn): de-duplicate the context keys and predicates (#7478)
- Feat(flags): use Vault for ACL secrets (#7492)
- Feat(bulk): Add /jemalloc HTTP endpoint. (#7165)
- Feat(metrics): Add Dgraph txn metrics (commits and discards). (#7339)
- Feat(Bulk Loader + Live Loader): Supporting Loading files via s3/minio (#7359)
- Feat(metrics): Add Raft leadership metrics. (#7338)
- Use Badger's value log threshold of 1MB (#7415)
- Feat(Monitoring): Adding Monitoring for Disk Space and Number of Backups (#7404)
- Perf: simple simdjson solution with 30% speed increase (#7316)
-
Enterprise Features
- Perf(Backup): Improve backup Performance (#7601)
- Make backup API asynchronous
- Perf(backups): Reduce latency of list backups (#7435)
- Feat(acl): allow setting a password at the time of creation of namespace (#7446)
- Feat(enterprise): audit logs for alpha and zero (#7295)
- Feat(enterpise): Change data capture (CDC) integration with kafka (#7395)
- Perf(dgraph) - Use badger sinceTs in backups (#7392)
- Perf(backup): Reorganize the output of lsbackup command (#7354)
-
GraphQL
- Fix(GraphQL): Fix Execution Trace for Add and Update Mutations (#7656)
- Fix(GraphQL): Add error handling for unrecognized args to generate directive. (#7612)
- Fix(GraphQL): Fix panic when no schema exists for a new namespace (#7630)
- Fix(GraphQL): Fixed output coercing for admin fields. (#7617)
- Fix(GraphQL): Fix lambda querying a lambda field in case of no data. (#7610)
- Fix(GraphQL): Undo the breaking change and tag it as deprecated. (#7602)
- Fix(GraphQL): Add extra checks for deleting UpdateTypeInput (#7595)
- Fix(persistent): make persistent query namespace aware (#7570)
- Fix(GraphQL): remove support of
@id
directive on Float (#7583) - Fix(GraphQL): Fix mutation with Int Xid variables. (#7565) (#7588)
- Fix(GraphQL): Fix error message when dgraph and GraphQL schema differ.
- Fix(GraphQL): Fix custom(dql: ...) with
__typename
(GraphQL-1098) (#7569) - Fix(GraphQL): Change variable name generation for interface auth rules (#7559)
- Fix(GraphQL): Apollo federation now works with lambda (GraphQL-1084) (#7558)
- Fix(GraphQL): Fix empty remove in update mutation patch, that remove all the data for nodes in filter. (#7563)
- Fix(GraphQL): Fix order of entities query result (#7542)
- Fix(GraphQL): Change variable name generation from
Type<Num>
toType_<Num>
(#7556) - Fix(GraphQL): Fix duplicate xid error for multiple xid fields. (#7546)
- Fix(GraphQL): Fix query rewriting for multiple order on nested field. (#7523)
- Fix(GraphQL) Fix empty
type Query
with single extended type definition in the schema. (#7517) - Fix(GraphQL): Added support for parameterized cascade with variables. (#7477)
- Fix(GraphQL): Fix fragment expansion in auth queries (GraphQL-1030) (#7467)
- Fix(GraphQL): Refactor Mutation Rewriter for Add and Update Mutations (#7409)
- Fix(GraphQL): Fix
@auth
rules evaluation in case of null variables in custom claims. (#7380) - Fix(GraphQL): Fix interface query with auth rules. (#7401)
- Fix(GraphQL): Added error for case when multiple filter functions are used in filter. (#7368)
- Fix(subscriptions): Fix subscription to use the kv with the max version (#7349)
- Fix(GraphQL):This PR Fix a panic when we pass a single ID as a integer and expected type is
[ID]
.We now coerce that to type array of string. (#7325) - Fix(GraphQL): This PR Fix multi cors and multi schema nodes issue by selecting one of the latest added nodes, and add dgraph type to cors. (#7270)
- Fix(GraphQL): This PR allow to use
__typename
in mutation. (#7285) - Fix(GraphQL): Fix auth-token propagation for HTTP endpoints resolved through GraphQL (GraphQL-946) (#7245)
- Fix(GraphQL): This PR addd input coercion from single object to list and Fix panic when we pass single ID in filter as a string. (#7133)
- Fix(GraphQL): adding support for
@id
with type other than strings (#7019) - Fix(GraphQL): Fix panic caused by incorrect input coercion of scalar to list (#7405)
-
Core Dgraph
- Fix(flag): Fix bulk loader flag and remove flag parsing from critical path (#7679)
- Fix(query): Fix pagination with match functions (#7668)
- Fix(postingList): Acquire lock before reading the cached posting list (#7632)
- Fix(zero): add a ratelimiter to limit the uid lease per namespace (#7568)
- Fixing type inversion in ludicrous mode (#7614)
- Fix(/commit): protect the commit endpoint via acl (#7608)
- Fix(login): Fix login based on refresh token logic (#7637)
- Fix(Query): Fix cascade pagination with 0 offset. (#7636)
- Fix(telemetry): Track enterprise Feature usage (#7495)
- Fix(dql): Fix error message in case of wrong argument to val() (#7543)
- Fix(export): Fix namespace parameter in export (#7524)
- Fix(live): Fix usage of force-namespace parameter in export (#7526)
- Fix(Configs): Allow hierarchical notation in JSON/YAML configs (#7498)
- Fix upsert mutations (#7515)
- Fix(admin-endpoints): Error out if the request is rejected by the server (#7511)
- Fix(Dgraph): Throttle number of files to open while schema update (#7480)
- Fix(metrics): Expose Badger LSM and vlog size bytes. (#7488)
- Fix(schema): log error instead of panic if schema not found for predicate (#7502)
- Fix(moveTablet): make move tablet namespace aware (#7468)
- Fix(dgraph): Do not return reverse edges from expandEdges (#7461)
- Fix(Query): Fix cascade with pagination (#7440)
- Fix(Mutation): Deeply-nested uid facets (#7455)
- Fix(live): Fix live loader to load with force namespace (#7445)
- Fix(sort): Fix multi-sort with nils (#7432)
- Fix(GC): Reduce DiscardRatio from 0.9 to 0.7 (#7412)
- Fix(jsonpb): use gogo/jsonpb for unmarshalling string (#7382)
- Fix: Calling Discard only adds to
txn_discards
metric, nottxn_aborts
. (#7365) - Fix(Dgraph): check for deleteBelowTs in pIterator.valid (#7288)
- Fix(dgraph): Add X-Dgraph-AuthToken to list of access control allowed headers
- Fix(sort): Make sort consistent for indexed and without indexed predicates (#7241)
- Fix(ludicrous): Fix logical race in concurrent execution of mutations (#7269)
- Fix(restore): Handle MaxUid=0 appropriately (#7258)
- Fix(indexing): use encrypted tmpDBs for index building if encryption is enabled (#6828)
- Fix(bulk): save schemaMap after map phase (#7188)
- Fix(DQL): Fix Aggregate Functions on empty data (#7176)
- Fixing unique proposal key error (#7218)
- Fix(Chunker): JSON parsing Performance (#7171)
- Fix(bulk): Fix memory held by b+ tree in reduce phase (#7161)
- Fix(bulk): Fixing bulk loader when encryption + mtls is enabled (#7154)
-
Enterprise Features
- Fix(restore): append the object path preFix while reading backup (#7686)
- Fix restoring from old version for type (#7456)
- Fix(backup): Fix Perf issues with full backups (#7434)
- Fix(export-backup): Fix memory leak in backup export (#7452)
- Fix(ACL): use acl for export, add GoG admin resolvers (#7420)
- Fix(restore): reset acl accounts once restore is done if necessary (#7202)
- Fix(restore): multiple restore requests should be rejected and proposals should not be submitted (#7118)
20.07.1 - 2020-09-17
- GraphQL
- Adds auth for subscriptions. (#6165)
- Add --cache_mb and --cache_percentage flags. (#6286)
- Add flags to set table and vlog loading mode for zero. (#6342)
- Add flag to set up compression in zero. (#6355)
- GraphQL
- Multiple queries in a single request should not share the same variables. (#6158)
- Fixes panic in update mutation without set & remove. (#6160)
- Fixes wrong query parameter value for custom field URL. (#6161)
- Fix auth rewriting for nested queries when RBAC rule is true. (#6167)
- Disallow Subscription typename. (#6173)
- Panic fix when subscription expiry is not present in jwt. (#6175)
- Fix getType queries when id was used as a name for types other than ID. (#6180)
- Don't reserve certain queries/mutations/inputs when a type is remote. (#6201)
- Linking of xids for deep mutations. (#6203)
- Prevent empty values in fields having
id
directive. (#6196) - Fixes unexpected fragment behaviour. (#6274)
- Incorrect generatedSchema in update GQLSchema. (#6354)
- Fix out of order issues with split keys in bulk loader. (#6124)
- Rollup a batch if more than 2 seconds elapsed since last batch. (#6137)
- Refactor: Simplify how list splits are tracked. (#6070)
- Fix: Don't allow idx flag to be set to 0 on dgraph zero. (#6192)
- Fix error message for idx = 0 for dgraph zero. (#6199)
- Stop forcing RAM mode for the write-ahead log. (#6259)
- Fix panicwrap parent check. (#6299)
- Sort manifests by BackupNum in file handler. (#6279)
- Fixes queries which use variable at the top level. (#6290)
- Return error on closed DB. (#6320)
- Optimize splits by doing binary search. Clear the pack from the main list. (#6332)
- Proto fix needed for PR #6331. (#6346)
- Sentry nil pointer check. (#6374)
- Don't store start_ts in postings. (#6213)
- Use z.Closer instead of y.Closer. (#6399)
- Make Alpha Shutdown Again. (#6402)
- Force exit if CTRL-C is caught before initialization. (#6407)
- Update advanced-queries.md.
- Batch list in bulk loader to avoid panic. (#6446)
- Enterprise features
20.03.5 - 2020-09-17
- Add --cache_mb and --cache_percentage flags. (#6287)
- Add flag to set up compression in zero. (#6356)
- Add flags to set table and vlog loading mode for zero. (#6343)
- GraphQL
- Prevent empty values in fields having
id
directive. (#6197)
- Prevent empty values in fields having
- Fix out of order issues with split keys in bulk loader. (#6125)
- Rollup a batch if more than 2 seconds elapsed since last batch. (#6138)
- Simplify how list splits are tracked. (#6071)
- Perform rollups more aggresively. (#6147)
- Don't allow idx flag to be set to 0 on dgraph zero. (#6156)
- Stop forcing RAM mode for the write-ahead log. (#6260)
- Fix panicwrap parent check. (#6300)
- Sort manifests by backup number. (#6280)
- Don't store start_ts in postings. (#6214)
- Update reverse index when updating single UID predicates. (#6006)
- Return error on closed DB. (#6321)
- Optimize splits by doing binary search. Clear the pack from the main list. (#6333)
- Sentry nil pointer check. (#6375)
- Use z.Closer instead of y.Closer. (#6398)
- Make Alpha Shutdown Again. (#6403)
- Force exit if CTRL-C is caught before initialization. (#6409)
- Batch list in bulk loader to avoid panic. (#6445)
- Enterprise features
1.2.7 - 2020-09-21
- Add --cache_mb and --cache_percentage flags. (#6288)
- Add flag to set up compression in zero. (#6357)
- Add flags to set table and vlog loading mode for zero. (#6344)
- Don't allow idx flag to be set to 0 on dgraph zero. (#6193)
- Stop forcing RAM mode for the write-ahead log. (#6261)
- Return error on closed DB. (#6319)
- Don't store start_ts in postings. (#6212)
- Optimize splits by doing binary search. Clear the pack from the main list. (#6334)
- Add a lock to backups to process one request at a time. (#6341)
- Use z.Closer instead of y.Closer' (#6396)
- Force exit if CTRL-C is caught before initialization. (#6408)
- Fix(Alpha): MASA: Make Alpha Shutdown Again. (#6406)
- Enterprise features
20.07.0 - 2020-07-28
- GraphQL
- Return error list while validating GraphQL schema. (#5576)
- Send CID for sentry events. (#5625)
- Alpha: Enable bloom filter caching (#5552)
- Add support for multiple uids in uid_in function (#5292)
- Tag sentry events with additional version details. (#5726)
- Sentry opt out banner. (#5727)
- Replace shutdownCh and wait groups to a y.Closer for shutting down Alpha. (#5560)
- Update badger to commit e7b6e76f96e8. (#5537)
- Update Badger (#5661, #6034)
- Fix assert in background compression and encryption. (dgraph-io/badger#1366)
- GC: Consider size of value while rewriting (dgraph-io/badger#1357)
- Restore: Account for value size as well (dgraph-io/badger#1358)
- Tests: Do not leave behind state goroutines (dgraph-io/badger#1349)
- Support disabling conflict detection (dgraph-io/badger#1344)
- Compaction: Expired keys and delete markers are never purged (dgraph-io/badger#1354)
- Fix build on golang tip (dgraph-io/badger#1355)
- StreamWriter: Close head writer (dgraph-io/badger#1347)
- Iterator: Always add key to txn.reads (dgraph-io/badger#1328)
- Add immudb to the project list (dgraph-io/badger#1341)
- DefaultOptions: Set KeepL0InMemory to false (dgraph-io/badger#1345)
- Enterprise features
- /health endpoint now shows Enterprise Features available. Fixes #5234. (#5293)
- GraphQL Changes for /health endpoint's Enterprise features info. Fixes #5234. (#5308)
- Use encryption in temp badger, fix compilation on 32-bit. (#4963)
- Only process restore request in the current alpha if it's the leader. (#5657)
- Vault: Support kv v1 and decode base64 key. (#5725)
- Breaking changes
- GraphQL
- Add Graphql-TouchedUids header in HTTP response. (#5572)
- Introduce
@cascade
in GraphQL. Fixes #4789. (#5511) - Add authentication feature and http admin endpoints. Fixes #4758. (#5162)
- Support existing gqlschema nodes without xid. (#5457)
- Add custom logic feature. (#5004)
- Add extensions to query response. (#5157)
- Allow query of deleted nodes. (#5949)
- Allow more control over custom logic header names. (#5809)
- Adds Apollo tracing to GraphQL extensions. (#5855)
- Turn on subscriptions and adds directive to control subscription generation. (#5856)
- Add introspection headers to custom logic. (#5858)
- GraphQL health now reported by /probe/graphql. (#5875)
- Validate audience in authorization JWT and change
Dgraph.Authorization
format. (#5980)
- Upgrade tool for 20.07. (#5830)
- Async restore operations. (#5704)
- Add LogRequest variable to GraphQL config input. (#5197)
- Allow backup ID to be passed to restore endpoint. (#5208)
- Added support for application/graphQL to graphQL endpoints. (#5125)
- Add support for xidmap in bulkloader. Fixes #4917. (#5090)
- Add GraphQL admin endpoint to list backups. (#5307)
- Enterprise features
- GraphQL schema get/update, Dgraph schema query/alter and /login are now admin operations. (#5833)
- Backup can take S3 credentials from IAM. (#5387)
- Online restore. (#5095)
- Retry restore proposals. (#5765)
- Add support for encrypted backups in online restores. (#5226)
- Breaking changes
- [BREAKING] Vault Integration. (#5402)
- GraphQL
- Validate JWT Claims and test JWT expiry. (#6050)
- Validate subscriptions in Operation function. (#5983)
- Nested auth queries no longer search through all possible records. (#5950)
- Apply auth rules on type having @dgraph directive. (#5863)
- Custom Claim will be parsed as JSON if it is encoded as a string. (#5862)
- Dgraph directive with reverse edge should work smoothly with interfaces. Fixed #5744. (#5982)
- Fix case where Dgraph type was not generated for GraphQL interface. Fixes #5311. (#5828)
- Fix panic error when there is no @withSubscription directive on any type. (#5921)
- Fix OOM issue in graphql mutation rewriting. (#5854)
- Preserve GraphQL schema after drop_data. (#5840)
- Maintain Master's backward compatibility for
Dgraph.Authorization
in schema. (#6014) - Remote schema introspection for single remote endpoint. (#5824)
- Requesting only _-typename now returns results. (#5823)
- Typename for types should be filled in query for schema introspection queries. Fixes #5792. (#5891)
- Update GraphQL schema only on Group-1 leader. (#5829)
- Add more validations for coercion of object/scalar and vice versa. (#5534)
- Apply type filter for get query at root level. (#5497)
- Fix mutation on predicate with special characters having dgraph directive. Fixes #5296. (#5526)
- Return better error message if a type only contains ID field. (#5531)
- Coerce value for scalar types correctly. (#5487)
- Minor delete mutation msg fix. (#5316)
- Report all errors during schema update. (#5425)
- Do graphql query/mutation validation in the mock server. (#5362)
- Remove custom directive from internal schema. (#5354)
- Recover from panic within goroutines used for resolving custom fields. (#5329)
- Start collecting and returning errors from remote remote GraphQL endpoints. (#5328)
- Fix response for partial admin queries. (#5317)
- Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5571)
- Alpha: Gracefully shutdown ludicrous mode. (#5561)
- Use rampMeter for Executor. (#5503)
- Dont set n.ops map entries to nil. Instead just delete them. (#5551)
- Add check on rebalance interval. (#5544)
- Queries or mutations shouldn't be part of generated Dgraph schema. (#5524)
- Sent restore proposals to all groups asyncronouosly. (#5467)
- Fix long lines in export.go. (#5498)
- Fix warnings about unkeyed literals. (#5492)
- Remove redundant conversions between string and []byte. (#5478)
- Propogate request context while handling queries. (#5418)
- K-Shortest path query fix. Fixes #5426. (#5410)
- Worker: Return nil on error. (#5414)
- Fix warning about issues with the cancel function. (#5397).
- Replace TxnWriter with WriteBatch. (#5007)
- Add a check to throw an error is a nil pointer is passed to unmarshalOrCopy. (#5334)
- Remove noisy logs in tablet move. (#5333)
- Support bulk loader use-case to import unencrypted export and encrypt the result. (#5209)
- Handle Dgraph shutdown gracefully. Fixes #3873. (#5137, #5138)
- If we don't have any schema updates, avoid running the indexing sequence. (#5126)
- Pass read timestamp to getNew. (#5085)
- Indicate dev environment in Sentry events. (#5051)
- Replaced s2 contains point methods with go-geom. (#5023
- Change tablet size calculation to not depend on the right key. Fixes #5408. (#5684)
- Fix alpha start in ludicrous mode. Fixes #5601. (#5912)
- Handle schema updates correctly in ludicrous mode. (#5970)
- Fix Panic because of nil map in groups.go. (#6008)
- update reverse index when updating single UID predicates. Fixes #5732. (#6005), (#6015)
- Fix expand(_all_) queries in ACL. Fixes #5687. (#5993)
- Fix val queries when ACL is enabled. Fixes #5687. (#5995)
- Return error if server is not ready. (#6020)
- Reduce memory consumption of the map. (#5957)
- Cancel the context when opening connection to leader for streaming snapshot. (#6045)
- Breaking changes
- Enterprise:
- Backup: Change groupId from int to uint32. (#5605)
- Backup: Use a sync.Pool to allocate KVs during backup. (#5579)
- Backup: Fix segmentation fault when calling the /admin/backup edpoint. (#6043)
- Restore: Make backupId optional in restore GraphQL interface. (#5685)
- Restore: Move tablets to right group when restoring a backup. (#5682)
- Restore: Only processes backups for the alpha's group. (#5588)
- vault_format support for online restore and gql (#5758)
20.03.4 - 2020-07-23
- GraphQL
- Minor delete mutation msg fix. (#5564)
- Make updateGQLSchema always return the new schema. (#5582)
- Fix mutation on predicate with special characters in the
@dgraph
directive. (#5577) - Updated mutation rewriting to fix OOM issue. (#5536)
- Fix case where Dgraph type was not generated for GraphQL interface. Fixes #5311. (#5844)
- Fix interface conversion panic in v20.03 (#5857) .
- Dont set n.ops map entries to nil. Instead just delete them. (#5557)
- Alpha: Enable bloom filter caching. (#5555)
- Alpha: Gracefully shutdown ludicrous mode. (#5584)
- Alpha Close: Wait for indexing to complete. Fixes #3873. (#5597)
- K shortest paths queries fix. (#5548)
- Add check on rebalance interval. (#5594)
- Remove noisy logs in tablet move. (#5591)
- Avoid assigning duplicate RAFT IDs to new nodes. Fixes #4536. (#5604)
- Send CID for sentry events. (#5633)
- Use rampMeter for Executor. (#5503)
- Fix snapshot calculation in ludicrous mode. (#5636)
- Update badger: Avoid panic in fillTables(). Fix assert in background compression and encryption. (#5680)
- Avoid panic in handleValuePostings. (#5678)
- Fix facets response with normalize. Fixes #5241. (#5691)
- Badger iterator key copy in count index query. (#5916)
- Ludicrous mode mutation error. (#5914)
- Return error instead of panic. (#5907)
- Fix segmentation fault in draft.go. (#5860)
- Optimize count index. (#5971)
- Handle schema updates correctly in ludicrous mode. (#5969)
- Fix Panic because of nil map in groups.go. (#6007)
- Return error if server is not ready. (#6021)
- Enterprise features
1.2.6 - 2020-07-31
- Update Badger. (#5940, #5990)
- Fix assert in background compression and encryption. (dgraph-io/badger#1366)
- Avoid panic in filltables() (dgraph-io/badger#1365)
- Force KeepL0InMemory to be true when InMemory is true (dgraph-io/badger#1375)
- Tests: Use t.Parallel in TestIteratePrefix tests (dgraph-io/badger#1377)
- Remove second initialization of writech in Open (dgraph-io/badger#1382)
- Increase default valueThreshold from 32B to 1KB (dgraph-io/badger#1346)
- Pre allocate cache key for the block cache and the bloom filter cache (dgraph-io/badger#1371)
- Rework DB.DropPrefix (dgraph-io/badger#1381)
- Update head while replaying value log (dgraph-io/badger#1372)
- Update ristretto to commit f66de99 (dgraph-io/badger#1391)
- Enable cross-compiled 32bit tests on TravisCI (dgraph-io/badger#1392)
- Avoid panic on multiple closer.Signal calls (dgraph-io/badger#1401)
- Add a contribution guide (dgraph-io/badger#1379)
- Add assert to check integer overflow for table size (dgraph-io/badger#1402)
- Return error if the vlog writes exceeds more that 4GB. (dgraph-io/badger#1400)
- Revert "add assert to check integer overflow for table size (dgraph-io/badger#1402)" (dgraph-io/badger#1406)
- Revert "fix: Fix race condition in block.incRef (dgraph-io/badger#1337)" (dgraph-io/badger#1407)
- Revert "Buffer pool for decompression (dgraph-io/badger#1308)" (dgraph-io/badger#1408)
- Revert "Compress/Encrypt Blocks in the background (dgraph-io/badger#1227)" (dgraph-io/badger#1409)
- Add missing changelog for v2.0.3 (dgraph-io/badger#1410)
- Changelog for v20.07.0 (dgraph-io/badger#1411)
- Alpha: Enable bloom filter caching. (#5554)
- K shortest paths queries fix. (#5596)
- Add check on rebalance interval. (#5595)
- Change error message in case of successful license application. (#5593)
- Remove noisy logs in tablet move. (#5592)
- Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5603)
- Update badger: Set KeepL0InMemory to false (badger default), and Set DetectConflicts to false. (#5615)
- Use /tmp dir to store temporary index. Fixes #4600. (#5730)
- Split posting lists recursively. (#4867)
- Set version when rollup is called with no splits. (#4945)
- Return error instead of panic (readPostingList). Fixes #5749. (#5908)
- ServeTask: Return error if server is not ready. (#6022)
- Enterprise features
20.03.3 - 2020-06-02
- Sentry Improvements: Segregate dev and prod events into their own Sentry projects. Remove Panic back-traces, Set the type of exception to the panic message. (#5305)
- /health endpoint now shows EE Features available and GraphQL changes. (#5304)
- Return error response if encoded response is > 4GB in size. Replace idMap with idSlice in encoder. (#5359)
- Initialize sentry at the beginning of alpha.Run(). (#5429)
- Export: Ignore deleted predicates from schema. Fixes #5053. (#5326)
- GraphQL: ensure upserts don't have accidental edge removal. Fixes #5355. (#5356)
- Fix segmentation fault in query.go. (#5377)
- Fix empty string checks. (#5390)
- Update group checksums when combining multiple deltas. Fixes #5368. (#5394)
- Change the default ratio of traces from 1 to 0.01. (#5405)
- Fix protobuf headers check. (#5381)
- Stream the full set of predicates and types during a snapshot. (#5444)
- Support passing GraphQL schema to bulk loader. Fixes #5235. ([#5521][])
- Export GraphQL schema to separate file. Fixes #5235. (#5528)
- Fix memory leak in live loader. (#5473)
- Replace strings.Trim with strings.TrimFunc in ParseRDF. (#5494)
- Return nil instead of emptyTablet in groupi.Tablet(). (#5469)
- Use pre-allocated protobufs during backups. (#5404)
- During shutdown, generate snapshot before closing raft node. (#5476)
- Get lists of predicates and types before sending the snapshot. (#5488)
- Fix panic for sending on a closed channel. (#5479)
- Fix inconsistent bulk loader failures. Fixes #5361. (#5537)
- GraphQL: fix password rewriting. (#5483)
- GraphQL: Fix non-unique schema issue. (#5481)
- Enterprise features
- Print error when applying enterprise license fails. (#5342)
- Apply the option enterprise_license only after the node's Raft is initialized and it is the leader. Don't apply the trial license if a license already exists. Disallow the enterprise_license option for OSS build and bail out. Apply the option even if there is a license from a previous life of the Zero. (#5384)
- Use SensitiveByteSlice type for hmac secret. (#5450)
1.2.5 - 2020-06-02
- Return error response if encoded response is > 4GB in size. Replace idMap with idSlice in encoder. (#5359)
- Change the default ratio of traces from 1 to 0.01. (#5405)
- Export: Ignore deleted predicates from schema. Fixes #5053. (#5327)
- Fix segmentation fault in query.go. (#5377)
- Update group checksums when combining multiple deltas. Fixes #5368. (#5394)
- Fix empty string checks. (#5396)
- Fix protobuf headers check. (#5381)
- Stream the full set of predicates and types during a snapshot. (#5444)
- Use pre-allocated protobufs during backups. (#5508)
- Replace strings.Trim with strings.TrimFunc in ParseRDF. (#5494)
- Return nil instead of emptyTablet in groupi.Tablet(). (#5469)
- During shutdown, generate snapshot before closing raft node. (#5476)
- Get lists of predicates and types before sending the snapshot. (#5488)
- Move runVlogGC to x and use it in zero as well. (#5468)
- Fix inconsistent bulk loader failures. Fixes #5361. (#5537)
- Use SensitiveByteSlice type for hmac secret. (#5451)
This release was removed
This release was removed
20.03.1 - 2020-04-24
- Support comma separated list of zero addresses in alpha. (#5258)
- Optimization: Optimize snapshot creation (#4901)
- Optimization: Remove isChild from fastJsonNode. (#5184)
- Optimization: Memory improvements in fastJsonNode. (#5088)
- Update badger to commit cddf7c03451c. (#5272)
- Compression/encryption runs in the background (which means faster writes)
- Separate cache for bloom filters which limits the amount of memory used by bloom filters
- Avoid crashing live loader in case the network is interrupted. (#5268)
- Enterprise features
- Implement json.Marshal just for strings. (#4979)
- Change error message in case of successful license application. Fixes #4965. (#5230)
- Add OPTIONS support for /ui/keywords. Fixes #4946. (#4992)
- Check uid list is empty when filling shortest path vars. (#5152)
- Return error for invalid UID 0x0. Fixes #5238. (#5252)
- Skipping floats that cannot be marshalled (+Inf, -Inf, NaN). (#5199, #5163)
- Fix panic in Task FrameWork. Fixes #5034. (#5081)
- graphql: @dgraph(pred: "...") with @search. (#5019)
- graphql: ensure @id uniqueness within a mutation. (#4959)
- Set correct posting list type while creating it in live loader. (#5012)
- Add support for tinyint in migrate tool. Fixes #4674. (#4842)
- Fix bug, aggregate value var works with blank node in upsert. Fixes #4712. (#4767)
- Always set BlockSize in encoder. Fixes #5102. (#5255)
- Optimize uid allocation in live loader. (#5132)
- Shutdown executor goroutines. (#5150)
- Update RAFT checkpoint when doing a clean shutdown. (#5097)
- Enterprise features
- Backup schema keys in incremental backups. Before, the schema was only stored in the full backup. (#5158)
- Return list of ongoing tasks in /health endpoint. (#4961)
- Propose snapshot once indexing is complete. (#5005)
- Add query/mutation logging in glog V=3. (#5024)
- Include the total number of touched nodes in the query metrics. (#5073)
- Flag to turn on/off sending Sentry events, default is on. (#5169)
- Concurrent Mutations. (#4892)
- Enterprise features
- Support bulk loader use-case to import unencrypted export and encrypt. (#5213)
- Create encrypted restore directory from encrypted backups. (#5144)
- Add option "--encryption_key_file"/"-k" to debug tool for encryption support. (#5146)
- Support for encrypted backups/restore. Note: Older backups without encryption will be incompatible with this Dgraph version. Solution is to force a full backup before creating further incremental backups. (#5103)
- Add encryption support for export and import (via bulk, live loaders). (#5155)
- Add Badger expvar metrics to Prometheus metrics. Fixes #4772. (#5094)
- Add option to apply enterprise license at zero's startup. (#5170)
1.2.3 - 2020-04-24
- Support comma separated list of zero addresses in alpha. (#5258)
- Optimization: Optimize snapshot creation. (#4901)
- Optimization: Remove isChild from fastJsonNode. (#5184)
- Optimization: Memory improvements in fastJsonNode. (#5088)
- Update Badger to commit cddf7c03451c33. (#5273)
- Compression/encryption runs in the background (which means faster writes)
- Separate cache for bloom filters which limits the amount of memory used by bloom filters
- Avoid crashing live loader in case the network is interrupted. (#5268)
- Enterprise features
- Backup/restore: Force users to explicitly tell restore command to run without zero. (#5206)
- Check uid list is empty when filling shortest path vars. (#5152)
- Return error for invalid UID 0x0. Fixes #5238. (#5252)
- Skipping floats that cannot be marshalled (+Inf, -Inf, NaN). (#5199, #5163)
- Set correct posting list type while creating it in live loader. (#5012)
- Add support for tinyint in migrate tool. Fixes #4674. (#4842)
- Fix bug, aggregate value var works with blank node in upsert. Fixes #4712. (#4767)
- Always set BlockSize in encoder. Fixes #5102. (#5255)
- Enterprise features
- Backup schema keys in incremental backups. Before, the schema was only stored in the full backup. (#5158)
- Add Badger expvar metrics to Prometheus metrics. Fixes #4772. (#5094)
- Enterprise features
- Support bulk loader use-case to import unencrypted export and encrypt. (#5213)
- Create encrypted restore directory from encrypted backups. (#5144)
- Add option "--encryption_key_file"/"-k" to debug tool for encryption support. (#5146)
- Support for encrypted backups/restore. Note: Older backups without encryption will be incompatible with this Dgraph version. Solution is to force a full backup before creating further incremental backups. (#5103)
- Add encryption support for export and import (via bulk, live loaders). (#5155)
20.03.0 - 2020-03-30
** Note: This release requires you to export and re-import data prior to upgrading or rolling back. The underlying data format has been changed. **
- Report GraphQL stats from alpha. (#4607)
- During backup, collapse split posting lists into a single list. (#4682)
- Optimize computing reverse reindexing. (#4755)
- Add partition key based iterator to the bulk loader. (#4841)
- Invert s2 loop instead of rebuilding. (#4782)
- Update Badger Version. (#4935)
- Incremental Rollup and Tablet Size Calculation. (#4972)
- Track internal operations and cancel when needed. (#4916)
- Set version when rollup is called with no splits. (#4945)
- Use a different stream writer id for split keys. (#4875)
- Split posting lists recursively. (#4867)
- Add support for tinyint in migrate tool. Fixes #4674. (#4842)
- Enterprise features
- Breaking changes
- [BREAKING] Underlying schema for ACL has changed. Use the upgrade tool to migrate to the new data format. (#4725)
- Breaking changes
- Add GraphQL API for Dgraph accessible via the
/graphql
and/admin
HTTP endpoints on Dgraph Alpha. (#933) - Add support for sorting on multiple facets. Fixes #3638. (#4579)
- Expose Badger Compression Level option in Bulk Loader. (#4669)
- GraphQL Admin API: Support Backup operation. (#4706)
- GraphQL Admin API: Support export, draining, shutdown and setting lrumb operations. (#4739)
- GraphQL Admin API: duplicate
/health
in GraphQL/admin
(#4768) - GraphQL Admin API: Add
/admin/schema
endpoint (#4777) - Perform indexing in background. (#4819)
- Basic Sentry Integration - Capture manual panics with Sentry exception and runtime panics with a wrapper on panic. (#4756)
- Ludicrous Mode. (#4872)
- Enterprise features
- Avoid running GC frequently. Only run for every 2GB of increase. Small optimizations in Bulk.reduce.
- Check response status when posting telemetry data. (#4726)
- Add support for $ in quoted string. Fixes #4695. (#4702)
- Do not include empty nodes in the export output. Fixes #3610. (#4773)
- Fix Nquad value conversion in live loader. Fixes #4468. (#4793)
- Use
/tmp
dir to store temporary index. Fixes #4600. (#4766) - Properly initialize posting package in debug tool. (#4893)
- Fix bug, aggregate value var works with blank node in upsert. Fixes #4712. (#4767)
- Fix count with facets filter. Fixes #4659. (#4751)
- Change split keys to have a different prefix. Fixes #4905. (#4908)
- Various optimizations for facets filter queries. (#4923)
- Throw errors returned by retrieveValuesAndFacets. Fixes #4958. (#4970)
- Add "runInBackground" option to Alter to run indexing in background. When set to
true
, then the Alter call returns immediately. When set tofalse
, the call blocks until indexing is complete. This is set tofalse
by default. (#4981) - Set correct posting list type while creating it in the live loader. Fixes #4889. (#5012)
- Breaking changes
1.2.2 - 2020-03-19
- Wrap errors thrown in posting/list.go for easier debugging. (#4880)
- Print keys using hex encoding in error messages in list.go. (#4891)
- Do not include empty nodes in the export output. (#4896)
- Fix error when lexing language list. (#4784)
- Properly initialize posting package in debug tool. (#4893)
- Handle special characters in schema and type queries. Fixes #4933. (#4937)
- Overwrite values for uid predicates. Fixes #4879. (#4883)
- Disable @* language queries when the predicate does not support langs. (#4881)
- Fix bug in exporting types with reverse predicates. Fixes #4856. (#4857)
- Do not skip over split keys. (Trying to skip over the split keys sometimes skips over keys belonging to a different split key. This is a fix just for this release as the actual fix requires changes to the data format.) (#4951)
- Fix point-in-time Prometheus metrics. Fixes #4532. (#4948)
- Split lists in the bulk loader. (#4967)
- Allow remote MySQL server with dgraph migrate tool. Fixes #4707. (#4860)
- Enterprise features
1.2.1 - 2020-02-06
1.2.0 - 2020-01-27
- Allow overwriting values of predicates of type uid. Fixes #4136. (#4411)
- Algorithms to handle UidPack. (#4321)
- Improved latency in live loader using conflict resolution at client level. (#4362)
- Set ZSTD CompressionLevel to 1. (#4572)
- Splits are now disabled. (#4672)
- Disk based re-indexing: while re-indexing a predicate, the temp data is now written on disk instead of keeping it in memory. This improves index rebuild for large datasets. (#4440)
- Enterprise features
- Add
debuginfo
subcommand to dgraph. (#4464) - Support filtering on non-indexed predicate. Fixes #4305. (#4531)
- Add support for variables in recurse. Fixes #3301. (#4385).
- Adds
@noconflict
schema directive to prevent conflict detection. This is an experimental feature. This is not a recommended directive, but exists to help avoid conflicts for predicates which don't have high correctness requirements. Fixes #4079. (#4454) - Implement the state HTTP endpoint on Alpha. Login is required if ACL is enabled. (#4435).
- Implement
/health?all
endpoint on Alpha nodes. (#4535) - Add
/health
endpoint to Zero. (#4405) - Breaking changes
- Enterprise features
- Add guardians group with full authorization. (#4447)
- Infer type of schema from JSON and RDF mutations. Fixes #3788. (#4328)
- Fix retrieval of facets with cascade. Fixes #4310. (#4530)
- Do not use type keys during tablet size calculation. Fixes #4473. (#4517)
- Fix Levenshtein distance calculation with match function. Fixes #4494. (#4545)
- Add
<xs:integer>
RDF type for int schema type. Fixes #4460. (#4465) - Allow
@filter
directive with expand queries. Fixes #3904. (#4404). - A multi-part posting list should only be accessed via the main key. Accessing the posting list via one of the other keys was causing issues during rollup and adding spurious keys to the database. Now fixed. (#4574)
- Enterprise features
1.1.1 - 2019-12-16
- Breaking changes for expand() queries
- Add support for Go Modules. (#4146)
- Simplify type definitions: type definitions no longer require the type (string, int, etc.) per field name. (#4017)
- Adding log lines to help troubleshoot snapshot and rollup. (#3889)
- Add
--http
flag to configure pprof endpoint for live loader. (#3846) - Use snappy compression for internal gRPC communication. (#3368)
- Periodically run GC in all dgraph commands. (#4032, #4075)
- Exit early if data files given to bulk loader are empty. (#4253)
- Add support for first and offset directive in has function. (#3970)
- Pad encData to 17 bytes before decoding. (#4066)
- Remove usage of deprecated methods. (#4076)
- Show line and column numbers for errors in HTTP API responses. (#4012)
- Do not store non-pointer values in sync.Pool. (#4089)
- Verify that all the fields in a type exist in the schema. (#4114)
- Update badger to version v2.0.0. (#4200)
- Introduce StreamDone in bulk loader. (#4297)
Enterprise features:
- ACL: Disallow schema queries when an user has not logged in. (#4107)
- Block delete if predicate permission is zero. Fixes #4265. (#4349)
- Support
@cascade
directive at subqueries. (#4006) - Support
@normalize
directive for subqueries. (#4042) - Support
val()
function inside upsert mutations (both RDF and JSON). (#3877, #3947) - Support GraphQL Variables for facet values in
@facets
filters. (#4061) - Support filtering by facets on values. (#4217)
- Add ability to query
expand(TypeName)
only on certain types. (#3920) - Expose numUids metrics per query to estimate query cost. (#4033)
- Upsert queries now return query results in the upsert response. (#4269, #4375)
- Add support for multiple mutations blocks in upsert blocks. (#4210)
- Add total time taken to process a query in result under
"total_ns"
field. (#4312)
Enterprise features:
- Add encryption-at-rest. (#4351)
- Breaking change: Remove
@type
directive from query language. To filter an edge by a type, use@filter(type(TypeName))
instead of@type(TypeName)
. (#4016)
Enterprise features:
- Remove regexp ACL rules. (#4360)
- Avoid changing order if multiple versions of the same edge is found.
- Consider reverse count index keys for conflict detection in transactions. Fixes #3893. (#3932)
- Clear the unused variable tlsCfg. (#3937)
- Do not require the last type declaration to have a new line. (#3926)
- Verify type definitions do not have duplicate fields. Fixes #3924. (#3925)
- Fix bug in bulk loader when store_xids is true. Fixes #3922. (#3950)
- Call cancel function only if err is not nil. Fixes #3966. (#3990)
- Change the mapper output directory from $TMP/shards to $TMP/map_output. Fixes #3959. (#3960)
- Return error if keywords used as alias in groupby. (#3725)
- Fix bug where language strings are not filtered when using custom tokenizer. Fixes #3991. (#3992)
- Support named queries without query variables. Fixes #3994. (#4028)
- Correctly set up client connection in x package. (#4036)
- Fix data race in regular expression processing. Fixes #4030. (#4065)
- Check for n.Raft() to be nil, Fixes #4053. (#4084)
- Fix file and directory permissions for bulk loader. (#4088)
- Ensure that clients can send OpenCensus spans over to the server. (#4144)
- Change lexer to allow unicode escape sequences. Fixes #4157.(#4175)
- Handle the count(uid) subgraph correctly. Fixes #4038. (#4122)
- Don't traverse immutable layer while calling iterate if deleteBelowTs > 0. Fixes #4182. (#4204)
- Bulk loader allocates reserved predicates in first reduce shard. Fixes #3968. (#4202)
- Only allow one alias per predicate. (#4236)
- Change member removal logic to remove members only once. (#4254)
- Disallow uid as a predicate name. (#4219)
- Drain apply channel when a snapshot is received. (#4273)
- Added RegExp filter to func name. Fixes #3268. (#4230)
- Acquire read lock instead of exclusive lock for langBaseCache. (#4279)
- Added proper handling of int and float for math op. #4132. (#4257)
- Don't delete group if there is no member in the group. (#4274)
- Sort alphabets of languages for non indexed fields. Fixes #4005. (#4260)
- Copy xid string to reduce memory usage in bulk loader. (#4287)
- Adding more details for mutation error messages with scalar/uid type mismatch. (#4317)
- Limit UIDs per variable in upsert. Fixes #4021. (#4268)
- Return error instead of panic when geo data is corrupted. Fixes #3740. (#4318)
- Use txn writer to write schema postings. (#4296)
- Fix connection log message in dgraph alpha from "CONNECTED" to "CONNECTING" when establishing a connection to a peer. Fixes #4298. (#4303)
- Fix segmentation fault in backup. (#4314)
- Close store after stoping worker. (#4356)
- Don't pre allocate mutation map. (#4343)
- Cmd: fix config file from env variable issue in subcommands. Fixes #4311. (#4344)
- Fix segmentation fault in Alpha. Fixes #4288. (#4394)
- Fix handling of depth parameter for shortest path query for numpaths=1 case. Fixes #4169. (#4347)
- Do not return dgo.ErrAborted when client calls txn.Discard(). (#4389)
- Fix
has
pagination when predicate is queried with@lang
. Fixes #4282. (#4331) - Make uid function work with value variables in upsert blocks. Fixes #4424. (#4425)
Enterprise features:
- Fix bug when overriding credentials in backup request. Fixes #4044. (#4047)
- Create restore directory when running "dgraph restore". Fixes #4315. (#4352)
- Write group_id files to postings directories during restore. (#4365)
1.1.0 - 2019-09-03
-
Breaking changes
-
uid schema type: The
uid
schema type now means a one-to-one relation, not a one-to-many relation as in Dgraph v1.1. To specify a one-to-many relation in Dgraph v1.0, use the[uid]
schema type. (#2895, #3173, #2921) -
_predicate_ is removed from the query language.
-
expand(_all_) only works for nodes with attached type information via the type system. The type system is used to determine the predicates to expand out from a node. (#3262)
-
S * * deletion only works for nodes with attached type information via the type system. The type system is used to determine the predicates to delete from a node. For
S * *
deletions, only the predicates specified by the type are deleted. -
HTTP API: The HTTP API has been updated to replace the custom HTTP headers with standard headers.
- Change
/commit
endpoint to accept a list of preds for conflict detection. (#3020) - Remove custom HTTP Headers, cleanup API. (#3365)
- The startTs path parameter is now a query parameter
startTs
for the/query
,/mutate
, and/commit
endpoints. - Dgraph custom HTTP Headers
X-Dgraph-CommitNow
,X-Dgraph-MutationType
, andX-Dgraph-Vars
are now ignored.
- The startTs path parameter is now a query parameter
- Update HTTP API Content-Type headers. (#3550) (#3532)
- Queries over HTTP must have the Content-Type header
application/graphql+-
orapplication/json
. - Queries over HTTP with GraphQL Variables (e.g.,
query queryName($a: string) { ... }
) must use the query format viaapplication/json
to pass query variables. - Mutations over HTTP must have the Content-Type header set to
application/rdf
for RDF format orapplication/json
for JSON format. - Commits over HTTP must have the
startTs
query parameter along with the JSON map of conflict keys and predicates.
- Queries over HTTP must have the Content-Type header
- Change
-
Datetime index: Use UTC Hour, Day, Month, Year for datetime comparison. This is a bug fix that may result in different query results for existing queries involving the datetime index. (#3251)
-
Blank node name generation for JSON mutations. For JSON mutations that do not explicitly set the
"uid"
field, the blank name format has changed to contain randomly generated identifiers. This fixes a bug where two JSON objects within a single mutation are assigned the same blank node. (#3795)
-
-
Improve hash index. (#2887)
-
Use a stream connection for internal connection health checking. (#2956)
-
Use defer statements to release locks. (#2962)
-
VerifyUid should wait for membership information. (#2974)
-
Switching to perfect use case of sync.Map and remove the locks. (#2976)
-
Tablet move and group removal. (#2880)
-
Delete tablets which don't belong after tablet move. (#3051)
-
Alphas inform Zero about tablets in its postings directory when Alpha starts. (3271f64e0)
-
Prevent alphas from asking zero to serve tablets during queries. (#3091)
-
Put data before extensions in JSON response. (#3194)
-
Always parse language tag. (#3243)
-
Populate the StartTs for the commit gRPC call so that clients can double check the startTs still matches. (#3228)
-
Replace MD5 with SHA-256 in
dgraph cert ls
. (#3254) -
Fix use of deprecated function
grpc.WithTimeout()
. (#3253) -
Introduce multi-part posting lists. (#3105)
-
Fix format of the keys to support startUid for multi-part posting lists. (#3310)
-
Access groupi.gid atomically. (#3402)
-
Move Raft checkpoint key to w directory. (#3444)
-
Remove list.SetForDeletion method, remnant of the global LRU cache. (#3481)
-
Whitelist by hostname. (#2953)
-
Use CIDR format for whitelists instead of the previous range format.
-
Introduce Badger's DropPrefix API into Dgraph to simplify how predicate deletions and drop all work internally. (#3060)
-
Replace integer compression in UID Pack with groupvarint algorithm. (#3527, #3650)
-
Rebuild reverse index before count reverse. (#3688)
-
Breaking change: Use one atomic variable to generate blank node ids for json objects. This changes the format of automatically generated blank node names in JSON mutations. (#3795)
-
Print commit SHA256 when invoking "make install". (#3786)
-
Print SHA-256 checksum of Dgraph binary in the version section logs. (#3828)
-
Change anonynmous telemetry endpoint. (#3872)
-
Add support for API required for multiple mutations within a single call. (#3839)
-
Make
lru_mb
optional. (#3898) -
Logging
- Suppress logging before
flag.Parse
from glog. (#2970) - Move glog of missing value warning to verbosity level 3. (#3092)
- Change time threshold for Raft.Ready warning logs. (#3901)
- Add log prefix to stream used to rebuild indices. (#3696)
- Add additional logs to show progress of reindexing operation. (#3746)
- Suppress logging before
-
Error messages
- Output the line and column number in schema parsing error messages. (#2986)
- Improve error of empty block queries. (#3015)
- Update flag description and error messaging related to
--query_edge_limit
flag. (#2979) - Reports line-column numbers for lexer/parser errors. (#2914)
- Replace fmt.Errorf with errors.Errorf (#3627)
- Return GraphQL compliant
"errors"
field for HTTP requests. (#3728)
-
Optimizations
- Don't read posting lists from disk when mutating indices. (#3695, #3713)
- Avoid preallocating uid slice. It was slowing down unpackBlock.
- Reduce memory consumption in bulk loader. (#3724)
- Reduce memory consumptino by reusing lexer for parsing RDF. (#3762)
- Use the stream framework to rebuild indices. (#3686)
- Use Stream Writer for full snapshot transfer. (#3442)
- Reuse postings and avoid fmt.Sprintf to reduce mem allocations (#3767)
- Speed up JSON chunker. (#3825)
- Various optimizations for Geo queries. (#3805)
-
Update various govendor dependencies
- Add OpenCensus deps to vendor using govendor. (#2989)
- Govendor in latest dgo. (#3078)
- Vendor in the Jaeger and prometheus exporters from their own repos (#3322)
- Vendor in Shopify/sarama to use its Kafka clients. (#3523)
- Update dgo dependency in vendor. (#3412)
- Update vendored dependencies. (#3357)
- Bring in latest changes from badger and fix broken API calls. (#3502)
- Vendor badger with the latest changes. (#3606)
- Vendor in badger, dgo and regenerate protobufs. (#3747)
- Vendor latest badger. (#3784)
- Breaking change: Vendor in latest Badger with data-format changes. (#3906)
Dgraph Debug Tool
- When looking up a key, print if it's a multi-part list and its splits. (#3311)
- Diagnose Raft WAL via debug tool. (#3319)
- Allow truncating Raft logs via debug tool. (#3345)
- Allow modifying Raft snapshot and hardstate in debug tool. (#3364)
Dgraph Live Loader / Dgraph Bulk Loader
- Add
--format
flag to Dgraph Live Loader and Dgraph Bulk Loader to specify input data format type. (#2991) - Update live loader flag help text. (#3278)
- Improve reporting of aborts and retries during live load. (#3313)
- Remove xidmap storage on disk from bulk loader.
- Optimize XidtoUID map used by live and bulk loader. (#2998)
- Export data contains UID literals instead of blank nodes. Using Live Loader or Bulk Loader to load exported data will result in the same UIDs as the original database. (#3004, #3045) To preserve the previous behavior, set the
--new_uids
flag in the live or bulk loader. (18277872f) - Use StreamWriter in bulk loader. (#3542, #3635, #3649)
- Add timestamps during bulk/live load. (#3287)
- Use initial schema during bulk load. (#3333)
- Adding the verbose flag to suppress excessive logging in live loader. (#3560)
- Fix user meta of schema and type entries in bulk loader. (#3628)
- Check that all data files passed to bulk loader exist. (#3681)
- Handle non-list UIDs predicates in bulk loader. #3659
- Use sync.Pool for MapEntries in bulk loader. (#3763, 802ec4c39)
Dgraph Increment Tool
- Add server-side and client-side latency numbers to increment tool. (#3422)
- Add
--retries
flag to specify number of retry requests to set up a gRPC connection. (#3584) - Add TLS support to
dgraph increment
command. (#3257)
-
Add bash and zsh shell completion. See
dgraph completion bash --help
ordgraph completion zsh --help
for usage instructions. (#3084) -
Add support for ECDSA in dgraph cert. (#3269)
-
Add support for JSON export via
/admin/export?format=json
. (#3309) -
Add the SQL-to-Dgraph migration tool
dgraph migrate
. (#3295) -
Add
assign_timestamp_ns
latency field to fix encoding_ns calculation. Fixes #3668. (#3692, #3711) -
Adding draining mode to Alpha. (#3880)
-
Enterprise features
Query
-
Type system
- Add
type
function to query types. (#2933) - Parser for type declaration. (#2950)
- Add
@type
directive to enforce type constraints. (#3003) - Store and query types. (#3018)
- Rename type predicate to dgraph.type (#3204)
- Change definition of dgraph.type pred to [string]. (#3235)
- Use type when available to resolve expand predicates. (#3214)
- Include types in results of export operation. (#3493)
- Support types in the bulk loader. (#3506)
- Add
-
Add the
upsert
block to send "query-mutate-commit" updates as a single call to Dgraph. This is especially helpful to do upserts with the@upsert
schema directive. Addresses #3059. (#3412)- Add support for conditional mutation in Upsert Block. (#3612)
-
Allow querying all lang values of a predicate. (#2910)
-
Allow
regexp()
in@filter
even for predicates without the trigram index. (#2913) -
Add
minweight
andmaxweight
arguments to k-shortest path algorithm. (#2915) -
Allow variable assignment of
count(uid)
. (#2947) -
Reserved predicates
-
Fuzzy match support via the
match()
function using the trigram index. (#2916) -
Support for GraphQL variables in arrays. (#2981)
-
Show total weight of path in shortest path algorithm. (#2954)
-
Rename dgraph
--dgraph
option to--alpha
. (#3273) -
Support uid variables in
from
andto
arguments for shortest path query. Fixes #1243. (#3710) -
Add support for
len()
function in query language. Thelen()
function is only used in the@if
directive for upsert blocks.len(v)
It returns the length of a variablev
. (#3756, #3769)
Mutation
- Add ability to delete triples of scalar non-list predicates. (#2899, #3843)
- Allow deletion of specific language. (#3242)
Alter
- Add DropData operation to delete data without deleting schema. (#3271)
Schema
- Breaking change: Add ability to set schema to a single UID schema. Fixes #2511. (#2895, #3173, #2921)
- If you wish to create one-to-one edges, use the schema type
uid
. Theuid
schema type in v1.0.x must be changed to[uid]
to denote a one-to-many uid edge.
- If you wish to create one-to-one edges, use the schema type
- Prevent dropping or altering reserved predicates. (#2967) (#2997)
- Reserved predicate names start with
dgraph.
.
- Reserved predicate names start with
- Support comments in schema. (#3133)
- Reserved predicates
Enterprise feature: Access Control Lists (ACLs)
Enterprise ACLs provide read/write/admin permissions to defined users and groups at the predicate-level.
- Enforcing ACLs for query, mutation and alter requests. (#2862)
- Don't create ACL predicates when the ACL feature is not turned on. (#2924)
- Add HTTP API for ACL commands, pinning ACL predicates to group 1. (#2951)
- ACL: Using type to distinguish user and group. (#3124)
- Reduce the value of ACL TTLs to reduce the test running time. (#3164)
- Adds
--acl_cache_ttl
flag.
- Adds
- Fix panic when deleting a user or group that does not exist. (#3218)
- ACL over TLS. (#3207)
- Using read-only queries for ACL refreshes. (#3256)
- When HttpLogin response context error, unmarshal and return the response context. (#3275)
- Refactor: avoid double parsing of mutation string in ACL. (#3494)
- Security fix: prevent the HmacSecret from being logged. (#3734)
Enterprise feature: Backups
Enterprise backups are Dgraph backups in a binary format designed to be restored to a cluster of the same version and configuration. Backups can be stored on local disk or stored directly to the cloud via AWS S3 or any Minio-compatible backend.
- Fixed bug with backup fan-out code. (#2973)
- Incremental backups / partial restore. (#2963)
- Turn obsolete error into warning. (#3172)
- Add
dgraph lsbackup
command to list backups. (#3219) - Add option to override credentials and use public buckets. (#3227)
- Add field to backup requests to force a full backup. (#3387)
- More refactoring of backup code. (#3515)
- Use gzip compression in backups. (#3536)
- Allow partial restores and restoring different backup series. (#3547)
- Store group to predicate mapping as part of the backup manifest. (#3570)
- Only backup the predicates belonging to a group. (#3621)
- Introduce backup data formats for cross-version compatibility. (#3575)
- Add series and backup number information to manifest. (#3559)
- Use backwards-compatible formats during backup (#3629)
- Use manifest to only restore preds assigned to each group. (#3648)
- Fixes the toBackupList function by removing the loop. (#3869)
- Add field to backup requests to force a full backup. (#3387)
Dgraph Zero
- Zero server shutdown endpoint
/shutdown
at Zero's HTTP port. (#2928)
Dgraph Live Loader
- Support live loading JSON files or stdin streams. (#2961) (#3106)
- Support live loading N-Quads from stdin streams. (#3266)
Dgraph Bulk Loader
- Add
--replace_out
option to bulk command. (#3089)
Tracing
- Support exporting tracing data to oc_agent, then to datadog agent. (#3398)
- Measure latency of Alpha's Raft loop. (63f545568)
-
Breaking change: Remove
_predicate_
predicate within queries. (#3262) -
Remove
--debug_mode
option. (#3441) -
Remove deprecated and unused IgnoreIndexConflict field in mutations. This functionality is superceded by the
@upsert
schema directive since v1.0.4. (#3854) -
Enterprise features
- Remove
--enterprise_feature
flag. Enterprise license can be applied via /enterpriseLicense endpoint in Zero. (#3824)
- Remove
-
Fix
anyofterms()
query for facets from mutations in JSON format. Fixes #2867. (#2885) -
Fixes error found by gofuzz. (#2914)
-
Fix int/float conversion to bool. (#2893)
-
Handling of empty string to datetime conversion. (#2891)
-
Default value should not be nil. (#2995)
-
Sanity check for empty variables. (#3021)
-
Panic due to nil maps. (#3042)
-
ValidateAddress should return true if IPv6 is valid. (#3027)
-
Throw error when @recurse queries contain nested fields. (#3182)
-
Fix panic in fillVars. (#3505)
-
Fix race condition in numShutDownSig in Alpha. (#3402)
-
Fix race condition in oracle.go. (#3417)
-
Fix tautological condition in zero.go. (#3516)
-
Correctness fix: Block before proposing mutations and improve conflict key generation. Fixes #3528. (#3565)
-
Reject requests with predicates larger than the max size allowed (longer than 65,535 characters). (#3052)
-
Upgrade raft lib and fix group checksum. (#3085)
-
Check that uid is not used as function attribute. (#3112)
-
Do not retrieve facets when max recurse depth has been reached. (#3190)
-
Remove obsolete error message. (#3172)
-
Remove an unnecessary warning log. (#3216)
-
Fix bug triggered by nested expand predicates. (#3205)
-
Empty datetime will fail when returning results. (#3169)
-
Fix bug with pagination using
after
. (#3149) -
Fix tablet error handling. (#3323)
-
Fix crash when trying to use shortest path with a password predicate. Fixes #3657. (#3662)
-
Fix crash when calling drop all during a query. Fixes #3645. (#3664)
-
Bulk Loader: Fix memory usage by JSON parser. (#3794)
-
Fixing issues in export. Fixes #3610. (#3682)
-
Bug Fix: Use txn.Get in addReverseMutation if needed for count index (#3874)
-
Bug Fix: Remove Check2 at writeResponse. (#3900)
-
Bug Fix: Do not call posting.List.release.
1.0.18 - 2019-12-16
- Preserve the order of entries in a mutation if multiple versions of the same edge are found. This addresses the mutation re-ordering change (#2987) from v1.0.15.
- Fixing the zero client in live loader to avoid using TLS. Fixes #3919. (#3936)
- Remove query cache which is causing contention. (#4071).
- Fix bug when querying with nested levels of
expand(_all_)
. Fixes #3807. (#4143). - Vendor in Badger to fix a vlog bug "Unable to find log file". (#4212)
- Change lexer to allow unicode escape sequences. Fixes #4157. (#4252)
1.0.17 - 2019-08-30
- Increase max trace logs per span in Alpha. (#3886)
- Include line and column numbers in lexer errors. Fixes #2900. (#3772)
- Release binaries built with Go 1.12.7.
- Decrease rate of Raft heartbeat messages. (#3708, #3753)
- Fix bug when exporting a predicate name to the schema. Fixes #3699. (#3701)
- Return error instead of asserting in handleCompareFunction. (#3665)
- Fix bug where aliases in a query incorrectly alias the response depending on alias order. Fixes #3814. (#3837)
- Fix for panic in fillGroupedVars. Fixes #3768. (#3781)
1.0.16 - 2019-07-11
- Vendor in prometheus/client_golang/prometheus v0.9.4. (#3653)
- Fix panic with value variables in queries. Fixes #3470. (#3554)
- Remove unused reserved predicates in the schema. Fixes #3535. (#3557)
- Vendor in Badger v1.6.0 for StreamWriter bug fixes. (#3631)
1.0.15 - 2019-05-30
- Fix bug that can cause a Dgraph cluster to get stuck in infinite leader election. (#3391)
- Fix bug in bulk loader that prevented loading data from JSON files. (#3464)
- Fix bug with a potential deadlock by breaking circular lock acquisition. (#3393)
- Properly escape strings containing Unicode control characters for data exports. Fixes #3383. (#3429)
- Initialize tablets map when creating a group. (#3360)
- Fix queries with
offset
not working with multipleorderasc
ororderdesc
statements. Fixes #3366. (#3455) - Vendor in bug fixes from badger. (#3348, #3371, #3460)
- Use Go v1.12.5 to build Dgraph release binaries.
- Truncate Raft logs even when no txn commits are happening. (3be380b8a)
- Reduce memory usage by setting a limit on the size of committed entries that can be served per Ready. (#3308)
- Reduce memory usage of pending txns by only keeping deltas in memory. (#3349)
- Reduce memory usage by limiting the number of pending proposals in apply channel. (#3340)
- Reduce memory usage when calculating snapshots by retrieving entries in batches. (#3409)
- Allow snapshot calculations during snapshot streaming. (ecb454754)
- Allow quick recovery from partitions by shortening the deadline of sending Raft messages to 10s. (77b52aca1)
- Take snapshots less frequently so straggling Alpha followers can catch up to the leader. Snapshot frequency is configurable via a flag (see Added section). (#3367)
- Allow partial snapshot streams to reduce the amount of data needed to be transferred between Alphas. (#3454)
- Use Badger's StreamWriter to improve write speeds during snapshot streaming. (#3457) (#3442)
- Call file sync explicitly at the end of TxnWriter to improve performance. (#3418)
- Optimize mutation and delta application. Breaking: With these changes, the mutations within a single call are rearranged. So, no assumptions must be made about the order in which they get executed. (#2987)
- Add logs to show Dgraph config options. (#3337)
- Add
-v=3
logs for reporting Raft communication for debugging. These logs start withRaftComm:
. (9cd628f6f)
- Add Alpha flag
--snapshot_after
(default: 10000) to configure the number of Raft entries to keep before taking a snapshot. (#3367) - Add Alpha flag
--abort_older_than
(default: 5m) to configure the amount of time since a pending txn's last mutation until it is aborted. (#3367) - Add Alpha flag
--normalize_node_limit
(default: 10000) to configure the limit for the maximum number of nodes that can be returned in a query that uses the@normalize
directive. Fixes #3335. (#3467) - Add Prometheus metrics for latest Raft applied index (
dgraph_raft_applied_index
) and the max assigned txn timestamp (dgraph_max_assigned_ts
). These are useful to track cluster progress. (#3338) - Add Raft checkpoint index to WAL for quicker recovery after restart. (#3444)
- Remove size calculation in posting list. (0716dc4e1)
- Remove a
-v=2
log which can be too noisy during Raft replay. (2377d9f56). - Remove
dgraph_conf
from /debug/vars. Dgraph config options are available via logs. (#3337)
1.0.14 - 2019-04-12
- Fix bugs related to best-effort queries. (#3125)
- Stream Raft Messages and Fix Check Quorum. (#3138)
- Fix lin reads timeouts and AssignUid recursion in Zero. (#3203)
- Fix panic when running
@groupby(uid)
which is not allowed and other logic fixes. (#3232) - Fix a StartTs Mismatch bug which happens when running multiple best effort queries using the same txn. Reuse the same timestamp instead of allocating a new one. (#3187) (#3246)
- Shutdown extra connections. (#3280)
- Fix bug for queries with
@recurse
andexpand(_all_)
. (#3179) - Fix assorted cases of goroutine leaks. (#3074)
- Increment tool: Fix best-effort flag name so best-effort queries run as intended from the tool. (d386fa5)
- Add timeout option while running queries over HTTP. Setting the
timeout
query parameter/query?timeout=60s
will timeout queries after 1 minute. (#3238) - Add
badger
tool to release binaries and Docker image.
1.0.13 - 2019-03-10
Note: This release supersedes v1.0.12 with bug fixes. If you're running v1.0.12, please upgrade to v1.0.13. It is safe to upgrade in-place without a data export and import.
- Fix Raft panic. (8cb69ea)
- Log an error instead of an assertion check for SrcUIDs being nil. (691b3b3)
1.0.12 - 2019-03-05
Note: This release requires you to export and re-import data prior to upgrading or rolling back. The underlying data format has been changed.
- Support gzip compression for gRPC and HTTP requests. (#2843)
- Restore is available from a full binary backup. This is an enterprise feature licensed under the Dgraph Community License.
- Strict schema mode via
--mutations
flag. By default--mutations=allow
is set to allow all mutations;--mutations=disallow
disables all mutations;--mutations=strict
allows mutations only for predicates which are defined in the schema. Fixes #2277. - Add
dgraph increment
tool for debugging and testing. The increment tool queries for the specified predicate (default:counter.val
), increments its integer counter value, and mutates the result back to Dgraph. Useful for testing end-to-end txns to verify cluster health. (#2955) - Support best-effort queries. This would relax the requirement of linearizible reads. For best-effort queries, Alpha would request timestamps from memory instead of making an outbound request to Zero. (#3071)
- Use the new Stream API from Badger instead of Dgraph's Stream framework. (#2852)
- Discard earlier versions of posting lists. (#2859)
- Make HTTP JSON response encoding more efficient by operating on a bytes buffer directly. (ae1d9f3)
- Optimize and refactor facet filtering. (#2829)
- Show badger.Item meta information in
dgraph debug
output. - Add new option to
dgraph debug
tool to get a histogram of key and value sizes. (#2844) - Add new option to
dgraph debug
tool to get info from a particular read timestamp. - Refactor rebuild index logic. (#2851, #2866)
- For gRPC clients, schema queries are returned in the Json field. The Schema proto field is deprecated.
- Simplify design and make tablet moves robust. (#2800)
- Switch all node IDs to hex in logs (e.g., ID 0xa instead of ID 10), so they are consistent with Raft logs.
- Refactor reindexing code to only reindex specific tokenizers. (#2948)
- Introduce group checksums. (#2964, #3085)
- Return aborted error if commit ts is 0.
- Reduce number of "ClusterInfoOnly" requests to Zero by making VerifyUid wait for membership information. (#2974)
- Simplify Raft WAL storage caching. (#3102)
- Build release binary with Go version 1.11.5.
- Remove LRU cache from Alpha for big wins in query latency reduction (5-10x)
and mutation throughput (live loading 1.7x faster). Setting
--lru_mb
is still required but will not have any effect since the cache is removed. The flag will be used later version when LRU cache is introduced within Badger and configurable from Dgraph. - Remove
--nomutations
flag. Its functionality has moved into strict schema mode with the--mutations
flag (see Added section).
- Use json.Marshal for strings and blobs. Fixes #2662.
- Let eq use string "uid" as value. Fixes #2827.
- Skip empty posting lists in
has
function. - Fix Rollup to pick max update commit ts.
- Fix a race condition when processing concurrent queries. Fixes #2849.
- Show an error when running multiple mutation blocks. Fixes #2815.
- Bring in optimizations and bug fixes over from Badger.
- Bulk Loader for multi-group (sharded data) clusters writes out per-group schema with only the predicates owned by the group instead of all predicates in the cluster. This fixes an issue where queries made to one group may not return data served by other groups. (#3065)
- Remove the assert failure in raftwal/storage.go.
1.0.11 - 2018-12-17
- Integrate OpenCensus in Dgraph. (#2739)
- Add Dgraph Community License for proprietary features.
- Feature: Full binary backups. This is an enterprise feature licensed under the Dgraph Community License. (#2710)
- Add
--enterprise_features
flag to enable enterprise features. By enabling enterprise features, you accept the terms of the Dgraph Community License. - Add minio dep and its deps in govendor. (94daeaf7, 35a73e81)
- Add network partitioning tests with blockade tool. (./contrib/blockade)
- Add Zero endpoints
/assign?what=uids&num=10
and/assign?what=timestamps&num=10
to assign UIDs or transaction timestamp leases. - Adding the acl subcommand to support acl features (still work-in-progress). (#2795)
- Support custom tokenizer in bulk loader (#2820)
- Support JSON data with Dgraph Bulk Loader. (#2799)
- Make posting list memory rollup happen right after disk. (#2731)
- Do not retry proposal if already found in CommittedEntries. (#2740)
- Remove ExportPayload from protos. Export returns Status and ExportRequest. (#2741)
- Allow more escape runes to be skipped over when parsing string literal. (#2734)
- Clarify message of overloaded pending proposals for live loader. (#2732)
- Posting List Evictions. (e2bcfdad)
- Log when removing a tablet. (#2746)
- Deal better with network partitions in leaders. (#2749)
- Keep maxDelay during timestamp req to 1s.
- Updates to the version output info.
- Checking nil values in the equal function (#2769)
- Optimize query: UID expansion. (#2772)
- Split membership sync endpoints and remove PurgeTs endpoint. (#2773)
- Set the Prefix option during iteration. (#2780)
- Replace Zero's
/assignIds?num=10
endpoint with/assign?what=uids&num=10
(see Added section).
- Remove type hinting for JSON and RDF schema-less types. (#2742)
- Remove deprecated logic that was found using vet. (#2758)
- Remove assert for zero-length posting lists. (#2763)
- Restore schema states on error. (#2730)
- Refactor bleve tokenizer usage (#2738). Fixes #2622 and #2601.
- Switch to Badger's Watermark library, which has a memory leak fix. (0cd9d82e)
- Fix tiny typo. (#2761)
- Fix Test: TestMillion.
- Fix Jepsen bank test. (#2764)
- Fix link to help_wanted. (#2774)
- Fix invalid division by zero error. Fixes #2733.
- Fix missing predicates after export and bulk load. Fixes #2616.
- Handle various edge cases around cluster memberships. (#2791)
- Change Encrypt to not re-encrypt password values. Fixes #2765.
- Correctly parse facet types for both JSON and RDF formats. Previously the parsing was handled differently depending on the input format. (#2797)
1.0.10 - 2018-11-05
Note: This release requires you to export and re-import data. We have changed the underlying storage format.
- The Alter endpoint can be protected by an auth token that is set on the Dgraph Alphas via the
--auth_token
option. This can help prevent accidental schema updates and drop all operations. (#2692) - Optimize has function (#2724)
- Expose the health check API via gRPC. (#2721)
- Dgraph is relicensed to Apache 2.0. (#2652)
- Breaking change. Rename Dgraph Server to Dgraph Alpha to clarify discussions of the Dgraph cluster. The top-level command
dgraph server
is nowdgraph alpha
. (#2667) - Prometheus metrics have been renamed for consistency for alpha, memory, and lru cache metrics. (#2636, #2670, #2714)
- The
dgraph-converter
command is available as the subcommanddgraph conv
. (#2635) - Updating protobuf version. (#2639)
- Allow checkpwd to be aliased (#2641)
- Better control excessive traffic to Dgraph (#2678)
- Export format now exports on the Alpha receiving the export request. The naming scheme of the export files has been simplified.
- Improvements to the
dgraph debug
tool that can be used to inspect the contents of the posting lists directory. - Bring in Badger updates (#2697)
- Make raft leader resume probing after snapshot crash (#2707)
- Breaking change: Create a lot simpler sorted uint64 codec (#2716)
- Increase the size of applyCh, to give Raft some breathing space. Otherwise, it fails to maintain quorum health.
- Zero should stream last commit update
- Send commit timestamps in order (#2687)
- Query blocks with the same name are no longer allowed.
- Fix out-of-range values in query parser. (#2690)
1.0.9 - 2018-10-02
- This version switches Badger Options to reasonable settings for p and w directories. This removes the need to expose
--badger.options
option and removes thenone
option from--badger.vlog
. (#2605) - Add support for ignoring parse errors in bulk loader with the option
--ignore_error
. (#2599) - Introduction of new command
dgraph cert
to simplify initial TLS setup. See TLS configuration docs for more info. - Add
expand(_forward_)
andexpand(_reverse_)
to GraphQL+- query language. If_forward_
is passed as an argument toexpand()
, all predicates at that level (minus any reverse predicates) are retrieved. If_reverse_
is passed as an argument toexpand()
, only the reverse predicates are retrieved.
- Rename intern pkg to pb (#2608)
- Remove LinRead map logic from Dgraph (#2570)
- Sanity length check for facets mostly.
- Make has function correct w.r.t. transactions (#2585)
- Increase the snapshot calculation interval, while decreasing the min number of entries required; so we take snapshots even when there's little activity.
- Convert an assert during DropAll to inf retry. (#2578)
- Fix a bug which caused all transactions to abort if
--expand_edge
was set to false. Fixes #2547. - Set the Applied index in Raft directly, so it does not pick up an index older than the snapshot. Ensure that it is in sync with the Applied watermark. Fixes #2581.
- Pull in Badger updates. This also fixes the Unable to find log file, retry error.
- Improve efficiency of readonly transactions by reusing the same read ts (#2604)
- Fix a bug in Raft.Run loop. (#2606)
- Fix a few issues regarding snapshot.Index for raft.Cfg.Applied. Do not overwrite any existing data when apply txn commits. Do not let CreateSnapshot fail.
- Consider all future versions of the key as well, when deciding whether to write a key or not during txn commits. Otherwise, we'll end up in an endless loop of trying to write a stale key but failing to do so.
- When testing inequality value vars with non-matching values, the response was sent as an error although it should return empty result if the query has correct syntax. (#2611)
- Switch traces to glogs in worker/export.go (#2614)
- Improve error handling for
dgraph live
for errors when processing RDF and schema files. (#2596) - Fix task conversion from bool to int that used uint32 (#2621)
- Fix
expand(_all_)
in recurse queries (#2600). - Add language aliases for broader support for full text indices. (#2602)
1.0.8 - 2018-08-29
- Introduce a new /assignIds HTTP endpoint in Zero, so users can allocate UIDs to nodes externally.
- Add a new tool which retrieves and increments a counter by 1 transactionally. This can be used to test the sanity of Dgraph cluster.
- This version introduces tracking of a few anonymous metrics to measure Dgraph adoption (#2554). These metrics do not contain any specifically identifying information about the user, so most users can leave it on. This can be turned off by setting
--telemetry=false
flag if needed in Dgraph Zero.
- Correctly handle a list of type geo in json (#2482, #2485).
- Fix the graceful shutdown of Dgraph server, so a single Ctrl+C would now suffice to stop it.
- Fix various deadlocks in Dgraph and set ConfState in Raft correctly (#2548).
- Significantly decrease the number of transaction aborts by using SPO as key for entity to entity connections. (#2556).
- Do not print error while sending Raft message by default. No action needs to be taken by the user, so it is set to V(3) level.
1.0.7 - 2018-08-10
- Set the
--conc
flag in live loader default to 1, as a temporary fix to avoid tons of aborts.
- All Oracle delta streams are applied via Raft proposals. This deals better with network partition like edge-cases. #2463
- Fix deadlock in 10-node cluster convergence. Fixes #2286.
- Make ReadIndex work safely. #2469
- Simplify snapshots, leader now calculates and proposes snapshots to the group. #2475.
- Make snapshot streaming more robust. #2487
- Consolidate all txn tracking logic into Oracle, remove inSnapshot logic. #2480.
- Bug fix in Badger, to stop panics when exporting.
- Use PreVote to avoid leader change on a node join.
- Fix a long-standing bug where
raft.Step
was being called via goroutines. It is now called serially. - Fix context deadline issues with proposals. #2501.
1.0.6 - 2018-06-20
- Support GraphQL vars as args for Regexp function. #2353
- Support GraphQL vars with filters. #2359
- Add JSON mutations to raw HTTP. #2396
- Fix math >= evaluation. #2365
- Avoid race condition between mutation commit and predicate move. #2392
- Ability to correctly distinguish float from int in JSON. #2398
- Remove dummy data key. #2401
- Serialize applying of Raft proposals. Concurrent application was complex and cause of multiple bugs. #2428.
- Improve Zero connections.
- Fix bugs in snapshot move, refactor code and improve performance significantly. #2440, #2442
- Add error handling to GetNoStore. Fixes #2373.
- Fix bugs in Bulk loader. #2449
- Posting List and Raft bug fixes. #2457
- Pull in Badger v1.5.2.
- Raft storage is now done entirely via Badger. This reduces RAM consumption by previously used MemoryStorage. #2433
- Trace how node.Run loop performs.
- Allow tweaking Badger options.
Note: This change modifies some flag names. In particular, Badger options
are now exposed via flags named with --badger.
prefix.
1.0.5 - 2018-04-20
- Option to have server side sequencing.
- Ability to specify whitelisted IP addresses for admin actions.
- Fix bug where predicate with string type sometimes appeared as
_:uidffffffffffffffff
in exports. - Validate facet value should be according to the facet type supplied when mutating using N-Quads (#2074).
- Use
time.Equal
function for comparing predicates withdatetime
(#2219). - Skip
BitEmptyPosting
forhas
queries. - Return error from query if we don't serve the group for the attribute instead of crashing (#2227).
- Send
maxpending
in connection state to server (#2236). - Fix bug in SP* transactions (#2148).
- Batch and send during snapshot to make snapshots faster.
- Don't skip schema keys while calculating tablets served.
- Fix the issue which could lead to snapshot getting blocked for a cluster with replicas (#2266).
- Dgraph server retries indefinitely to connect to Zero.
- Allow filtering and regex queries for list types with lossy tokenizers.
- Dgraph server segfault in worker package (#2322).
- Node crashes can lead to the loss of inserted triples (#2290).
- Cancel pending transactions for a predicate when predicate move is initiated.
- Move Go client to its own repo at
dgraph-io/dgo
. - Make
expand(_all_)
return value and uid facets. - Add an option to specify a
@lang
directive in schema for predicates with lang tags. - Flag
memory_mb
has been changed tolru_mb
. The default recommended value forlru_mb
is one-third of the total RAM available on the server.
1.0.4 - 2018-03-09
- Support for empty strings in query attributes.
- Support GraphQL vars in first, offset and after at root.
- Add support for query_edge_limit flag which can be used to limit number of results for shortest path, recurse queries.
- Make rebalance interval a flag in Zero.
- Return latency information for mutation operations.
- Support @upsert directive in schema.
- Issues with predicate deletion in a cluster.
- Handle errors from posting.Get.
- Correctly update commitTs while committing and startTs == deleteTs.
- Error handling in abort http handler.
- Get latest membership state from Zero if uid in mutation > maxLeaseId.
- Fix bug in Mutate where mutated keys were not filled.
- Update membership state if we can't find a leader while doing snapshot retrieval.
- Make snapshotting more frequent, also try aborting long pending transactions.
- Trim null character from end of strings before exporting.
- Sort facets after parsing RDF's using bulk loader.
- Fig bug in SyncIfDirty.
- Fix fatal error due to TxnTooBig error.
- Fix bug in dgraph live where some batches could be skipped on conflict error.
- Fix a bug related to expand(all) queries.
- Run cleanPredicate and proposeKeyValues sequentially.
- Serialize connect requests in Zero.
- Retry snapshot retrieval and join cluster indefinitely.
- Make client directory optional in dgraph live.
- Do snapshot in Zero in a goroutine so that Run loop isn't blocked.
1.0.3 - 2018-02-08
- Support for specifying blank nodes as part of JSON mutation.
dgraph version
command to check current version.curl
to Docker image.moveTablet
endpoint to Zero to allow initiating a predicate move.
- Out of range error while doing
eq
query. - Reduce
maxBackOffDelay
to 10 sec so that leader election is faster after restart. - Fix bugs with predicate move where some data was not sent and schema not loaded properly on replicas.
- Fix the total number of RDF's processed when live loader ends.
- Reindex data when schema is changed to list type to fix adding and deleting new data.
- Correctly upate uidMatrix when facetOrder is supplied.
- Inequality operator(
gt
andlt
) result for non lossy tokenizers.
--zero_addr
flag changed to--zero
fordgraph bulk
command.- Default ports for Zero have been changed
7080
=>5080
(grpc) and8080
=>6080
(http). - Update badger version and how purging is done to fix CPU spiking when Dgraph is idle.
- Print predicate name as part of the warning about long term for exact index.
1.0.2 - 2018-01-17
- Always return predicates of list type in an array.
- Edges without facet values are also returned when performing sort on facet.
- Don't derive schema while deleting edges.
- Better error checking when accessing posting lists. Fixes bug where parts of queries are sometimes omitted when system is under heavy load.
- Fix missing error check in mutation handling when using CommitNow (gave incorrect error).
- Fix bug where eq didn't work correctly for the fulltext index.
- Fix race because of which
replicas
flag was not respected. - Fix bug with key copy during predicate move.
- Fix race in merging keys keys from btree and badger iterator.
- Fix snapshot retrieval for new nodes by retrieving it before joining the cluster.
- Write schema at timestamp 1 in bulk loader.
- Fix unexpected meta fatal error.
- Fix groupby result incase the child being grouped open has multiple parents.
- Remove StartTs field from
api.Operation
. - Print error message in live loader if its not ErrAborted. Also, stop using membership state and instead use the address given by user.
- Only send keys corresponding to data that was mutated.
1.0.1 - 2017-12-20
- Wait for background goroutines to finish in posting package on shutdown.
- Return error if we cant parse the uid given in json input for mutations.
- Don't remove
_predicate_
schema from disk during drop all. - Fix panic in expand(all)
- Make sure at least one field is set while doing Alter.
1.0.0 - 2017-12-18
- Allow doing Mutate and Alter Operations using dgraph UI.
- Provide option to user to ignore conflicts on index keys.
- Language tag parsing in queries now accepts digits (in line with RDF parsing).
- Ensure that GraphQL variables are declared before use.
- Export now uses correct blank node syntax.
- Membership stream doesn't get stuck if node steps down as leader.
- Fix issue where sets were not being returned after doing a S P * deletion when part of same transaction.
- Empty string values are stored as it is and no strings have special meaning now.
- Correctly update order of facetMatrix when orderdesc/orderasc is applied.
- Allow live and bulk loaders to work with multiple zeros.
- Fix sorting with for predicates with multiple language tags.
- Fix alias edge cases in normalize directive.
- Allow reading new index key mutated as part of same transaction.
- Fix bug in value log GC in badger.
- SIGINT now forces a shutdown after 5 seconds when there are pending RPCs.
DropAttr
now also removes the schema for the attribute (previously it just removed the edges).- Tablet metadata is removed from zero after deletion of predicate.
- LRU size is changed dynamically now based on
max_memory_mb
- Call RunValueLogGC for every GB increase in size of value logs. Upgrade vendored version of Badger.
- Prohibit string to password schema change.
- Make purging less aggressive.
- Check if GraphQL Variable is defined before using.
0.9.3 - 2017-12-01
- Support for alias while asking for facets.
- Support for general configuration via environment variables and configuration files.
IgnoreIndexConflict
field in Txn which allows ignoring conflicts on index keys.
expand(_all_)
now correctly gives all language variants of a string.- Indexes now correctly maintained when deleting via
S * *
andS P *
. expand(_all_)
now follows reverse edges.- Don't return uid for nodes without any children when requested through debug flag.
- GraphQL variables for HTTP endpoints. Variable map can be set as a JSON
object using the
X-Dgraph-Vars
header. - Abort if CommitNow flag is set and the mutation fails.
- Live loader treats subjects/predicates that look like UIDs as existing nodes rather than new nodes.
- Fix bug in
@groupby
queries where predicate was converted to lower case in queries.
- Fix race condition in IsPeer. (#3432)
- When showing a predicate with list type, only values without a language tag are shown. To get the values of the predicate that are tagged with a language, query the predicate with that language explicitly.
- Validate the address advertised by dgraph nodes.
- Store/Restore peer map on snapshot.
- Fix rdfs per second reporting in live loader.
- Fix bug in lru eviction.
- Proto definitions are split into intern and api.
0.9.2 - 2017-11-20
- Support for removing dead node from quorum.
- Support for alias in groupby queries.
- Add DeleteEdges helper function for Go client.
- Dgraph tries to abort long running/abandoned transactions.
- Fix TLS flag parsing for Dgraph server and live loader.
- Reduce dependencies for Go client.
depth
andloop
arguments should be inside @recurse().- Base36 encode keys that are part of TxnContext and are sent to the client.
- Fix race condition in expand(all) queries.
- Fix (--ui) flag not being parsed properly.
0.9.1 - 2017-11-15
- Transaction HTTP API has been modified slightly.
start_ts
is now a path parameter instead of a header. For/commit
API, keys are passed in the body.
0.9.0 - 2017-11-14
The latest release has a lot of breaking changes but also brings powerful features like Transactions, support for CJK and custom tokenization.
- Dgraph adds support for distributed ACID transactions (a blog post is in works). Transactions can be done via the Go, Java or HTTP clients (JS client coming). See docs here.
- Support for Indexing via Custom tokenizers.
- Support for CJK languages in the full-text index.
- We have consolidated all the
server
,zero
,live/bulk-loader
binaries into a singledgraph
binary for convenience. Instructions for running Dgraph can be found in the docs. - For Dgraph server, Raft ids can be assigned automatically. A user can optionally still specify an ID, via
--idx
flag. --peer
flag which was used to specify another Zero instance’s IP address is being replaced by--zero
flag to indicate the address corresponds to Dgraph zero.port
,grpc_port
andworker_port
flags have been removed from Dgraph server and Zero. The ports are:
- Internal Grpc: 7080
- HTTP: 8080
- External Grpc: 9080 (Dgraph server only)
Users can set port_offset
flag, to modify these fixed ports.
- Queries, mutations and schema updates are done through separate endpoints. Queries can no longer have a mutation block.
- Queries can be done via
Query
Grpc endpoint (it was calledRun
before) or the/query
HTTP handler. _uid_
is renamed touid
. So queries now need to request foruid
. Example
{
bladerunner(func: eq(name@en, "Blade Runner")) {
uid
name@en
}
}
- Facets response structure has been modified and is a lot flatter. Facet key is now
predicate|facet_name
. Examples for Go client and HTTP. - Query latency is now returned as numeric (ns) instead of string.
Recurse
is now a directive. So queries withrecurse
keyword at root won't work anymore.- Syntax for
count
at root has changed. You need to ask forcount(uid)
, instead ofcount()
.
- Mutations can only be done via
Mutate
Grpc endpoint or via/mutate
HTTP handler. Mutate
Grpc endpoint can be used to set/ delete JSON, or set/ delete a list of N-Quads and set/ delete raw RDF strings.- Mutation blocks don't require the mutation keyword anymore. Here is an example of the new syntax.
{
set {
<name> <is> <something> .
<hometown> <is> "San Francisco" .
}
}
Upsert
directive and mutation variables go away. Both these functionalities can now easily be achieved via transactions.
<*> <pred> <*>
operations, that is deleting a predicate can't be done via mutations anymore. They need to be done viaAlter
Grpc endpoint or via the/alter
HTTP handler.- Drop all is now done via
Alter
. - Schema updates are now done via
Alter
Grpc endpoint or via/alter
HTTP handler.
Query
Grpc endpoint returns response in JSON underJson
field instead of protocol buffer.client.Unmarshal
method also goes away from the Go client. Users can usejson.Unmarshal
for unmarshalling the response.- Response for predicate of type
geo
can be unmarshalled into a struct. Example here. Node
andEdge
structs go away along with theSetValue...
methods. We recommend usingSetJson
andDeleteJson
fields to do mutations.- Examples of how to use transactions using the client can be found at https://dgraph.io/docs/clients/#go.
- Embedded dgraph goes away. We haven’t seen much usage of this feature. And it adds unnecessary maintenance overhead to the code.
- Dgraph live no longer stores external ids. And hence the
xid
flag is gone.