github.hscsec.cn/dgraph-io/dgraph@v1.1.0/CHANGELOG.md (about)

     1  # Changelog
     2  All notable changes to this project will be documented in this file.
     3  
     4  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
     5  and this project will adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) starting v1.0.0.
     6  
     7  ## [1.1.0] - 2019-09-03
     8  [1.1.0]: https://github.com/dgraph-io/dgraph/compare/v1.0.17...v1.1.0
     9  
    10  ### Changed
    11  
    12  - **Breaking changes**
    13  
    14    - **uid schema type**: The `uid` schema type now means a one-to-one relation,
    15      **not** a one-to-many relation as in Dgraph v1.1. To specify a one-to-many
    16      relation in Dgraph v1.0, use the `[uid]` schema type. ([#2895][], [#3173][], [#2921][])
    17  
    18    - **\_predicate\_** is removed from the query language.
    19  
    20    - **expand(\_all\_)** only works for nodes with attached type information via
    21      the type system. The type system is used to determine the predicates to expand
    22      out from a node. ([#3262][])
    23  
    24    - **S \* \* deletion** only works for nodes with attached type information via
    25      the type system. The type system is used to determine the predicates to
    26      delete from a node. For `S * *` deletions, only the predicates specified by
    27      the type are deleted.
    28  
    29    - **HTTP API**: The HTTP API has been updated to replace the custom HTTP headers
    30      with standard headers.
    31      - Change `/commit` endpoint to accept a list of preds for conflict detection. ([#3020][])
    32      - Remove custom HTTP Headers, cleanup API. ([#3365][])
    33        - The startTs path parameter is now a query parameter `startTs` for the
    34          `/query`, `/mutate`, and `/commit` endpoints.
    35        - Dgraph custom HTTP Headers `X-Dgraph-CommitNow`,
    36          `X-Dgraph-MutationType`, and `X-Dgraph-Vars` are now ignored.
    37      - Update HTTP API Content-Type headers. ([#3550][]) ([#3532][])
    38        - Queries over HTTP must have the Content-Type header `application/graphql+-` or `application/json`.
    39        - Queries over HTTP with GraphQL Variables (e.g., `query queryName($a: string) { ... }`) must use the query format via `application/json` to pass query variables.
    40        - Mutations over HTTP must have the Content-Type header set to `application/rdf` for RDF format or `application/json` for JSON format.
    41        - Commits over HTTP must have the `startTs` query parameter along with the JSON map of conflict keys and predicates.
    42  
    43    - **Datetime index**: Use UTC Hour, Day, Month, Year for datetime
    44      comparison. This is a bug fix that may result in different query results for
    45      existing queries involving the datetime index. ([#3251][])
    46  
    47    - **Blank node name generation for JSON mutations.** For JSON mutations that
    48      do not explicitly set the `"uid"` field, the blank name format has changed
    49      to contain randomly generated identifiers. This fixes a bug where two JSON
    50      objects within a single mutation are assigned the same blank node.
    51      ([#3795][])
    52  
    53  - Improve hash index. ([#2887][])
    54  - Use a stream connection for internal connection health checking. ([#2956][])
    55  - Use defer statements to release locks. ([#2962][])
    56  - VerifyUid should wait for membership information. ([#2974][])
    57  - Switching to perfect use case of sync.Map and remove the locks. ([#2976][])
    58  - Tablet move and group removal. ([#2880][])
    59  - Delete tablets which don't belong after tablet move. ([#3051][])
    60  - Alphas inform Zero about tablets in its postings directory when Alpha starts. ([3271f64e0][])
    61  - Prevent alphas from asking zero to serve tablets during queries. ([#3091][])
    62  - Put data before extensions in JSON response. ([#3194][])
    63  - Always parse language tag. ([#3243][])
    64  - Populate the StartTs for the commit gRPC call so that clients can double check the startTs still matches. ([#3228][])
    65  - Replace MD5 with SHA-256 in `dgraph cert ls`. ([#3254][])
    66  - Fix use of deprecated function `grpc.WithTimeout()`. ([#3253][])
    67  - Introduce multi-part posting lists. ([#3105][])
    68  - Fix format of the keys to support startUid for multi-part posting lists. ([#3310][])
    69  - Access groupi.gid atomically. ([#3402][])
    70  - Move Raft checkpoint key to w directory. ([#3444][])
    71  - Remove list.SetForDeletion method, remnant of the global LRU cache. ([#3481][])
    72  - Whitelist by hostname. ([#2953][])
    73  - Use CIDR format for whitelists instead of the previous range format.
    74  - Introduce Badger's DropPrefix API into Dgraph to simplify how predicate deletions and drop all work internally. ([#3060][])
    75  - Replace integer compression in UID Pack with groupvarint algorithm. ([#3527][], [#3650][])
    76  - Rebuild reverse index before count reverse. ([#3688][])
    77  - **Breaking change**: Use one atomic variable to generate blank node ids for
    78    json objects. This changes the format of automatically generated blank node
    79    names in JSON mutations. ([#3795][])
    80  - Print commit SHA256 when invoking "make install". ([#3786][])
    81  - Print SHA-256 checksum of Dgraph binary in the version section logs. ([#3828][])
    82  - Change anonynmous telemetry endpoint. ([#3872][])
    83  - Add support for API required for multiple mutations within a single call. ([#3839][])
    84  - Make `lru_mb` optional. ([#3898][])
    85  - Allow glog flags to be set via config file. ([#3062][], [#3077][])
    86  
    87  - Logging
    88    - Suppress logging before `flag.Parse` from glog. ([#2970][])
    89    - Move glog of missing value warning to verbosity level 3. ([#3092][])
    90    - Change time threshold for Raft.Ready warning logs. ([#3901][])
    91    - Add log prefix to stream used to rebuild indices. ([#3696][])
    92    - Add additional logs to show progress of reindexing operation. ([#3746][])
    93  
    94  - Error messages
    95    - Output the line and column number in schema parsing error messages. ([#2986][])
    96    - Improve error of empty block queries. ([#3015][])
    97    - Update flag description and error messaging related to `--query_edge_limit` flag. ([#2979][])
    98    - Reports line-column numbers for lexer/parser errors. ([#2914][])
    99    - Replace fmt.Errorf with errors.Errorf ([#3627][])
   100    - Return GraphQL compliant `"errors"` field for HTTP requests. ([#3728][])
   101  
   102  - Optimizations
   103    - Don't read posting lists from disk when mutating indices. ([#3695][], [#3713][])
   104    - Avoid preallocating uid slice. It was slowing down unpackBlock.
   105    - Reduce memory consumption in bulk loader. ([#3724][])
   106    - Reduce memory consumptino by reusing lexer for parsing RDF. ([#3762][])
   107    - Use the stream framework to rebuild indices. ([#3686][])
   108    - Use Stream Writer for full snapshot transfer. ([#3442][])
   109    - Reuse postings and avoid fmt.Sprintf to reduce mem allocations ([#3767][])
   110    - Speed up JSON chunker. ([#3825][])
   111    - Various optimizations for Geo queries. ([#3805][])
   112  
   113  - Update various govendor dependencies
   114    - Add OpenCensus deps to vendor using govendor. ([#2989][])
   115    - Govendor in latest dgo. ([#3078][])
   116    - Vendor in the Jaeger and prometheus exporters from their own repos ([#3322][])
   117    - Vendor in Shopify/sarama to use its Kafka clients. ([#3523][])
   118    - Update dgo dependency in vendor. ([#3412][])
   119    - Update vendored dependencies. ([#3357][])
   120    - Bring in latest changes from badger and fix broken API calls. ([#3502][])
   121    - Vendor badger with the latest changes. ([#3606][])
   122    - Vendor in badger, dgo and regenerate protobufs. ([#3747][])
   123    - Vendor latest badger. ([#3784][])
   124    - **Breaking change**: Vendor in latest Badger with data-format changes. ([#3906][])
   125  
   126  Dgraph Debug Tool
   127  
   128  - When looking up a key, print if it's a multi-part list and its splits. ([#3311][])
   129  - Diagnose Raft WAL via debug tool. ([#3319][])
   130  - Allow truncating Raft logs via debug tool. ([#3345][])
   131  - Allow modifying Raft snapshot and hardstate in debug tool. ([#3364][])
   132  
   133  Dgraph Live Loader / Dgraph Bulk Loader
   134  
   135  - Add `--format` flag to Dgraph Live Loader and Dgraph Bulk Loader to specify input data format type. ([#2991][])
   136  - Update live loader flag help text. ([#3278][])
   137  - Improve reporting of aborts and retries during live load. ([#3313][])
   138  - Remove xidmap storage on disk from bulk loader.
   139  - Optimize XidtoUID map used by live and bulk loader.
   140  - 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][])
   141  - Use StreamWriter in bulk loader. ([#3542][]) ([#3635][], [#3649][])
   142  - Add timestamps during bulk/live load. ([#3287][])
   143  - Use initial schema during bulk load. ([#3333][])
   144  - Adding the verbose flag to suppress excessive logging in live loader. ([#3560][])
   145  - Fix user meta of schema and type entries in bulk loader. ([#3628][])
   146  - Check that all data files passed to bulk loader exist. ([#3681][])
   147  - Handle non-list UIDs predicates in bulk loader. [#3659][]
   148  - Use sync.Pool for MapEntries in bulk loader. ([#3763][], 802ec4c39)
   149  
   150  Dgraph Increment Tool
   151  
   152  - Add server-side and client-side latency numbers to increment tool. ([#3422][])
   153  - Add `--retries` flag to specify number of retry requests to set up a gRPC connection. ([#3584][])
   154  - Add TLS support to `dgraph increment` command. ([#3257][])
   155  
   156  ### Added
   157  
   158  - Add bash and zsh shell completion. See `dgraph completion bash --help` or `dgraph completion zsh --help` for usage instructions. ([#3084][])
   159  - Add support for ECDSA in dgraph cert. ([#3269][])
   160  - Add support for JSON export via `/admin/export?format=json`. ([#3309][])
   161  - Add the SQL-to-Dgraph migration tool `dgraph migrate`. ([#3295][])
   162  - Add `assign_timestamp_ns` latency field to fix encoding_ns calculation. Fixes [#3668][]. ([#3692][], [#3711][])
   163  - Adding draining mode to Alpha. ([#3880][])
   164  
   165  
   166  - Enterprise features
   167    - Support applying a license using /enterpriseLicense endpoint in Zero. ([#3824][])
   168    - Don't apply license state for oss builds. ([#3847][])
   169  
   170  Query
   171  
   172  - Type system
   173    - Add `type` function to query types. ([#2933][])
   174    - Parser for type declaration. ([#2950][])
   175    - Add `@type` directive to enforce type constraints. ([#3003][])
   176    - Store and query types. ([#3018][])
   177    - Rename type predicate to dgraph.type ([#3204][])
   178    - Change definition of dgraph.type pred to [string]. ([#3235][])
   179    - Use type when available to resolve expand predicates. ([#3214][])
   180    - Include types in results of export operation. ([#3493][])
   181    - Support types in the bulk loader. ([#3506][])
   182  
   183  - Add the `upsert` block to send "query-mutate-commit" updates as a single
   184    call to Dgraph. This is especially helpful to do upserts with the `@upsert`
   185    schema directive. Addresses [#3059][]. ([#3412][])
   186    - Add support for conditional mutation in Upsert Block. ([#3612][])
   187  
   188  - Allow querying all lang values of a predicate. ([#2910][])
   189  - Allow `regexp()` in `@filter` even for predicates without the trigram index. ([#2913][])
   190  - Add `minweight` and `maxweight` arguments to k-shortest path algorithm. ([#2915][])
   191  - Allow variable assignment of `count(uid)`. ([#2947][])
   192  - Reserved predicates
   193    - During startup, don't upsert initial schema if it already exists. ([#3374][])
   194    - Use all reserved predicates in IsReservedPredicateChanged. ([#3531][])
   195  - Fuzzy match support via the `match()` function using the trigram index. ([#2916][])
   196  - Support for GraphQL variables in arrays. ([#2981][])
   197  - Show total weight of path in shortest path algorithm. ([#2954][])
   198  - Rename dgraph `--dgraph` option to `--alpha`. ([#3273][])
   199  - Support uid variables in `from` and `to` arguments for shortest path query. Fixes [#1243][]. ([#3710][])
   200  
   201  - Add support for `len()` function in query language. The `len()` function is
   202    only used in the `@if` directive for upsert blocks. `len(v)` It returns the
   203    length of a variable `v`. ([#3756][], [#3769][])
   204  
   205  Mutation
   206  
   207  - Add ability to delete triples of scalar non-list predicates. ([#2899][], [#3843][])
   208  - Allow deletion of specific language. ([#3242][])
   209  
   210  Alter
   211  
   212  - Add DropData operation to delete data without deleting schema. ([#3271][])
   213  
   214  Schema
   215  
   216  - **Breaking change**: Add ability to set schema to a single UID schema. Fixes [#2511][]. ([#2895][], [#3173][], [#2921][])
   217    - If you wish to create one-to-one edges, use the schema type `uid`. The `uid` schema type in v1.0.x must be changed to `[uid]` to denote a one-to-many uid edge.
   218  - Prevent dropping or altering reserved predicates. ([#2967][]) ([#2997][])
   219    - Reserved predicate names start with `dgraph.` .
   220  - Support comments in schema. ([#3133][])
   221  - Reserved predicates
   222    - Reserved predicates are prefixed with "dgraph.", e.g., `dgraph.type`.
   223    - Ensure reserved predicates cannot be moved. ([#3137][])
   224    - Allow schema updates to reserved preds if the update is the same. ([#3143][])
   225  
   226  Enterprise feature: Access Control Lists (ACLs)
   227  
   228  Enterprise ACLs provide read/write/admin permissions to defined users and groups
   229  at the predicate-level.
   230  
   231  - Enforcing ACLs for query, mutation and alter requests. ([#2862][])
   232  - Don't create ACL predicates when the ACL feature is not turned on. ([#2924][])
   233  - Add HTTP API for ACL commands, pinning ACL predicates to group 1. ([#2951][])
   234  - ACL: Using type to distinguish user and group. ([#3124][])
   235  - REVIEWTODO: Fix the aclCache race condition by initializing it on definition ([#3141][])
   236  -  Reduce the value of ACL TTLs to reduce the test running time. ([#3164][])
   237    - Adds `--acl_cache_ttl` flag.
   238  - Fix panic when deleting a user or group that does not exist. ([#3218][])
   239  - ACL over TLS. ([#3207][])
   240  - Using read-only queries for ACL refreshes. ([#3256][])
   241  - When HttpLogin response context error, unmarshal and return the response context. ([#3275][])
   242  - Refactor: avoid double parsing of mutation string in ACL. ([#3494][])
   243  - Security fix: prevent the HmacSecret from being logged. ([#3734][])
   244  
   245  Enterprise feature: Backups
   246  
   247  Enterprise backups are Dgraph backups in a binary format designed to be restored
   248  to a cluster of the same version and configuration. Backups can be stored on
   249  local disk or stored directly to the cloud via AWS S3 or any Minio-compatible
   250  backend.
   251  
   252  - Fixed bug with backup fan-out code. ([#2973][])
   253  - Incremental backups / partial restore. ([#2963][])
   254  - Turn obsolete error into warning. ([#3172][])
   255  - Add `dgraph lsbackup` command to list backups. ([#3219][])
   256  - Add option to override credentials and use public buckets. ([#3227][])
   257  - Add field to backup requests to force a full backup. ([#3387][])
   258  - More refactoring of backup code. ([#3515][])
   259  - Use gzip compression in backups. ([#3536][])
   260  - Allow partial restores and restoring different backup series. ([#3547][])
   261  - Store group to predicate mapping as part of the backup manifest. ([#3570][])
   262  - Only backup the predicates belonging to a group. ([#3621][])
   263  - Introduce backup data formats for cross-version compatibility. ([#3575][])
   264  -  Add series and backup number information to manifest. ([#3559][])
   265  - Use backwards-compatible formats during backup ([#3629][])
   266  - Use manifest to only restore preds assigned to each group. ([#3648][])
   267  - Fixes the toBackupList function by removing the loop. ([#3869][])
   268  - Add field to backup requests to force a full backup. ([#3387][])
   269  
   270  Dgraph Zero
   271  
   272  - Zero server shutdown endpoint `/shutdown` at Zero's HTTP port. ([#2928][])
   273  
   274  Dgraph Live Loader
   275  
   276  - Support live loading JSON files or stdin streams. ([#2961][]) ([#3106][])
   277  - Support live loading N-Quads from stdin streams. ([#3266][])
   278  
   279  Dgraph Bulk Loader
   280  
   281  - Add `--replace_out` option to bulk command. ([#3089][])
   282  
   283  Tracing
   284  
   285  - Support exporting tracing data to oc_agent, then to datadog agent. ([#3398][])
   286  - Measure latency of Alpha's Raft loop. (63f545568)
   287  
   288  ### Removed
   289  
   290  - **Breaking change**: Remove `_predicate_` predicate within queries. ([#3262][])
   291  - Remove `--debug_mode` option. ([#3441][])
   292  
   293  - Remove deprecated and unused IgnoreIndexConflict field in mutations. This functionality is superceded by the `@upsert` schema directive since v1.0.4. ([#3854][])
   294  
   295  - Enterprise features
   296    - Remove `--enterprise_feature` flag. Enterprise license can be applied via /enterpriseLicense endpoint in Zero. ([#3824][])
   297  
   298  ### Fixed
   299  
   300  - Fix `anyofterms()` query for facets from mutations in JSON format. Fixes [#2867][]. ([#2885][])
   301  - Fixes error found by gofuzz. ([#2914][])
   302  - Fix int/float conversion to bool. ([#2893][])
   303  - Handling of empty string to datetime conversion. ([#2891][])
   304  - Fix schema export with special chars. Fixes [#2925][]. ([#2929][])
   305  
   306  - Default value should not be nil. ([#2995][])
   307  - Sanity check for empty variables. ([#3021][])
   308  - Panic due to nil maps. ([#3042][])
   309  - ValidateAddress should return true if IPv6 is valid. ([#3027][])
   310  - Throw error when @recurse queries contain nested fields. ([#3182][])
   311  - Fix panic in fillVars. ([#3505][])
   312  
   313  - Fix race condition in numShutDownSig in Alpha. ([#3402][])
   314  - Fix race condition in oracle.go. ([#3417][])
   315  - Fix tautological condition in zero.go. ([#3516][])
   316  - Correctness fix: Block before proposing mutations and improve conflict key generation. Fixes [#3528][]. ([#3565][])
   317  
   318  - Reject requests with predicates larger than the max size allowed (longer than 65,535 characters). ([#3052][])
   319  - Upgrade raft lib and fix group checksum. ([#3085][])
   320  - Check that uid is not used as function attribute. ([#3112][])
   321  - Do not retrieve facets when max recurse depth has been reached. ([#3190][])
   322  - Remove obsolete error message. ([#3172][])
   323  - Remove an unnecessary warning log. ([#3216][])
   324  - Fix bug triggered by nested expand predicates. ([#3205][])
   325  - Empty datetime will fail when returning results. ([#3169][])
   326  - Fix bug with pagination using `after`. ([#3149][])
   327  - Fix tablet error handling. ([#3323][])
   328  
   329  - Fix crash when trying to use shortest path with a password predicate. Fixes [#3657][]. ([#3662][])
   330  - Fix crash for `@groupby` queries. Fixes [#3642][]. ([#3670][])
   331  - Fix crash when calling drop all during a query. Fixes [#3645][]. ([#3664][])
   332  - Fix data races in queries. Fixes [#3685][]. ([#3749][])
   333  - Bulk Loader: Fix memory usage by JSON parser. ([#3794][])
   334  - Fixing issues in export. Fixes #3610. ([#3682][])
   335  
   336  - Bug Fix: Use txn.Get in addReverseMutation if needed for count index ([#3874][])
   337  - Bug Fix: Remove Check2 at writeResponse. ([#3900][])
   338  - Bug Fix: Do not call posting.List.release.
   339  
   340  [#3251]: https://github.com/dgraph-io/dgraph/issues/3251
   341  [#3020]: https://github.com/dgraph-io/dgraph/issues/3020
   342  [#3365]: https://github.com/dgraph-io/dgraph/issues/3365
   343  [#3550]: https://github.com/dgraph-io/dgraph/issues/3550
   344  [#3532]: https://github.com/dgraph-io/dgraph/issues/3532
   345  [#3526]: https://github.com/dgraph-io/dgraph/issues/3526
   346  [#3528]: https://github.com/dgraph-io/dgraph/issues/3528
   347  [#3565]: https://github.com/dgraph-io/dgraph/issues/3565
   348  [#2914]: https://github.com/dgraph-io/dgraph/issues/2914
   349  [#2887]: https://github.com/dgraph-io/dgraph/issues/2887
   350  [#2956]: https://github.com/dgraph-io/dgraph/issues/2956
   351  [#2962]: https://github.com/dgraph-io/dgraph/issues/2962
   352  [#2970]: https://github.com/dgraph-io/dgraph/issues/2970
   353  [#2974]: https://github.com/dgraph-io/dgraph/issues/2974
   354  [#2976]: https://github.com/dgraph-io/dgraph/issues/2976
   355  [#2989]: https://github.com/dgraph-io/dgraph/issues/2989
   356  [#3078]: https://github.com/dgraph-io/dgraph/issues/3078
   357  [#3322]: https://github.com/dgraph-io/dgraph/issues/3322
   358  [#3523]: https://github.com/dgraph-io/dgraph/issues/3523
   359  [#3412]: https://github.com/dgraph-io/dgraph/issues/3412
   360  [#3357]: https://github.com/dgraph-io/dgraph/issues/3357
   361  [#3502]: https://github.com/dgraph-io/dgraph/issues/3502
   362  [#3606]: https://github.com/dgraph-io/dgraph/issues/3606
   363  [#3784]: https://github.com/dgraph-io/dgraph/issues/3784
   364  [#3906]: https://github.com/dgraph-io/dgraph/issues/3906
   365  [#2986]: https://github.com/dgraph-io/dgraph/issues/2986
   366  [#3015]: https://github.com/dgraph-io/dgraph/issues/3015
   367  [#2979]: https://github.com/dgraph-io/dgraph/issues/2979
   368  [#2880]: https://github.com/dgraph-io/dgraph/issues/2880
   369  [#3051]: https://github.com/dgraph-io/dgraph/issues/3051
   370  [#3092]: https://github.com/dgraph-io/dgraph/issues/3092
   371  [#3091]: https://github.com/dgraph-io/dgraph/issues/3091
   372  [#3194]: https://github.com/dgraph-io/dgraph/issues/3194
   373  [#3243]: https://github.com/dgraph-io/dgraph/issues/3243
   374  [#3228]: https://github.com/dgraph-io/dgraph/issues/3228
   375  [#3254]: https://github.com/dgraph-io/dgraph/issues/3254
   376  [#3274]: https://github.com/dgraph-io/dgraph/issues/3274
   377  [#3253]: https://github.com/dgraph-io/dgraph/issues/3253
   378  [#3105]: https://github.com/dgraph-io/dgraph/issues/3105
   379  [#3310]: https://github.com/dgraph-io/dgraph/issues/3310
   380  [#3402]: https://github.com/dgraph-io/dgraph/issues/3402
   381  [#3442]: https://github.com/dgraph-io/dgraph/issues/3442
   382  [#3387]: https://github.com/dgraph-io/dgraph/issues/3387
   383  [#3444]: https://github.com/dgraph-io/dgraph/issues/3444
   384  [#3481]: https://github.com/dgraph-io/dgraph/issues/3481
   385  [#2953]: https://github.com/dgraph-io/dgraph/issues/2953
   386  [#3060]: https://github.com/dgraph-io/dgraph/issues/3060
   387  [#3527]: https://github.com/dgraph-io/dgraph/issues/3527
   388  [#3650]: https://github.com/dgraph-io/dgraph/issues/3650
   389  [#3627]: https://github.com/dgraph-io/dgraph/issues/3627
   390  [#3686]: https://github.com/dgraph-io/dgraph/issues/3686
   391  [#3688]: https://github.com/dgraph-io/dgraph/issues/3688
   392  [#3696]: https://github.com/dgraph-io/dgraph/issues/3696
   393  [#3682]: https://github.com/dgraph-io/dgraph/issues/3682
   394  [#3695]: https://github.com/dgraph-io/dgraph/issues/3695
   395  [#3713]: https://github.com/dgraph-io/dgraph/issues/3713
   396  [#3724]: https://github.com/dgraph-io/dgraph/issues/3724
   397  [#3747]: https://github.com/dgraph-io/dgraph/issues/3747
   398  [#3762]: https://github.com/dgraph-io/dgraph/issues/3762
   399  [#3767]: https://github.com/dgraph-io/dgraph/issues/3767
   400  [#3805]: https://github.com/dgraph-io/dgraph/issues/3805
   401  [#3795]: https://github.com/dgraph-io/dgraph/issues/3795
   402  [#3825]: https://github.com/dgraph-io/dgraph/issues/3825
   403  [#3746]: https://github.com/dgraph-io/dgraph/issues/3746
   404  [#3786]: https://github.com/dgraph-io/dgraph/issues/3786
   405  [#3828]: https://github.com/dgraph-io/dgraph/issues/3828
   406  [#3872]: https://github.com/dgraph-io/dgraph/issues/3872
   407  [#3839]: https://github.com/dgraph-io/dgraph/issues/3839
   408  [#3898]: https://github.com/dgraph-io/dgraph/issues/3898
   409  [#3901]: https://github.com/dgraph-io/dgraph/issues/3901
   410  [#3311]: https://github.com/dgraph-io/dgraph/issues/3311
   411  [#3319]: https://github.com/dgraph-io/dgraph/issues/3319
   412  [#3345]: https://github.com/dgraph-io/dgraph/issues/3345
   413  [#3364]: https://github.com/dgraph-io/dgraph/issues/3364
   414  [#2991]: https://github.com/dgraph-io/dgraph/issues/2991
   415  [#3278]: https://github.com/dgraph-io/dgraph/issues/3278
   416  [#3313]: https://github.com/dgraph-io/dgraph/issues/3313
   417  [#2998]: https://github.com/dgraph-io/dgraph/issues/2998
   418  [#3004]: https://github.com/dgraph-io/dgraph/issues/3004
   419  [#3045]: https://github.com/dgraph-io/dgraph/issues/3045
   420  [#3542]: https://github.com/dgraph-io/dgraph/issues/3542
   421  [#3635]: https://github.com/dgraph-io/dgraph/issues/3635
   422  [#3649]: https://github.com/dgraph-io/dgraph/issues/3649
   423  [#3287]: https://github.com/dgraph-io/dgraph/issues/3287
   424  [#3333]: https://github.com/dgraph-io/dgraph/issues/3333
   425  [#3560]: https://github.com/dgraph-io/dgraph/issues/3560
   426  [#3613]: https://github.com/dgraph-io/dgraph/issues/3613
   427  [#3560]: https://github.com/dgraph-io/dgraph/issues/3560
   428  [#3628]: https://github.com/dgraph-io/dgraph/issues/3628
   429  [#3681]: https://github.com/dgraph-io/dgraph/issues/3681
   430  [#3659]: https://github.com/dgraph-io/dgraph/issues/3659
   431  [#3763]: https://github.com/dgraph-io/dgraph/issues/3763
   432  [#3728]: https://github.com/dgraph-io/dgraph/issues/3728
   433  [#3422]: https://github.com/dgraph-io/dgraph/issues/3422
   434  [#3584]: https://github.com/dgraph-io/dgraph/issues/3584
   435  [#3084]: https://github.com/dgraph-io/dgraph/issues/3084
   436  [#3257]: https://github.com/dgraph-io/dgraph/issues/3257
   437  [#3269]: https://github.com/dgraph-io/dgraph/issues/3269
   438  [#3309]: https://github.com/dgraph-io/dgraph/issues/3309
   439  [#3295]: https://github.com/dgraph-io/dgraph/issues/3295
   440  [#3398]: https://github.com/dgraph-io/dgraph/issues/3398
   441  [#3824]: https://github.com/dgraph-io/dgraph/issues/3824
   442  [#3847]: https://github.com/dgraph-io/dgraph/issues/3847
   443  [#3880]: https://github.com/dgraph-io/dgraph/issues/3880
   444  [#2933]: https://github.com/dgraph-io/dgraph/issues/2933
   445  [#2950]: https://github.com/dgraph-io/dgraph/issues/2950
   446  [#3003]: https://github.com/dgraph-io/dgraph/issues/3003
   447  [#3018]: https://github.com/dgraph-io/dgraph/issues/3018
   448  [#3204]: https://github.com/dgraph-io/dgraph/issues/3204
   449  [#3235]: https://github.com/dgraph-io/dgraph/issues/3235
   450  [#3214]: https://github.com/dgraph-io/dgraph/issues/3214
   451  [#3493]: https://github.com/dgraph-io/dgraph/issues/3493
   452  [#3506]: https://github.com/dgraph-io/dgraph/issues/3506
   453  [#3059]: https://github.com/dgraph-io/dgraph/issues/3059
   454  [#3412]: https://github.com/dgraph-io/dgraph/issues/3412
   455  [#3612]: https://github.com/dgraph-io/dgraph/issues/3612
   456  [#2910]: https://github.com/dgraph-io/dgraph/issues/2910
   457  [#2913]: https://github.com/dgraph-io/dgraph/issues/2913
   458  [#2915]: https://github.com/dgraph-io/dgraph/issues/2915
   459  [#2947]: https://github.com/dgraph-io/dgraph/issues/2947
   460  [#3374]: https://github.com/dgraph-io/dgraph/issues/3374
   461  [#3531]: https://github.com/dgraph-io/dgraph/issues/3531
   462  [#2916]: https://github.com/dgraph-io/dgraph/issues/2916
   463  [#2981]: https://github.com/dgraph-io/dgraph/issues/2981
   464  [#2954]: https://github.com/dgraph-io/dgraph/issues/2954
   465  [#3273]: https://github.com/dgraph-io/dgraph/issues/3273
   466  [#1243]: https://github.com/dgraph-io/dgraph/issues/1243
   467  [#3710]: https://github.com/dgraph-io/dgraph/issues/3710
   468  [#3756]: https://github.com/dgraph-io/dgraph/issues/3756
   469  [#3769]: https://github.com/dgraph-io/dgraph/issues/3769
   470  [#2899]: https://github.com/dgraph-io/dgraph/issues/2899
   471  [#3843]: https://github.com/dgraph-io/dgraph/issues/3843
   472  [#3242]: https://github.com/dgraph-io/dgraph/issues/3242
   473  [#3271]: https://github.com/dgraph-io/dgraph/issues/3271
   474  [#2511]: https://github.com/dgraph-io/dgraph/issues/2511
   475  [#2895]: https://github.com/dgraph-io/dgraph/issues/2895
   476  [#3173]: https://github.com/dgraph-io/dgraph/issues/3173
   477  [#2921]: https://github.com/dgraph-io/dgraph/issues/2921
   478  [#2967]: https://github.com/dgraph-io/dgraph/issues/2967
   479  [#2997]: https://github.com/dgraph-io/dgraph/issues/2997
   480  [#3133]: https://github.com/dgraph-io/dgraph/issues/3133
   481  [#2862]: https://github.com/dgraph-io/dgraph/issues/2862
   482  [#2924]: https://github.com/dgraph-io/dgraph/issues/2924
   483  [#2951]: https://github.com/dgraph-io/dgraph/issues/2951
   484  [#3124]: https://github.com/dgraph-io/dgraph/issues/3124
   485  [#3141]: https://github.com/dgraph-io/dgraph/issues/3141
   486  [#3164]: https://github.com/dgraph-io/dgraph/issues/3164
   487  [#3218]: https://github.com/dgraph-io/dgraph/issues/3218
   488  [#3207]: https://github.com/dgraph-io/dgraph/issues/3207
   489  [#3256]: https://github.com/dgraph-io/dgraph/issues/3256
   490  [#3275]: https://github.com/dgraph-io/dgraph/issues/3275
   491  [#3494]: https://github.com/dgraph-io/dgraph/issues/3494
   492  [#3734]: https://github.com/dgraph-io/dgraph/issues/3734
   493  [#2973]: https://github.com/dgraph-io/dgraph/issues/2973
   494  [#2963]: https://github.com/dgraph-io/dgraph/issues/2963
   495  [#3172]: https://github.com/dgraph-io/dgraph/issues/3172
   496  [#3219]: https://github.com/dgraph-io/dgraph/issues/3219
   497  [#3227]: https://github.com/dgraph-io/dgraph/issues/3227
   498  [#3387]: https://github.com/dgraph-io/dgraph/issues/3387
   499  [#3515]: https://github.com/dgraph-io/dgraph/issues/3515
   500  [#3536]: https://github.com/dgraph-io/dgraph/issues/3536
   501  [#3547]: https://github.com/dgraph-io/dgraph/issues/3547
   502  [#3570]: https://github.com/dgraph-io/dgraph/issues/3570
   503  [#3621]: https://github.com/dgraph-io/dgraph/issues/3621
   504  [#3575]: https://github.com/dgraph-io/dgraph/issues/3575
   505  [#3559]: https://github.com/dgraph-io/dgraph/issues/3559
   506  [#3629]: https://github.com/dgraph-io/dgraph/issues/3629
   507  [#3648]: https://github.com/dgraph-io/dgraph/issues/3648
   508  [#3869]: https://github.com/dgraph-io/dgraph/issues/3869
   509  [#2928]: https://github.com/dgraph-io/dgraph/issues/2928
   510  [#2961]: https://github.com/dgraph-io/dgraph/issues/2961
   511  [#3106]: https://github.com/dgraph-io/dgraph/issues/3106
   512  [#3266]: https://github.com/dgraph-io/dgraph/issues/3266
   513  [#3089]: https://github.com/dgraph-io/dgraph/issues/3089
   514  [#3262]: https://github.com/dgraph-io/dgraph/issues/3262
   515  [#3441]: https://github.com/dgraph-io/dgraph/issues/3441
   516  [#3854]: https://github.com/dgraph-io/dgraph/issues/3854
   517  [#3824]: https://github.com/dgraph-io/dgraph/issues/3824
   518  [#2867]: https://github.com/dgraph-io/dgraph/issues/2867
   519  [#2885]: https://github.com/dgraph-io/dgraph/issues/2885
   520  [#2914]: https://github.com/dgraph-io/dgraph/issues/2914
   521  [#2893]: https://github.com/dgraph-io/dgraph/issues/2893
   522  [#2891]: https://github.com/dgraph-io/dgraph/issues/2891
   523  [#2925]: https://github.com/dgraph-io/dgraph/issues/2925
   524  [#2929]: https://github.com/dgraph-io/dgraph/issues/2929
   525  [#2995]: https://github.com/dgraph-io/dgraph/issues/2995
   526  [#3021]: https://github.com/dgraph-io/dgraph/issues/3021
   527  [#3042]: https://github.com/dgraph-io/dgraph/issues/3042
   528  [#3027]: https://github.com/dgraph-io/dgraph/issues/3027
   529  [#3182]: https://github.com/dgraph-io/dgraph/issues/3182
   530  [#3505]: https://github.com/dgraph-io/dgraph/issues/3505
   531  [#3402]: https://github.com/dgraph-io/dgraph/issues/3402
   532  [#3417]: https://github.com/dgraph-io/dgraph/issues/3417
   533  [#3516]: https://github.com/dgraph-io/dgraph/issues/3516
   534  [#3052]: https://github.com/dgraph-io/dgraph/issues/3052
   535  [#3062]: https://github.com/dgraph-io/dgraph/issues/3062
   536  [#3077]: https://github.com/dgraph-io/dgraph/issues/3077
   537  [#3085]: https://github.com/dgraph-io/dgraph/issues/3085
   538  [#3112]: https://github.com/dgraph-io/dgraph/issues/3112
   539  [#3190]: https://github.com/dgraph-io/dgraph/issues/3190
   540  [#3172]: https://github.com/dgraph-io/dgraph/issues/3172
   541  [#3216]: https://github.com/dgraph-io/dgraph/issues/3216
   542  [#3205]: https://github.com/dgraph-io/dgraph/issues/3205
   543  [#3169]: https://github.com/dgraph-io/dgraph/issues/3169
   544  [#3149]: https://github.com/dgraph-io/dgraph/issues/3149
   545  [#3323]: https://github.com/dgraph-io/dgraph/issues/3323
   546  [#3137]: https://github.com/dgraph-io/dgraph/issues/3137
   547  [#3143]: https://github.com/dgraph-io/dgraph/issues/3143
   548  [#3657]: https://github.com/dgraph-io/dgraph/issues/3657
   549  [#3662]: https://github.com/dgraph-io/dgraph/issues/3662
   550  [#3642]: https://github.com/dgraph-io/dgraph/issues/3642
   551  [#3670]: https://github.com/dgraph-io/dgraph/issues/3670
   552  [#3645]: https://github.com/dgraph-io/dgraph/issues/3645
   553  [#3664]: https://github.com/dgraph-io/dgraph/issues/3664
   554  [#3668]: https://github.com/dgraph-io/dgraph/issues/3668
   555  [#3692]: https://github.com/dgraph-io/dgraph/issues/3692
   556  [#3711]: https://github.com/dgraph-io/dgraph/issues/3711
   557  [#3685]: https://github.com/dgraph-io/dgraph/issues/3685
   558  [#3749]: https://github.com/dgraph-io/dgraph/issues/3749
   559  [#3794]: https://github.com/dgraph-io/dgraph/issues/3794
   560  [#3874]: https://github.com/dgraph-io/dgraph/issues/3874
   561  [#3900]: https://github.com/dgraph-io/dgraph/issues/3900
   562  [3271f64e0]: https://github.com/dgraph-io/dgraph/commit/3271f64e0
   563  [63f545568]: https://github.com/dgraph-io/dgraph/commit/63f545568
   564  [18277872f]: https://github.com/dgraph-io/dgraph/commit/18277872f
   565  
   566  ## [1.0.17] - 2019-08-30
   567  [1.0.17]: https://github.com/dgraph-io/dgraph/compare/v1.0.16...v1.0.17
   568  
   569  ### Changed
   570  
   571  - Increase max trace logs per span in Alpha. ([#3886][])
   572  - Include line and column numbers in lexer errors. Fixes [#2900][]. ([#3772][])
   573  - Release binaries built with Go 1.12.7.
   574  
   575  ### Fixed
   576  
   577  - Decrease rate of Raft heartbeat messages. ([#3708][], [#3753][])
   578  - Fix bug when exporting a predicate name to the schema. Fixes [#3699][]. ([#3701][])
   579  - Return error instead of asserting in handleCompareFunction. ([#3665][])
   580  - Fix bug where aliases in a query incorrectly alias the response depending on alias order. Fixes [#3814][]. ([#3837][])
   581  - Fix for panic in fillGroupedVars. Fixes [#3768][]. ([#3781][])
   582  
   583  [#3886]: https://github.com/dgraph-io/dgraph/issues/3886
   584  [#2900]: https://github.com/dgraph-io/dgraph/issues/2900
   585  [#3772]: https://github.com/dgraph-io/dgraph/issues/3772
   586  [#3708]: https://github.com/dgraph-io/dgraph/issues/3708
   587  [#3753]: https://github.com/dgraph-io/dgraph/issues/3753
   588  [#3699]: https://github.com/dgraph-io/dgraph/issues/3699
   589  [#3701]: https://github.com/dgraph-io/dgraph/issues/3701
   590  [#3665]: https://github.com/dgraph-io/dgraph/issues/3665
   591  [#3814]: https://github.com/dgraph-io/dgraph/issues/3814
   592  [#3837]: https://github.com/dgraph-io/dgraph/issues/3837
   593  [#3768]: https://github.com/dgraph-io/dgraph/issues/3768
   594  [#3781]: https://github.com/dgraph-io/dgraph/issues/3781
   595  
   596  ## [1.0.16] - 2019-07-11
   597  [1.0.16]: https://github.com/dgraph-io/dgraph/compare/v1.0.15...v1.0.16
   598  
   599  ### Changed
   600  
   601  - Vendor in prometheus/client_golang/prometheus v0.9.4. ([#3653][])
   602  
   603  ### Fixed
   604  
   605  - Fix panic with value variables in queries. Fixes [#3470][]. ([#3554][])
   606  - Remove unused reserved predicates in the schema. Fixes [#3535][]. ([#3557][])
   607  - Vendor in Badger v1.6.0 for StreamWriter bug fixes. ([#3631][])
   608  
   609  [#3470]: https://github.com/dgraph-io/dgraph/issue/3470
   610  [#3535]: https://github.com/dgraph-io/dgraph/issue/3535
   611  [#3554]: https://github.com/dgraph-io/dgraph/issue/3554
   612  [#3557]: https://github.com/dgraph-io/dgraph/issue/3557
   613  [#3631]: https://github.com/dgraph-io/dgraph/issue/3631
   614  [#3653]: https://github.com/dgraph-io/dgraph/issue/3653
   615  
   616  ## [1.0.15] - 2019-05-30
   617  [1.0.15]: https://github.com/dgraph-io/dgraph/compare/v1.0.14...v1.0.15
   618  
   619  ### Fixed
   620  
   621  - Fix bug that can cause a Dgraph cluster to get stuck in infinite leader election. ([#3391][])
   622  - Fix bug in bulk loader that prevented loading data from JSON files. ([#3464][])
   623  - Fix bug with a potential deadlock by breaking circular lock acquisition. ([#3393][])
   624  - Properly escape strings containing Unicode control characters for data exports. Fixes [#3383]. ([#3429][])
   625  - Initialize tablets map when creating a group. ([#3360][])
   626  - Fix queries with `offset` not working with multiple `orderasc` or `orderdesc` statements. Fixes [#3366][]. ([#3455][])
   627  - Vendor in bug fixes from badger. ([#3348][], [#3371][], [#3460][])
   628  
   629  ### Changed
   630  
   631  - Use Go v1.12.5 to build Dgraph release binaries.
   632  - Truncate Raft logs even when no txn commits are happening. ([3be380b8a][])
   633  - Reduce memory usage by setting a limit on the size of committed entries that can be served per Ready. ([#3308][])
   634  - Reduce memory usage of pending txns by only keeping deltas in memory. ([#3349][])
   635  - Reduce memory usage by limiting the number of pending proposals in apply channel. ([#3340][])
   636  - Reduce memory usage when calculating snapshots by retrieving entries in batches. ([#3409][])
   637  - Allow snapshot calculations during snapshot streaming. ([ecb454754][])
   638  - Allow quick recovery from partitions by shortening the deadline of sending Raft messages to 10s. ([77b52aca1][])
   639  - 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][])
   640  - Allow partial snapshot streams to reduce the amount of data needed to be transferred between Alphas. ([#3454][])
   641  - Use Badger's StreamWriter to improve write speeds during snapshot streaming. ([#3457][]) ([#3442][])
   642  - Call file sync explicitly at the end of TxnWriter to improve performance. ([#3418][])
   643  - 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.**
   644   ([#2987][])
   645  - Add logs to show Dgraph config options. ([#3337][])
   646  - Add `-v=3` logs for reporting Raft communication for debugging. These logs start with `RaftComm:`. ([9cd628f6f][])
   647  
   648  ### Added
   649  
   650  - Add Alpha flag `--snapshot_after` (default: 10000) to configure the number of Raft entries to keep before taking a snapshot. ([#3367][])
   651  - 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][])
   652  - 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][])
   653  - 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][])
   654  - Add Raft checkpoint index to WAL for quicker recovery after restart. ([#3444][])
   655  
   656  ### Removed
   657  
   658  - Remove size calculation in posting list. ([0716dc4e1][])
   659  - Remove a `-v=2` log which can be too noisy during Raft replay. ([2377d9f56][]).
   660  - Remove `dgraph_conf` from /debug/vars. Dgraph config options are available via logs. ([#3337][])
   661  
   662  [#3337]: https://github.com/dgraph-io/dgraph/pull/3337
   663  [#3391]: https://github.com/dgraph-io/dgraph/pull/3391
   664  [#3400]: https://github.com/dgraph-io/dgraph/pull/3400
   665  [#3464]: https://github.com/dgraph-io/dgraph/pull/3464
   666  [#2987]: https://github.com/dgraph-io/dgraph/pull/2987
   667  [#3349]: https://github.com/dgraph-io/dgraph/pull/3349
   668  [#3393]: https://github.com/dgraph-io/dgraph/pull/3393
   669  [#3429]: https://github.com/dgraph-io/dgraph/pull/3429
   670  [#3383]: https://github.com/dgraph-io/dgraph/pull/3383
   671  [#3455]: https://github.com/dgraph-io/dgraph/pull/3455
   672  [#3366]: https://github.com/dgraph-io/dgraph/pull/3366
   673  [#3308]: https://github.com/dgraph-io/dgraph/pull/3308
   674  [#3340]: https://github.com/dgraph-io/dgraph/pull/3340
   675  [#3348]: https://github.com/dgraph-io/dgraph/pull/3348
   676  [#3371]: https://github.com/dgraph-io/dgraph/pull/3371
   677  [#3460]: https://github.com/dgraph-io/dgraph/pull/3460
   678  [#3360]: https://github.com/dgraph-io/dgraph/pull/3360
   679  [#3335]: https://github.com/dgraph-io/dgraph/pull/3335
   680  [#3367]: https://github.com/dgraph-io/dgraph/pull/3367
   681  [#3409]: https://github.com/dgraph-io/dgraph/pull/3409
   682  [#3418]: https://github.com/dgraph-io/dgraph/pull/3418
   683  [#3454]: https://github.com/dgraph-io/dgraph/pull/3454
   684  [#3457]: https://github.com/dgraph-io/dgraph/pull/3457
   685  [#3442]: https://github.com/dgraph-io/dgraph/pull/3442
   686  [#3467]: https://github.com/dgraph-io/dgraph/pull/3467
   687  [#3338]: https://github.com/dgraph-io/dgraph/pull/3338
   688  [#3444]: https://github.com/dgraph-io/dgraph/pull/3444
   689  [3be380b8a]: https://github.com/dgraph-io/dgraph/commit/3be380b8a
   690  [ecb454754]: https://github.com/dgraph-io/dgraph/commit/ecb454754
   691  [77b52aca1]: https://github.com/dgraph-io/dgraph/commit/77b52aca1
   692  [9cd628f6f]: https://github.com/dgraph-io/dgraph/commit/9cd628f6f
   693  [0716dc4e1]: https://github.com/dgraph-io/dgraph/commit/0716dc4e1
   694  [2377d9f56]: https://github.com/dgraph-io/dgraph/commit/2377d9f56
   695  
   696  ## [1.0.14] - 2019-04-12
   697  [1.0.14]: https://github.com/dgraph-io/dgraph/compare/v1.0.13...v1.0.14
   698  
   699  ### Fixed
   700  
   701  - Fix bugs related to best-effort queries. ([#3125][])
   702  - Stream Raft Messages and Fix Check Quorum. ([#3138][])
   703  - Fix lin reads timeouts and AssignUid recursion in Zero. ([#3203][])
   704  - Fix panic when running `@groupby(uid)` which is not allowed and other logic fixes. ([#3232][])
   705  - 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][])
   706  - Shutdown extra connections. ([#3280][])
   707  - Fix bug for queries with `@recurse` and `expand(_all_)`. ([#3179][])
   708  - Fix assorted cases of goroutine leaks. ([#3074][])
   709  - Increment tool: Fix best-effort flag name so best-effort queries run as intended from the tool. ([d386fa5][])
   710  
   711  [#3125]: https://github.com/dgraph-io/dgraph/pull/3125
   712  [#3138]: https://github.com/dgraph-io/dgraph/pull/3138
   713  [#3203]: https://github.com/dgraph-io/dgraph/pull/3203
   714  [#3232]: https://github.com/dgraph-io/dgraph/pull/3232
   715  [#3187]: https://github.com/dgraph-io/dgraph/pull/3187
   716  [#3246]: https://github.com/dgraph-io/dgraph/pull/3246
   717  [#3280]: https://github.com/dgraph-io/dgraph/pull/3280
   718  [#3179]: https://github.com/dgraph-io/dgraph/pull/3179
   719  [#3074]: https://github.com/dgraph-io/dgraph/pull/3074
   720  [d386fa5]: https://github.com/dgraph-io/dgraph/commit/d386fa5
   721  
   722  ### Added
   723  
   724  - Add timeout option while running queries over HTTP. Setting the `timeout` query parameter `/query?timeout=60s` will timeout queries after 1 minute. ([#3238][])
   725  - Add `badger` tool to release binaries and Docker image.
   726  
   727  [#3238]: https://github.com/dgraph-io/dgraph/pull/3238
   728  
   729  ## [1.0.13] - 2019-03-10
   730  [1.0.13]: https://github.com/dgraph-io/dgraph/compare/v1.0.12...v1.0.13
   731  
   732  **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.**
   733  
   734  ### Fixed
   735  
   736  - Fix Raft panic. ([8cb69ea](https://github.com/dgraph-io/dgraph/commit/8cb69ea))
   737  - Log an error instead of an assertion check for SrcUIDs being nil. ([691b3b3](https://github.com/dgraph-io/dgraph/commit/691b3b3))
   738  
   739  ## [1.0.12] - 2019-03-05
   740  [1.0.12]: https://github.com/dgraph-io/dgraph/compare/v1.0.11...v1.0.12
   741  
   742  **Note: This release requires you to export and re-import data prior to
   743  upgrading or rolling back. The underlying data format has been changed.**
   744  
   745  ### Added
   746  
   747  - Support gzip compression for gRPC and HTTP requests.
   748    ([#2843](https://github.com/dgraph-io/dgraph/issues/2843))
   749  - Restore is available from a full binary backup. This is an enterprise
   750    feature licensed under the Dgraph Community License.
   751  - Strict schema mode via `--mutations` flag. By default `--mutations=allow` is
   752    set to allow all mutations; `--mutations=disallow` disables all mutations;
   753    `--mutations=strict` allows mutations only for predicates which are defined in
   754    the schema. Fixes [#2277](https://github.com/dgraph-io/dgraph/issues/2277).
   755  - Add `dgraph increment` tool for debugging and testing. The increment tool
   756    queries for the specified predicate (default: `counter.val`), increments its
   757    integer counter value, and mutates the result back to Dgraph. Useful for
   758    testing end-to-end txns to verify cluster health.
   759    ([#2955](https://github.com/dgraph-io/dgraph/issues/2955))
   760  - Support best-effort queries. This would relax the requirement of linearizible
   761    reads. For best-effort queries, Alpha would request timestamps from memory
   762    instead of making an outbound request to Zero.
   763    ([#3071](https://github.com/dgraph-io/dgraph/issues/3071))
   764  
   765  ### Changed
   766  
   767  - Use the new Stream API from Badger instead of Dgraph's Stream framework. ([#2852](https://github.com/dgraph-io/dgraph/issues/2852))
   768  - Discard earlier versions of posting lists. ([#2859](https://github.com/dgraph-io/dgraph/issues/2859))
   769  - Make HTTP JSON response encoding more efficient by operating on a bytes buffer
   770    directly. ([ae1d9f3](https://github.com/dgraph-io/dgraph/commit/ae1d9f3))
   771  - Optimize and refactor facet filtering. ([#2829](https://github.com/dgraph-io/dgraph/issues/2829))
   772  - Show badger.Item meta information in `dgraph debug` output.
   773  - Add new option to `dgraph debug` tool to get a histogram of key and value sizes. ([#2844](https://github.com/dgraph-io/dgraph/issues/2844))
   774  - Add new option to `dgraph debug` tool to get info from a particular read timestamp.
   775  - Refactor rebuild index logic. ([#2851](https://github.com/dgraph-io/dgraph/issues/2851), [#2866](https://github.com/dgraph-io/dgraph/issues/2866))
   776  - For gRPC clients, schema queries are returned in the Json field. The Schema proto field is deprecated.
   777  - Simplify design and make tablet moves robust. ([#2800](https://github.com/dgraph-io/dgraph/issues/2800))
   778  - Switch all node IDs to hex in logs (e.g., ID 0xa instead of ID 10), so they are consistent with Raft logs.
   779  - Refactor reindexing code to only reindex specific tokenizers. ([#2948](https://github.com/dgraph-io/dgraph/issues/2948))
   780  - Introduce group checksums. ([#2964](https://github.com/dgraph-io/dgraph/issues/2964), [#3085](https://github.com/dgraph-io/dgraph/issues/3085))
   781  - Return aborted error if commit ts is 0.
   782  - Reduce number of "ClusterInfoOnly" requests to Zero by making VerifyUid wait for membership information. ([#2974](https://github.com/dgraph-io/dgraph/issues/2974))
   783  - Simplify Raft WAL storage caching. ([#3102](https://github.com/dgraph-io/dgraph/issues/3102))
   784  - Build release binary with Go version 1.11.5.
   785  
   786  ### Removed
   787  
   788  - **Remove LRU cache from Alpha for big wins in query latency reduction (5-10x)
   789    and mutation throughput (live loading 1.7x faster).** Setting `--lru_mb` is
   790    still required but will not have any effect since the cache is removed. The
   791    flag will be used later version when LRU cache is introduced within Badger and
   792    configurable from Dgraph.
   793  - Remove `--nomutations` flag. Its functionality has moved into strict schema
   794    mode with the `--mutations` flag (see Added section).
   795  
   796  ### Fixed
   797  
   798  - Use json.Marshal for strings and blobs. Fixes [#2662](https://github.com/dgraph-io/dgraph/issues/2662).
   799  - Let eq use string "uid" as value. Fixes [#2827](https://github.com/dgraph-io/dgraph/issues/2827).
   800  - Skip empty posting lists in `has` function.
   801  - Fix Rollup to pick max update commit ts.
   802  - Fix a race condition when processing concurrent queries. Fixes [#2849](https://github.com/dgraph-io/dgraph/issues/2849).
   803  - Show an error when running multiple mutation blocks. Fixes [#2815](https://github.com/dgraph-io/dgraph/issues/2815).
   804  - Bring in optimizations and bug fixes over from Badger.
   805  - Bulk Loader for multi-group (sharded data) clusters writes out per-group
   806    schema with only the predicates owned by the group instead of all predicates
   807    in the cluster. This fixes an issue where queries made to one group may not
   808    return data served by other groups.
   809    ([#3065](https://github.com/dgraph-io/dgraph/issues/3065))
   810  - Remove the assert failure in raftwal/storage.go.
   811  
   812  ## [1.0.11] - 2018-12-17
   813  [1.0.11]: https://github.com/dgraph-io/dgraph/compare/v1.0.10...v1.0.11
   814  
   815  ### Added
   816  
   817  - Integrate OpenCensus in Dgraph. ([#2739](https://github.com/dgraph-io/dgraph/issues/2739))
   818  - Add Dgraph Community License for proprietary features.
   819  - Feature: Full binary backups. This is an enterprise feature licensed under the Dgraph Community License. ([#2710](https://github.com/dgraph-io/dgraph/issues/2710))
   820  - Add `--enterprise_features` flag to enable enterprise features. By enabling enterprise features, you accept the terms of the Dgraph Community License.
   821  - Add minio dep and its deps in govendor. ([94daeaf7](https://github.com/dgraph-io/dgraph/commit/94daeaf7), [35a73e81](https://github.com/dgraph-io/dgraph/commit/35a73e81))
   822  - Add network partitioning tests with blockade tool. ([./contrib/blockade](https://github.com/dgraph-io/dgraph/tree/v1.0.11/contrib/blockade))
   823  - Add Zero endpoints `/assign?what=uids&num=10` and `/assign?what=timestamps&num=10` to assign UIDs or transaction timestamp leases.
   824  - Adding the acl subcommand to support acl features (still work-in-progress). ([#2795](https://github.com/dgraph-io/dgraph/issues/2795))
   825  - Support custom tokenizer in bulk loader ([#2820](https://github.com/dgraph-io/dgraph/issues/2820))
   826  - Support JSON data with Dgraph Bulk Loader. ([#2799](https://github.com/dgraph-io/dgraph/issues/2799))
   827  
   828  ### Changed
   829  
   830  - Make posting list memory rollup happen right after disk. ([#2731](https://github.com/dgraph-io/dgraph/issues/2731))
   831  - Do not retry proposal if already found in CommittedEntries. ([#2740](https://github.com/dgraph-io/dgraph/issues/2740))
   832  - Remove ExportPayload from protos. Export returns Status and ExportRequest. ([#2741](https://github.com/dgraph-io/dgraph/issues/2741))
   833  - Allow more escape runes to be skipped over when parsing string literal. ([#2734](https://github.com/dgraph-io/dgraph/issues/2734))
   834  - Clarify message of overloaded pending proposals for live loader. ([#2732](https://github.com/dgraph-io/dgraph/issues/2732))
   835  - Posting List Evictions. (e2bcfdad)
   836  - Log when removing a tablet. ([#2746](https://github.com/dgraph-io/dgraph/issues/2746))
   837  - Deal better with network partitions in leaders. ([#2749](https://github.com/dgraph-io/dgraph/issues/2749))
   838  - Keep maxDelay during timestamp req to 1s.
   839  - Updates to the version output info.
   840    - Print the go version used to build Dgraph when running `dgraph version` and in the logs when Dgraph runs. ([#2768](https://github.com/dgraph-io/dgraph/issues/2768))
   841    - Print the Dgraph version when running live or bulk loader. ([#2736](https://github.com/dgraph-io/dgraph/issues/2736))
   842  - Checking nil values in the equal function ([#2769](https://github.com/dgraph-io/dgraph/issues/2769))
   843  - Optimize query: UID expansion. ([#2772](https://github.com/dgraph-io/dgraph/issues/2772))
   844  - Split membership sync endpoints and remove PurgeTs endpoint. ([#2773](https://github.com/dgraph-io/dgraph/issues/2773))
   845  - Set the Prefix option during iteration. ([#2780](https://github.com/dgraph-io/dgraph/issues/2780))
   846  - Replace Zero's `/assignIds?num=10` endpoint with `/assign?what=uids&num=10` (see Added section).
   847  
   848  ### Removed
   849  
   850  - Remove type hinting for JSON and RDF schema-less types. ([#2742](https://github.com/dgraph-io/dgraph/issues/2742))
   851  - Remove deprecated logic that was found using vet. ([#2758](https://github.com/dgraph-io/dgraph/issues/2758))
   852  - Remove assert for zero-length posting lists. ([#2763](https://github.com/dgraph-io/dgraph/issues/2763))
   853  
   854  ### Fixed
   855  
   856  - Restore schema states on error. ([#2730](https://github.com/dgraph-io/dgraph/issues/2730))
   857  - Refactor bleve tokenizer usage ([#2738](https://github.com/dgraph-io/dgraph/issues/2738)). Fixes [#2622](https://github.com/dgraph-io/dgraph/issues/2622) and [#2601](https://github.com/dgraph-io/dgraph/issues/2601).
   858  - Switch to Badger's Watermark library, which has a memory leak fix. (0cd9d82e)
   859  - Fix tiny typo. ([#2761](https://github.com/dgraph-io/dgraph/issues/2761))
   860  - Fix Test: TestMillion.
   861  - Fix Jepsen bank test. ([#2764](https://github.com/dgraph-io/dgraph/issues/2764))
   862  - Fix link to help_wanted. ([#2774](https://github.com/dgraph-io/dgraph/issues/2774))
   863  - Fix invalid division by zero error. Fixes [#2733](https://github.com/dgraph-io/dgraph/issues/2733).
   864  - Fix missing predicates after export and bulk load. Fixes [#2616](https://github.com/dgraph-io/dgraph/issues/2616).
   865  - Handle various edge cases around cluster memberships. ([#2791](https://github.com/dgraph-io/dgraph/issues/2791))
   866  - Change Encrypt to not re-encrypt password values. Fixes [#2765](https://github.com/dgraph-io/dgraph/issues/2765).
   867  - Correctly parse facet types for both JSON and RDF formats. Previously the
   868    parsing was handled differently depending on the input format. ([#2797](https://github.com/dgraph-io/dgraph/issues/2797))
   869  
   870  ## [1.0.10] - 2018-11-05
   871  [1.0.10]: https://github.com/dgraph-io/dgraph/compare/v1.0.9...v1.0.10
   872  
   873  **Note: This release requires you to export and re-import data. We have changed the underlying storage format.**
   874  
   875  ### Added
   876  
   877  - 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](https://github.com/dgraph-io/dgraph/issues/2692))
   878  - Optimize has function ([#2724](https://github.com/dgraph-io/dgraph/issues/2724))
   879  - Expose the health check API via gRPC. ([#2721](https://github.com/dgraph-io/dgraph/issues/2721))
   880  
   881  ### Changed
   882  
   883  - Dgraph is relicensed to Apache 2.0. ([#2652](https://github.com/dgraph-io/dgraph/issues/2652))
   884  - **Breaking change**. Rename Dgraph Server to Dgraph Alpha to clarify discussions of the Dgraph cluster. The top-level command `dgraph server` is now `dgraph alpha`. ([#2667](https://github.com/dgraph-io/dgraph/issues/2667))
   885  - Prometheus metrics have been renamed for consistency for alpha, memory, and lru cache metrics. ([#2636](https://github.com/dgraph-io/dgraph/issues/2636), [#2670](https://github.com/dgraph-io/dgraph/issues/2670), [#2714](https://github.com/dgraph-io/dgraph/issues/2714))
   886  - The `dgraph-converter` command is available as the subcommand `dgraph conv`. ([#2635](https://github.com/dgraph-io/dgraph/issues/2635))
   887  - Updating protobuf version. ([#2639](https://github.com/dgraph-io/dgraph/issues/2639))
   888  - Allow checkpwd to be aliased ([#2641](https://github.com/dgraph-io/dgraph/issues/2641))
   889  - Better control excessive traffic to Dgraph ([#2678](https://github.com/dgraph-io/dgraph/issues/2678))
   890  - Export format now exports on the Alpha receiving the export request. The naming scheme of the export files has been simplified.
   891  - Improvements to the `dgraph debug` tool that can be used to inspect the contents of the posting lists directory.
   892  - Bring in Badger updates ([#2697](https://github.com/dgraph-io/dgraph/issues/2697))
   893  
   894  ### Fixed
   895  
   896  - Make raft leader resume probing after snapshot crash ([#2707](https://github.com/dgraph-io/dgraph/issues/2707))
   897  - **Breaking change:** Create a lot simpler sorted uint64 codec ([#2716](https://github.com/dgraph-io/dgraph/issues/2716))
   898  - Increase the size of applyCh, to give Raft some breathing space. Otherwise, it fails to maintain quorum health.
   899  - Zero should stream last commit update
   900  - Send commit timestamps in order ([#2687](https://github.com/dgraph-io/dgraph/issues/2687))
   901  - Query blocks with the same name are no longer allowed.
   902  - Fix out-of-range values in query parser. ([#2690](https://github.com/dgraph-io/dgraph/issues/2690))
   903  
   904  ## [1.0.9] - 2018-10-02
   905  [1.0.9]: https://github.com/dgraph-io/dgraph/compare/v1.0.8...v1.0.9
   906  
   907  ### Added
   908  
   909  - This version switches Badger Options to reasonable settings for p and w directories. This removes the need to expose `--badger.options` option and removes the `none` option from `--badger.vlog`. ([#2605](https://github.com/dgraph-io/dgraph/issues/2605))
   910  - Add support for ignoring parse errors in bulk loader with the option `--ignore_error`. ([#2599](https://github.com/dgraph-io/dgraph/issues/2599))
   911  - Introduction of new command `dgraph cert` to simplify initial TLS setup. See [TLS configuration docs](https://docs.dgraph.io/deploy/#tls-configuration) for more info.
   912  - Add `expand(_forward_)` and `expand(_reverse_)` to GraphQL+- query language. If `_forward_` is passed as an argument to `expand()`, all predicates at that level (minus any reverse predicates) are retrieved.
   913  If `_reverse_` is passed as an argument to `expand()`, only the reverse predicates are retrieved.
   914  
   915  ### Changed
   916  
   917  - Rename intern pkg to pb ([#2608](https://github.com/dgraph-io/dgraph/issues/2608))
   918  
   919  ### Fixed
   920  
   921  - Remove LinRead map logic from Dgraph ([#2570](https://github.com/dgraph-io/dgraph/issues/2570))
   922  - Sanity length check for facets mostly.
   923  - Make has function correct w.r.t. transactions ([#2585](https://github.com/dgraph-io/dgraph/issues/2585))
   924  - Increase the snapshot calculation interval, while decreasing the min number of entries required; so we take snapshots even when there's little activity.
   925  - Convert an assert during DropAll to inf retry. ([#2578](https://github.com/dgraph-io/dgraph/issues/2578))
   926  - Fix a bug which caused all transactions to abort if `--expand_edge` was set to false. Fixes [#2547](https://github.com/dgraph-io/dgraph/issues/2547).
   927  - 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](https://github.com/dgraph-io/dgraph/issues/2581).
   928  - Pull in Badger updates. This also fixes the Unable to find log file, retry error.
   929  - Improve efficiency of readonly transactions by reusing the same read ts ([#2604](https://github.com/dgraph-io/dgraph/issues/2604))
   930  - Fix a bug in Raft.Run loop. ([#2606](https://github.com/dgraph-io/dgraph/issues/2606))
   931  - 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.
   932  - 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.
   933  - 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](https://github.com/dgraph-io/dgraph/issues/2611))
   934  - Switch traces to glogs in worker/export.go ([#2614](https://github.com/dgraph-io/dgraph/issues/2614))
   935  - Improve error handling for `dgraph live` for errors when processing RDF and schema files. ([#2596](https://github.com/dgraph-io/dgraph/issues/2596))
   936  - Fix task conversion from bool to int that used uint32 ([#2621](https://github.com/dgraph-io/dgraph/issues/2621))
   937  - Fix `expand(_all_)` in recurse queries ([#2600](https://github.com/dgraph-io/dgraph/issues/2600)).
   938  - Add language aliases for broader support for full text indices. ([#2602](https://github.com/dgraph-io/dgraph/issues/2602))
   939  
   940  ## [1.0.8] - 2018-08-29
   941  [1.0.8]: https://github.com/dgraph-io/dgraph/compare/v1.0.7...v1.0.8
   942  
   943  ### Added
   944  
   945  - Introduce a new /assignIds HTTP endpoint in Zero, so users can allocate UIDs to nodes externally.
   946  - Add a new tool which retrieves and increments a counter by 1 transactionally. This can be used to test the sanity of Dgraph cluster.
   947  
   948  ### Changed
   949  
   950  - This version introduces tracking of a few anonymous metrics to measure Dgraph adoption ([#2554](https://github.com/dgraph-io/dgraph/issues/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.
   951  
   952  ### Fixed
   953  
   954  - Correctly handle a list of type geo in json ([#2482](https://github.com/dgraph-io/dgraph/issues/2482), [#2485](https://github.com/dgraph-io/dgraph/issues/2485)).
   955  - Fix the graceful shutdown of Dgraph server, so a single Ctrl+C would now suffice to stop it.
   956  - Fix various deadlocks in Dgraph and set ConfState in Raft correctly ([#2548](https://github.com/dgraph-io/dgraph/issues/2548)).
   957  - Significantly decrease the number of transaction aborts by using SPO as key for entity to entity connections. ([#2556](https://github.com/dgraph-io/dgraph/issues/2556)).
   958  - 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.
   959  
   960  ## [1.0.7] - 2018-08-10
   961  [1.0.7]: https://github.com/dgraph-io/dgraph/compare/v1.0.6...v1.0.7
   962  
   963  ### Changed
   964  
   965  - Set the `--conc` flag in live loader default to 1, as a temporary fix to avoid tons of aborts.
   966  
   967  ### Fixed
   968  
   969  - All Oracle delta streams are applied via Raft proposals. This deals better with network partition like edge-cases. [#2463](https://github.com/dgraph-io/dgraph/issues/2463)
   970  - Fix deadlock in 10-node cluster convergence. Fixes [#2286](https://github.com/dgraph-io/dgraph/issues/2286).
   971  - Make ReadIndex work safely. [#2469](https://github.com/dgraph-io/dgraph/issues/2469)
   972  - Simplify snapshots, leader now calculates and proposes snapshots to the group. [#2475](https://github.com/dgraph-io/dgraph/issues/2475).
   973  - Make snapshot streaming more robust. [#2487](https://github.com/dgraph-io/dgraph/issues/2487)
   974  - Consolidate all txn tracking logic into Oracle, remove inSnapshot logic. [#2480](https://github.com/dgraph-io/dgraph/issues/2480).
   975  - Bug fix in Badger, to stop panics when exporting.
   976  - Use PreVote to avoid leader change on a node join.
   977  - Fix a long-standing bug where `raft.Step` was being called via goroutines. It is now called serially.
   978  - Fix context deadline issues with proposals. [#2501](https://github.com/dgraph-io/dgraph/issues/2501).
   979  
   980  ## [1.0.6] - 2018-06-20
   981  [1.0.6]: https://github.com/dgraph-io/dgraph/compare/v1.0.5...v1.0.6
   982  
   983  ### Added
   984  
   985  * Support GraphQL vars as args for Regexp function. [#2353](https://github.com/dgraph-io/dgraph/issues/2353)
   986  * Support GraphQL vars with filters. [#2359](https://github.com/dgraph-io/dgraph/issues/2359)
   987  * Add JSON mutations to raw HTTP. [#2396](https://github.com/dgraph-io/dgraph/issues/2396)
   988  
   989  ### Fixed
   990  
   991  * Fix math >= evaluation. [#2365](https://github.com/dgraph-io/dgraph/issues/2365)
   992  * Avoid race condition between mutation commit and predicate move. [#2392](https://github.com/dgraph-io/dgraph/issues/2392)
   993  * Ability to correctly distinguish float from int in JSON. [#2398](https://github.com/dgraph-io/dgraph/issues/2398)
   994  * Remove _dummy_ data key. [#2401](https://github.com/dgraph-io/dgraph/issues/2401)
   995  * Serialize applying of Raft proposals. Concurrent application was complex and
   996      cause of multiple bugs. [#2428](https://github.com/dgraph-io/dgraph/issues/2428).
   997  * Improve Zero connections.
   998  * Fix bugs in snapshot move, refactor code and improve performance significantly. [#2440](https://github.com/dgraph-io/dgraph/issues/2440), [#2442](https://github.com/dgraph-io/dgraph/issues/2442)
   999  * Add error handling to GetNoStore. Fixes [#2373](https://github.com/dgraph-io/dgraph/issues/2373).
  1000  * Fix bugs in Bulk loader. [#2449](https://github.com/dgraph-io/dgraph/issues/2449)
  1001  * Posting List and Raft bug fixes. [#2457](https://github.com/dgraph-io/dgraph/issues/2457)
  1002  
  1003  ### Changed
  1004  
  1005  * Pull in Badger v1.5.2.
  1006  * Raft storage is now done entirely via Badger. This reduces RAM
  1007      consumption by previously used MemoryStorage. [#2433](https://github.com/dgraph-io/dgraph/issues/2433)
  1008  * Trace how node.Run loop performs.
  1009  * Allow tweaking Badger options.
  1010  
  1011  **Note:** This change modifies some flag names. In particular, Badger options
  1012  are now exposed via flags named with `--badger.` prefix.
  1013  
  1014  ## [1.0.5] - 2018-04-20
  1015  [1.0.5]: https://github.com/dgraph-io/dgraph/compare/v1.0.4...v1.0.5
  1016  
  1017  ### Added
  1018  
  1019  * Option to have server side sequencing.
  1020  * Ability to specify whitelisted IP addresses for admin actions.
  1021  
  1022  
  1023  ### Fixed
  1024  
  1025  * Fix bug where predicate with string type sometimes appeared as `_:uidffffffffffffffff` in exports.
  1026  * Validate facet value should be according to the facet type supplied when mutating using N-Quads ([#2074](https://github.com/dgraph-io/dgraph/issues/2074)).
  1027  * Use `time.Equal` function for comparing predicates with `datetime`([#2219](https://github.com/dgraph-io/dgraph/issues/2219)).
  1028  * Skip `BitEmptyPosting` for `has` queries.
  1029  * Return error from query if we don't serve the group for the attribute instead of crashing ([#2227](https://github.com/dgraph-io/dgraph/issues/2227)).
  1030  * Send `maxpending` in connection state to server ([#2236](https://github.com/dgraph-io/dgraph/issues/2236)).
  1031  * Fix bug in SP* transactions ([#2148](https://github.com/dgraph-io/dgraph/issues/2148)).
  1032  * Batch and send during snapshot to make snapshots faster.
  1033  * Don't skip schema keys while calculating tablets served.
  1034  * Fix the issue which could lead to snapshot getting blocked for a cluster with replicas ([#2266](https://github.com/dgraph-io/dgraph/issues/2266)).
  1035  * Dgraph server retries indefinitely to connect to Zero.
  1036  * Allow filtering and regex queries for list types with lossy tokenizers.
  1037  * Dgraph server segfault in worker package ([#2322](https://github.com/dgraph-io/dgraph/issues/2322)).
  1038  * Node crashes can lead to the loss of inserted triples ([#2290](https://github.com/dgraph-io/dgraph/issues/2290)).
  1039  
  1040  
  1041  ### Changed
  1042  
  1043  * Cancel pending transactions for a predicate when predicate move is initiated.
  1044  * Move Go client to its own repo at `dgraph-io/dgo`.
  1045  * Make `expand(_all_)` return value and uid facets.
  1046  * Add an option to specify a `@lang` directive in schema for predicates with lang tags.
  1047  * Flag `memory_mb` has been changed to `lru_mb`. The default recommended value for `lru_mb` is
  1048    one-third of the total RAM available on the server.
  1049  
  1050  ## [1.0.4] - 2018-03-09
  1051  [1.0.4]: https://github.com/dgraph-io/dgraph/compare/v1.0.3...v1.0.4
  1052  
  1053  ### Added
  1054  
  1055  * Support for empty strings in query attributes.
  1056  * Support GraphQL vars in first, offset and after at root.
  1057  * Add support for query_edge_limit flag which can be used to limit number of results for shortest
  1058    path, recurse queries.
  1059  * Make rebalance interval a flag in Zero.
  1060  * Return latency information for mutation operations.
  1061  * Support @upsert directive in schema.
  1062  
  1063  ### Fixed
  1064  
  1065  * Issues with predicate deletion in a cluster.
  1066  * Handle errors from posting.Get.
  1067  * Correctly update commitTs while committing and startTs == deleteTs.
  1068  * Error handling in abort http handler.
  1069  * Get latest membership state from Zero if uid in mutation > maxLeaseId.
  1070  * Fix bug in Mutate where mutated keys were not filled.
  1071  * Update membership state if we can't find a leader while doing snapshot retrieval.
  1072  * Make snapshotting more frequent, also try aborting long pending transactions.
  1073  * Trim null character from end of strings before exporting.
  1074  * Sort facets after parsing RDF's using bulk loader.
  1075  * Fig bug in SyncIfDirty.
  1076  * Fix fatal error due to TxnTooBig error.
  1077  * Fix bug in dgraph live where some batches could be skipped on conflict error.
  1078  * Fix a bug related to expand(_all_) queries.
  1079  * Run cleanPredicate and proposeKeyValues sequentially.
  1080  * Serialize connect requests in Zero.
  1081  
  1082  ### Changed
  1083  
  1084  * Retry snapshot retrieval and join cluster indefinitely.
  1085  * Make client directory optional in dgraph live.
  1086  * Do snapshot in Zero in a goroutine so that Run loop isn't blocked.
  1087  
  1088  
  1089  ## [1.0.3] - 2018-02-08
  1090  [1.0.3]: https://github.com/dgraph-io/dgraph/compare/v1.0.2...v1.0.3
  1091  
  1092  ### Added
  1093  
  1094  * Support for specifying blank nodes as part of JSON mutation.
  1095  * `dgraph version` command to check current version.
  1096  * `curl` to Docker image.
  1097  * `moveTablet` endpoint to Zero to allow initiating a predicate move.
  1098  
  1099  ### Fixed
  1100  
  1101  * Out of range error while doing `eq` query.
  1102  * Reduce `maxBackOffDelay` to 10 sec so that leader election is faster after restart.
  1103  * Fix bugs with predicate move where some data was not sent and schema not loaded properly on
  1104    replicas.
  1105  * Fix the total number of RDF's processed when live loader ends.
  1106  * Reindex data when schema is changed to list type to fix adding and deleting new data.
  1107  * Correctly upate uidMatrix when facetOrder is supplied.
  1108  * Inequality operator(`gt` and `lt`) result for non lossy tokenizers.
  1109  
  1110  ### Changed
  1111  
  1112  * `--zero_addr` flag changed to `--zero` for `dgraph bulk` command.
  1113  * Default ports for Zero have been changed `7080` => `5080`(grpc) and `8080` => `6080`(http).
  1114  * Update badger version and how purging is done to fix CPU spiking when Dgraph is idle.
  1115  * Print predicate name as part of the warning about long term for exact index.
  1116  
  1117  ## [1.0.2] - 2018-01-17
  1118  [1.0.2]: https://github.com/dgraph-io/dgraph/compare/v1.0.1...v1.0.2
  1119  
  1120  ### Fixed
  1121  
  1122  * Always return predicates of list type in an array.
  1123  * Edges without facet values are also returned when performing sort on facet.
  1124  * Don't derive schema while deleting edges.
  1125  * Better error checking when accessing posting lists. Fixes bug where parts of
  1126    queries are sometimes omitted when system is under heavy load.
  1127  * Fix missing error check in mutation handling when using CommitNow (gave incorrect error).
  1128  * Fix bug where eq didn't work correctly for the fulltext index.
  1129  * Fix race because of which `replicas` flag was not respected.
  1130  * Fix bug with key copy during predicate move.
  1131  * Fix race in merging keys keys from btree and badger iterator.
  1132  * Fix snapshot retrieval for new nodes by retrieving it before joining the cluster.
  1133  * Write schema at timestamp 1 in bulk loader.
  1134  * Fix unexpected meta fatal error.
  1135  * Fix groupby result incase the child being grouped open has multiple parents.
  1136  
  1137  ### Changed
  1138  
  1139  * Remove StartTs field from `api.Operation`.
  1140  * Print error message in live loader if its not ErrAborted. Also, stop using membership state and
  1141  instead use the address given by user.
  1142  * Only send keys corresponding to data that was mutated.
  1143  
  1144  ## [1.0.1] - 2017-12-20
  1145  [1.0.1]: https://github.com/dgraph-io/dgraph/compare/v1.0.0...v1.0.1
  1146  
  1147  ### Fixed
  1148  
  1149  * Wait for background goroutines to finish in posting package on shutdown.
  1150  * Return error if we cant parse the uid given in json input for mutations.
  1151  * Don't remove `_predicate_` schema from disk during drop all.
  1152  * Fix panic in expand(_all_)
  1153  
  1154  ### Changed
  1155  
  1156  * Make sure at least one field is set while doing Alter.
  1157  
  1158  ## [1.0.0] - 2017-12-18
  1159  [1.0.0]: https://github.com/dgraph-io/dgraph/compare/v0.9.3...v1.0.0
  1160  
  1161  ### Added
  1162  
  1163  * Allow doing Mutate and Alter Operations using dgraph UI.
  1164  * Provide option to user to ignore conflicts on index keys.
  1165  
  1166  ### Fixed
  1167  
  1168  * Language tag parsing in queries now accepts digits (in line with RDF parsing).
  1169  * Ensure that GraphQL variables are declared before use.
  1170  * Export now uses correct blank node syntax.
  1171  * Membership stream doesn't get stuck if node steps down as leader.
  1172  * Fix issue where sets were not being returned after doing a S P * deletion when part of same
  1173    transaction.
  1174  * Empty string values are stored as it is and no strings have special meaning now.
  1175  * Correctly update order of facetMatrix when orderdesc/orderasc is applied.
  1176  * Allow live and bulk loaders to work with multiple zeros.
  1177  * Fix sorting with for predicates with multiple language tags.
  1178  * Fix alias edge cases in normalize directive.
  1179  * Allow reading new index key mutated as part of same transaction.
  1180  * Fix bug in value log GC in badger.
  1181  * SIGINT now forces a shutdown after 5 seconds when there are pending RPCs.
  1182  
  1183  ### Changed
  1184  
  1185  * `DropAttr` now also removes the schema for the attribute (previously it just removed the edges).
  1186  *  Tablet metadata is removed from zero after deletion of predicate.
  1187  *  LRU size is changed dynamically now based on `max_memory_mb`
  1188  *  Call RunValueLogGC for every GB increase in size of value logs. Upgrade vendored version of
  1189     Badger.
  1190  *  Prohibit string to password schema change.
  1191  *  Make purging less aggressive.
  1192  *  Check if GraphQL Variable is defined before using.
  1193  
  1194  ## [0.9.3] - 2017-12-01
  1195  [0.9.3]: https://github.com/dgraph-io/dgraph/compare/v0.9.2...v0.9.3
  1196  
  1197  ### Added
  1198  
  1199  * Support for alias while asking for facets.
  1200  * Support for general configuration via environment variables and configuration files.
  1201  * `IgnoreIndexConflict` field in Txn which allows ignoring conflicts on index keys.
  1202  
  1203  ### Fixed
  1204  
  1205  * `expand(_all_)` now correctly gives all language variants of a string.
  1206  * Indexes now correctly maintained when deleting via `S * *` and `S P *`.
  1207  * `expand(_all_)` now follows reverse edges.
  1208  * Don't return uid for nodes without any children when requested through debug flag.
  1209  * GraphQL variables for HTTP endpoints. Variable map can be set as a JSON
  1210    object using the `X-Dgraph-Vars` header.
  1211  * Abort if CommitNow flag is set and the mutation fails.
  1212  * Live loader treats subjects/predicates that look like UIDs as existing nodes
  1213    rather than new nodes.
  1214  * Fix bug in `@groupby` queries where predicate was converted to lower case in queries.
  1215  - Fix race condition in IsPeer. (#3432)
  1216  
  1217  ### Changed
  1218  
  1219  * 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.
  1220  * Validate the address advertised by dgraph nodes.
  1221  * Store/Restore peer map on snapshot.
  1222  * Fix rdfs per second reporting in live loader.
  1223  * Fix bug in lru eviction.
  1224  * Proto definitions are split into intern and api.
  1225  
  1226  ## [0.9.2] - 2017-11-20
  1227  [0.9.2]: https://github.com/dgraph-io/dgraph/compare/v0.9.1...v0.9.2
  1228  
  1229  ### Added
  1230  
  1231  * Support for removing dead node from quorum.
  1232  * Support for alias in groupby queries.
  1233  * Add DeleteEdges helper function for Go client.
  1234  
  1235  ### Changed
  1236  
  1237  * Dgraph tries to abort long running/abandoned transactions.
  1238  * Fix TLS flag parsing for Dgraph server and live loader.
  1239  * Reduce dependencies for Go client.
  1240  * `depth` and `loop` arguments should be inside @recurse().
  1241  * Base36 encode keys that are part of TxnContext and are sent to the client.
  1242  * Fix race condition in expand(_all_) queries.
  1243  * Fix (--ui) flag not being parsed properly.
  1244  
  1245  ## [0.9.1] - 2017-11-15
  1246  [0.9.1]: https://github.com/dgraph-io/dgraph/compare/v0.9.0...v0.9.1
  1247  
  1248  ### Changed
  1249  
  1250  * Transaction HTTP API has been modified slightly. `start_ts` is now a path parameter instead of a header.
  1251  For `/commit` API, keys are passed in the body.
  1252  
  1253  ## [0.9.0] - 2017-11-14
  1254  [0.9.0]: https://github.com/dgraph-io/dgraph/compare/v0.8.3...v0.9.0
  1255  
  1256  **The latest release has a lot of breaking changes but also brings powerful features like Transactions, support for CJK and custom tokenization.**
  1257  
  1258  ### Added
  1259  
  1260  * 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](https://docs.dgraph.io/clients/).
  1261  * Support for Indexing via [Custom tokenizers](https://docs.dgraph.io/query-language/#indexing-with-custom-tokenizers).
  1262  * Support for CJK languages in the full-text index.
  1263  
  1264  ### Changed
  1265  
  1266  #### Running Dgraph
  1267  
  1268  * We have consolidated all the `server`, `zero`, `live/bulk-loader` binaries into a single `dgraph` binary for convenience. Instructions for running Dgraph can be found in the [docs](https://docs.dgraph.io/get-started/).
  1269  * For Dgraph server, Raft ids can be assigned automatically. A user can optionally still specify an ID, via `--idx` flag.
  1270  * `--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.
  1271  * `port`, `grpc_port` and `worker_port` flags have been removed from Dgraph server and Zero. The ports are:
  1272  
  1273  - Internal Grpc: 7080
  1274  - HTTP: 8080
  1275  - External Grpc: 9080 (Dgraph server only)
  1276  
  1277  Users can set `port_offset` flag, to modify these fixed ports.
  1278  
  1279  #### Queries
  1280  
  1281  * Queries, mutations and schema updates are done through separate endpoints. **Queries can no longer have a mutation block.**
  1282  * Queries can be done via `Query` Grpc endpoint (it was called `Run` before) or the `/query` HTTP handler.
  1283  * `_uid_` is renamed to `uid`. So queries now need to request for `uid`. Example
  1284  ```
  1285  {
  1286    bladerunner(func: eq(name@en, "Blade Runner")) {
  1287      uid
  1288      name@en
  1289    }
  1290  }
  1291  ```
  1292  * Facets response structure has been modified and is a lot flatter. Facet key is now `predicate|facet_name`.
  1293  Examples for [Go client](https://godoc.org/github.com/dgraph-io/dgraph/client#example-Txn-Mutate-Facets) and [HTTP](https://docs.dgraph.io/query-language/#facets-edge-attributes).
  1294  * Query latency is now returned as numeric (ns) instead of string.
  1295  * [`Recurse`](https://docs.dgraph.io/query-language/#recurse-query) is now a directive. So queries with `recurse` keyword at root won't work anymore.
  1296  * Syntax for [`count` at root](https://docs.dgraph.io/query-language/#count) has changed. You need to ask for `count(uid)`, instead of `count()`.
  1297  
  1298  #### Mutations
  1299  
  1300  * Mutations can only be done via `Mutate` Grpc endpoint or via [`/mutate` HTTP handler](https://docs.dgraph.io/clients/#transactions).
  1301  * `Mutate` Grpc endpoint can be used to set/ delete JSON, or set/ delete a list of N-Quads and set/ delete raw RDF strings.
  1302  * Mutation blocks don't require the mutation keyword anymore. Here is an example of the new syntax.
  1303  ```
  1304  {
  1305    set {
  1306      <name> <is> <something> .
  1307      <hometown> <is> "San Francisco" .
  1308    }
  1309  }
  1310  ```
  1311  * [`Upsert`](https://docs.dgraph.io/v0.8.3/query-language/#upsert) directive and [mutation variables](https://docs.dgraph.io/v0.8.3/query-language/#variables-in-mutations) go away. Both these functionalities can now easily be achieved via transactions.
  1312  
  1313  #### Schema
  1314  
  1315  * `<*> <pred> <*>` operations, that is deleting a predicate can't be done via mutations anymore. They need to be done via `Alter` Grpc endpoint or via the `/alter` HTTP handler.
  1316  * Drop all is now done via `Alter`.
  1317  * Schema updates are now done via `Alter` Grpc endpoint or via `/alter` HTTP handler.
  1318  
  1319  #### Go client
  1320  
  1321  * `Query` Grpc endpoint returns response in JSON under `Json` field instead of protocol buffer. `client.Unmarshal` method also goes away from the Go client. Users can use `json.Unmarshal` for unmarshalling the response.
  1322  * Response for predicate of type `geo` can be unmarshalled into a struct. Example [here](https://godoc.org/github.com/dgraph-io/dgraph/client#example-package--SetObject).
  1323  * `Node` and `Edge` structs go away along with the `SetValue...` methods. We recommend using [`SetJson`](https://godoc.org/github.com/dgraph-io/dgraph/client#example-package--SetObject) and `DeleteJson` fields to do mutations.
  1324  * Examples of how to use transactions using the client can be found at https://docs.dgraph.io/clients/#go.
  1325  
  1326  ### Removed
  1327  - Embedded dgraph goes away. We haven’t seen much usage of this feature. And it adds unnecessary maintenance overhead to the code.
  1328  - Dgraph live no longer stores external ids. And hence the `xid` flag is gone.