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.