Native GraphQL Database with graph backend

Overview

The Only Native GraphQL Database With A Graph Backend.

Wiki Build Status Coverage Status Go Report Card

Dgraph is a horizontally scalable and distributed GraphQL database with a graph backend. It provides ACID transactions, consistent replication, and linearizable reads. It's built from the ground up to perform for a rich set of queries. Being a native GraphQL database, it tightly controls how the data is arranged on disk to optimize for query performance and throughput, reducing disk seeks and network calls in a cluster.

Dgraph's goal is to provide Google production level scale and throughput, with low enough latency to be serving real-time user queries, over terabytes of structured data. Dgraph supports GraphQL query syntax, and responds in JSON and Protocol Buffers over GRPC and HTTP.

Use Discuss Issues for reporting issues about this repository.

Status

Dgraph is at version v20.11.0 and is production-ready. Apart from the vast open source community, it is being used in production at multiple Fortune 500 companies, and by Intuit Katlas and VMware Purser.

Quick Install

The quickest way to install Dgraph is to run this command on Linux or Mac.

curl https://get.dgraph.io -sSf | bash

Install with Docker

If you're using Docker, you can use the official Dgraph image.

docker pull dgraph/dgraph:latest

Install from Source

If you want to install from source, install Go 1.13+ or later and the following dependencies:

Ubuntu

sudo apt-get update
sudo apt-get install gcc make

macOS

As a prerequisite, first install XCode (or the XCode Command-line Tools) and Homebrew.

Next, install the required dependencies:

brew update
brew install jemalloc go

Build and Install

Then clone the Dgraph repository and use make install to install the Dgraph binary to $GOPATH/bin.

git clone https://github.com/dgraph-io/dgraph.git
cd ./dgraph
make install

Get Started

To get started with Dgraph, follow:

Is Dgraph the right choice for me?

  • Do you have more than 10 SQL tables connected via foreign keys?
  • Do you have sparse data, which doesn't elegantly fit into SQL tables?
  • Do you want a simple and flexible schema, which is readable and maintainable over time?
  • Do you care about speed and performance at scale?

If the answers to the above are YES, then Dgraph would be a great fit for your application. Dgraph provides NoSQL like scalability while providing SQL like transactions and the ability to select, filter, and aggregate data points. It combines that with distributed joins, traversals, and graph operations, which makes it easy to build applications with it.

Dgraph compared to other graph DBs

Features Dgraph Neo4j Janus Graph
Architecture Sharded and Distributed Single server (+ replicas in enterprise) Layer on top of other distributed DBs
Replication Consistent None in community edition (only available in enterprise) Via underlying DB
Data movement for shard rebalancing Automatic Not applicable (all data lies on each server) Via underlying DB
Language GraphQL inspired Cypher, Gremlin Gremlin
Protocols Grpc / HTTP + JSON / RDF Bolt + Cypher Websocket / HTTP
Transactions Distributed ACID transactions Single server ACID transactions Not typically ACID
Full-Text Search Native support Native support Via External Indexing System
Regular Expressions Native support Native support Via External Indexing System
Geo Search Native support External support only Via External Indexing System
License Apache 2.0 GPL v3 Apache 2.0

Users

Developers

Client Libraries

The Dgraph team maintains several officially supported client libraries. There are also libraries contributed by the community unofficial client libraries.

Contact

Issues
  • Product Roadmap

    Product Roadmap

    • [x] Low Latency
    • [x] High Throughput
    • [x] RDF Parsing
    • [x] ~Rocks DB~ Badger DB for persistence
    • [x] ~Commit Logs~ (Replaced by RAFT logs)
    • [x] Query Language - GraphQL-like
      • [x] Query
      • [x] Root Arguments
      • [x] Fields
      • [x] Response in JSON
      • [x] Field Arguments
      • [x] Field Alias
      • [x] Mutations #23 [v0.2]
      • [x] Fragments #8
      • [x] Variables
      • [x] Type System
        • [x] Scalar Types
        • [x] ~Object Types~
      • [x] Mutation validation for scalar types
      • [x] String matching / Name search
      • [x] Sort by attribute
      • [x] Limit number of results #9
      • [x] Filter
        • [x] anyof
        • [x] allof
        • [x] eq (equal)
        • [x] inequality (>=, <=, >, <)
      • [x] Aggregate Functions
        • [x] count
        • [x] sum
        • [x] max
        • [x] min
      • [x] Geospatial Queries
        • [x] Nearby
        • [x] Within
        • [x] Contains
        • [x] Intersects
    • [x] Official Clients
      • [x] Javascript
      • [x] Go [v0.3]
      • [x] Java
    • [x] Distributed Transactions
    • [x] Distributed #14 [v0.2]
      • [x] Distributed Loader [v0.2]
      • [x] Distributed Server [v0.2]
    • [x] Clustering
      • [x] Node discovery and membership via Dgraph Zero
    • [x] High Availability
      • [x] Raft
      • [x] Automatic Data Replication
      • [x] Automatic Failover for reads
      • [x] Read linearizability
    • [x] Resilience
      • [x] Shard moves to handle server failure
    • [x] Export
    • [ ] Backup

    After v1.0 / Proprietary Plugins

    • [ ] Multi-homing support
    • [ ] Cypher Support
    • [ ] Access Control Lists
    • [ ] Query Graphical User Interface
    • [ ] User authentication
    • [ ] Cluster Management
    • [ ] SPARQL [maybe]
    • [ ] Tinkerpop Support [maybe]
    • [x] Distributed transactions [maybe]
    roadmap 
    opened by manishrjain 70
  • Product Roadmap 2019

    Product Roadmap 2019

    Here's the product roadmap for 2019:

    • [x] Stronger Type System
    • [ ] Support official GraphQL spec natively (#933).
    • [ ] Live streaming of updated responses
    • [ ] Gremlin support
    • [x] Full JSON support across exports, bulk loading, and live loading.
    • [x] Upserts

    Enterprise features:

    • [x] Binary backups
      • [x] Full Backups
      • [x] Incremental Backups
    • [x] Access Control Lists
    • [ ] Audit Logs
    • [x] Encryption at Rest
    • [ ] Dgraph cluster running across remote regions
    • [ ] Point in time recovery

    Tell us what more you'd like to see happen in 2019!

    roadmap 
    opened by manishrjain 65
  • Product Roadmap 2020

    Product Roadmap 2020

    Here's the product roadmap for 2020.

    • [ ] Official GraphQL spec compliance
      • [x] Queries (Q1)
      • [x] Mutations (Q1)
      • [ ] Subscriptions (Q2)
      • [ ] Live Queries (Q2)
    • [x] SaaS (Q2)
    • [ ] Scalability, performance, and reliability
      • [ ] Single predicate sharded across groups (TBD)
      • [ ] Distributed bulk loader (Q3)
      • [ ] Rolling upgrades (Q4)
      • [x] Ludicrous mode (Q1)
      • [ ] Query Planner (TBD)
    • [ ] Enterprise features
      • [ ] Change Data Capture (Q3)
      • [ ] Multi-tenancy (Q3)
      • [ ] Point-in-time recovery (TBD)
      • [ ] Audit logs (Q3)
      • [ ] ACL integration with AD, LDAP (stretch goal)
    • [ ] Integrations
      • [ ] Kubernetes
        • [ ] Operator (TBD)
        • [ ] Bulk Loader (TBD)
      • [ ] Kafka (TBD)
      • [ ] Others. Let us know in comments.

    We have mentioned the features we are planning to focus on in Q1 and Q2 (first half of 2020). For the rest, we'll assess them for their ETA as reach mid-year. Tell us what more you'd like to see happen in 2020!

    roadmap 
    opened by manishrjain 62
  • Product Roadmap 2018

    Product Roadmap 2018

    Work In Progress

    • Support Open Cypher
    • Support Gremlin
    • [ ] Support GraphQL spec
    • [ ] Subscriptions
    • [ ] Stronger Type System
    • [ ] Backup
    • [x] Python Driver
    • [x] Simplify TLS setup
    • [ ] Authentication (full control)
    • [x] Jepsen test integration (http://jepsen.io/analyses/dgraph-1-0-2)
    roadmap 
    opened by manishrjain 47
  • Make Dgraph work with standard GraphQL

    Make Dgraph work with standard GraphQL

    I've read #114 and understand why you've chosen not to follow the graphql spec. However, graphql clients like Relay and Apollo provide some very useful features out of the box such as client side caching, optimistic updates, combining queries, etc.

    I ended up creating a graphql server to map some basic graphql queries to graphql+-. However, I'm struggling with how to do this efficiently within the graphql server resolve functions without creating a lot of query-specific logic.

    Can you please provide an example of the recommended way to interact with graphql clients like Relay and Apollo (either directly or via a graphql server)?

    kind/feature priority/P1 popular status/accepted area/graphql 
    opened by smkhalsa 42
  • how to import 4 billion rdf to dgraph quickly

    how to import 4 billion rdf to dgraph quickly

    Recently we are doing some research on contact maps and we have a graph consist of almost 2 billion contacts, so obviously we need a graph database. Dgraph is really impressive and really cool. Following the document, we arrange our data into rdf using spark. Now we have about 4.2 billion rdfs.

    The schema looks like this: mutation{ schema{ thisphone: string @index(hash) . contact: uid . contact_of: uid . } }

    The rdf looks like this: <contact_p104008111111> <contact_of> <contact_p113761083758> (name="sam", ots=1452908610, lts=1501758356, status=1) . <contact_p104008111111> <contact_of> <contact_p113810888226> (name="frank", ots=1453119360, lts=1500729904, status=1) . <contact_p104008111111> <contact_of> <contact_p113811659687> (name="tony", ots=1444992764, lts=1498013559, status=1) .

    We are running dgraph on a machine with 64G memory, 3.5T ssd(raid5 though), 40 cores. Now problem is: the import speed will converge to about 20000/s after several minutes. This is not very slow, however when compare to 4.2 billion rdfs still we needs quite a lot of time(3 days). So can we generate sst files and vlogs on spark and then simply copy it to the p directory ? Glad to hear other ways to accelerate the import procedure. Thanks.

    opened by flyfatasy 41
  • Delete edge which object’s valueType is uid in binaries version failed.

    Delete edge which object’s valueType is uid in binaries version failed.

    If you suspect this could be a bug, follow the template.

    • What version of Dgraph are you using?

    v0.9.4

    • Have you tried reproducing the issue with latest release? yes

    • What is the hardware spec (RAM, OS)? macOs Sierra 10.12.6

    • Expected behaviour and actual result.

    When I run dgraph server with the binaries version v0.9.4, i run the java client such as

    Mutation.Builder b = Mutation.newBuilder(mu);
    b.addDel(
                      NQuad.newBuilder()
                                .setSubject(uid)
                                .setPredicate(predicate)
                                .setObjectId(valueUid)            // valueUid is the Object's uid
                                .build()
    ).build();
    

    the server throw an exeption such as

    Exception in thread "main" io.grpc.StatusRuntimeException: UNKNOWN: Please use * with delete operation for non-list type
    	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:210)
    	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:191)
    	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:124)
    	at io.dgraph.DgraphGrpc$DgraphBlockingStub.mutate(DgraphGrpc.java:298)
    	at io.dgraph.DgraphClient$Transaction.mutate(DgraphClient.java:211)
    

    but when i run dgraph with the source code , i success delete the edge use the same java code

    can anyone tell me why. (is the binaries version is not use the newest source code?)

    investigate 
    opened by yunzhongshu 40
  • Benchmark Dgraph against Cayley

    Benchmark Dgraph against Cayley

    This is the most popular page on discuss: https://discuss.dgraph.io/t/differences-between-dgraph-and-cayley/23

    This is also the most popular question on Reddit: https://www.reddit.com/comments/4fs7qm/why_we_built_dgraph/

    And again: https://www.reddit.com/r/golang/comments/3uyj8m/announcing_alpha_release_of_open_source/

    And again on HN: https://news.ycombinator.com/item?id=11322444

    So, it's about time we do a real benchmark. @ashwin95r has written some code to benchmark Dgraph for his final year thesis. So, he will be the coordinator for this project.

    We can reuse that code to throw similar queries at Cayley and see how it compares.

    benchmark help wanted 
    opened by manishrjain 36
  • During replication server consumes all RAM and crashes

    During replication server consumes all RAM and crashes

    If you suspect this could be a bug, follow the template.

    • What version of Dgraph are you using? docker dgraph/dgraph:v1.0.5

    • Have you tried reproducing the issue with latest release? Yes, I tried it on dgraph/dgraph:master

    • What is the hardware spec (RAM, OS)? I run kubernetes cluster on AWS. Instance is m5.xlarge with 16 GB of RAM and 250 SSD HD

    • Steps to reproduce the issue (command/config used to run Dgraph).

    1. Start kubernetes cluster with configuration:
    # There are 4 public services exposed, users can use:
    #       dgraph-zero-public - To load data using Live & Bulk Loaders
    #       dgraph-server-public - To connect clients and for HTTP APIs
    #       dgraph-ratel-public - For Dgraph UI
    #       dgraph-server-x-http-public - Use for debugging & profiling
    apiVersion: v1
    kind: Service
    metadata:
      name: dgraph-zero-public
      labels:
        app: dgraph-zero
    spec:
      type: LoadBalancer
      ports:
      - port: 5080
        targetPort: 5080
        name: zero-grpc
      - port: 6080
        targetPort: 6080
        name: zero-http
      selector:
        app: dgraph-zero
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: dgraph-server-public
      labels:
        app: dgraph-server
    spec:
      type: LoadBalancer
      ports:
      - port: 8080
        targetPort: 8080
        name: server-http
      - port: 9080
        targetPort: 9080
        name: server-grpc
      selector:
        app: dgraph-server
    ---
    # This service is created in-order to debug & profile a specific server.
    # You can create one for each server that you need to profile.
    # For a more general HTTP APIs use the above service instead.
    apiVersion: v1
    kind: Service
    metadata:
      name: dgraph-ratel-public
      labels:
        app: dgraph-ratel
    spec:
      type: NodePort
      ports:
      - port: 8000
        targetPort: 8000
        name: ratel-http
      selector:
        app: dgraph-ratel
    ---
    # This is a headless service which is neccessary for discovery for a dgraph-zero StatefulSet.
    # https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#creating-a-statefulset
    apiVersion: v1
    kind: Service
    metadata:
      name: dgraph-zero
      labels:
        app: dgraph-zero
    spec:
      ports:
      - port: 5080
        targetPort: 5080
        name: zero-grpc
      clusterIP: None
      selector:
        app: dgraph-zero
    ---
    # This is a headless service which is neccessary for discovery for a dgraph-server StatefulSet.
    # https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#creating-a-statefulset
    apiVersion: v1
    kind: Service
    metadata:
      name: dgraph-server
      labels:
        app: dgraph-server
    spec:
      ports:
      - port: 7080
        targetPort: 7080
        name: server-grpc-int
      clusterIP: None
      selector:
        app: dgraph-server
    ---
    # This StatefulSet runs 3 Dgraph Zero.
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: dgraph-zero
    spec:
      serviceName: "dgraph-zero"
      replicas: 1
      selector:
        matchLabels:
          app: dgraph-zero
      template:
        metadata:
          labels:
            app: dgraph-zero
        spec:
          affinity:
            podAntiAffinity:
              preferredDuringSchedulingIgnoredDuringExecution:
              - weight: 100
                podAffinityTerm:
                  labelSelector:
                    matchExpressions:
                    - key: app
                      operator: In
                      values:
                      - dgraph-zero
                  topologyKey: kubernetes.io/hostname
          containers:
          - name: zero
            image: dgraph/dgraph:latest
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 5080
              name: zero-grpc
            - containerPort: 6080
              name: zero-http
            volumeMounts:
            - name: datadir
              mountPath: /dgraph
            command:
              - bash
              - "-c"
              - |
                set -ex
                [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
                ordinal=${BASH_REMATCH[1]}
                idx=$(($ordinal + 1))
                if [[ $ordinal -eq 0 ]]; then
                  dgraph zero --my=$(hostname -f):5080 --idx $idx --replicas 3
                else
                  dgraph zero --my=$(hostname -f):5080 --peer dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080 --idx $idx --replicas 3
                fi
          terminationGracePeriodSeconds: 60
          volumes:
          - name: datadir
            persistentVolumeClaim:
              claimName: datadir
      updateStrategy:
        type: RollingUpdate
      volumeClaimTemplates:
      - metadata:
          name: datadir
          annotations:
            volume.alpha.kubernetes.io/storage-class: anything
        spec:
          accessModes:
            - "ReadWriteOnce"
          resources:
            requests:
              storage: 5Gi
    ---
    # This StatefulSet runs 6 Dgraph Server forming two server groups, 3 servers in each group.
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: dgraph-server
    spec:
      serviceName: "dgraph-server"
      replicas: 0
      selector:
        matchLabels:
          app: dgraph-server
      template:
        metadata:
          labels:
            app: dgraph-server
        spec:
          affinity:
            podAntiAffinity:
              preferredDuringSchedulingIgnoredDuringExecution:
              - weight: 100
                podAffinityTerm:
                  labelSelector:
                    matchExpressions:
                    - key: app
                      operator: In
                      values:
                      - dgraph-server
                  topologyKey: kubernetes.io/hostname
          containers:
          - name: server
            image: dgraph/dgraph:latest
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 7080
              name: server-grpc-int
            - containerPort: 8080
              name: server-http
            - containerPort: 9080
              name: server-grpc
            volumeMounts:
            - name: datadir
              mountPath: /dgraph
            command:
              - bash
              - "-c"
              - |
                set -ex
                dgraph server --my=$(hostname -f):7080 --lru_mb 4096 --zero dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080
          terminationGracePeriodSeconds: 60
          volumes:
          - name: datadir
            persistentVolumeClaim:
              claimName: datadir
      updateStrategy:
        type: RollingUpdate
      volumeClaimTemplates:
      - metadata:
          name: datadir
          annotations:
            volume.alpha.kubernetes.io/storage-class: anything
        spec:
          accessModes:
            - "ReadWriteOnce"
          resources:
            requests:
              storage: 250Gi
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dgraph-ratel
      labels:
        app: dgraph-ratel
    spec:
      selector:
        matchLabels:
          app: dgraph-ratel
      template:
        metadata:
          labels:
            app: dgraph-ratel
        spec:
          containers:
          - name: ratel
            image: dgraph/dgraph:latest
            ports:
            - containerPort: 8000
            command:
              - dgraph-ratel
    
    1. When cluster is ready, I start dgraph bulk on separate machine with 32 GB of RAM. Bulk process is connected to k8s zero server and finish with
    MAP 01h34m47s rdf_count:465.1M rdf_speed:81.77k/sec edge_count:1.560G edge_speed:274.4k/sec
    ...
    REDUCE 03h11m37s [100.00%] edge_count:1.560G edge_speed:268.7k/sec plist_count:641.3M plist_speed:110.4k/sec
    

    It produce about 111 GB.

    1. I create k8s PVC SSD HDD (250 GB) for dgraph server 0 and copy bulk data on it.
    2. Setup replication count for dgraph server to 1.
    3. Wait for boot on.
    kubectl logs -f dgraph-server-0
    ++ hostname -f
    + dgraph server --my=dgraph-server-0.dgraph-server.default.svc.cluster.local:7080 --lru_mb 4096 --zero dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080
    2018/06/01 13:28:24 worker.go:89: Worker listening at address: [::]:7080
    2018/06/01 13:28:24 gRPC server started.  Listening on port 9080
    2018/06/01 13:28:24 HTTP server started.  Listening on port 8080
    2018/06/01 13:28:24 groups.go:78: Current Raft Id: 0
    2018/06/01 13:28:25 pool.go:108: == CONNECT ==> Setting dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080
    2018/06/01 13:28:25 groups.go:105: Connected to group zero. Assigned group: 1
    2018/06/01 13:28:25 draft.go:170: Node ID: 1 with GroupID: 1
    2018/06/01 13:28:25 node.go:240: Group 1 found 0 entries
    2018/06/01 13:28:25 draft.go:937: New Node for group: 1
    2018/06/01 13:28:25 raft.go:567: INFO: 1 became follower at term 0
    2018/06/01 13:28:25 raft.go:315: INFO: newRaft 1 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
    2018/06/01 13:28:25 raft.go:567: INFO: 1 became follower at term 1
    2018/06/01 13:28:25 node.go:118: Setting conf state to nodes:1 
    2018/06/01 13:28:25 raft.go:749: INFO: 1 is starting a new election at term 1
    2018/06/01 13:28:25 groups.go:346: Serving tablet for: _predicate_
    2018/06/01 13:28:25 raft.go:580: INFO: 1 became candidate at term 2
    2018/06/01 13:28:25 raft.go:664: INFO: 1 received MsgVoteResp from 1 at term 2
    2018/06/01 13:28:25 raft.go:621: INFO: 1 became leader at term 2
    2018/06/01 13:28:25 node.go:301: INFO: raft.node: 1 elected leader 1 at term 2
    2018/06/01 13:28:25 groups.go:346: Serving tablet for: at
    2018/06/01 13:28:25 mutation.go:181: Done schema update predicate:"_predicate_" value_type:STRING list:true 
    2018/06/01 13:28:25 groups.go:346: Serving tablet for: in
    2018/06/01 13:28:25 groups.go:346: Serving tablet for: count
    ...
    hundred of predicates
    ...
    2018/06/01 13:35:07 groups.go:346: Serving tablet for: user.selected.organization
    2018/06/01 13:35:07 groups.go:346: Serving tablet for: user.preferred.organization
    2018/06/01 13:35:07 groups.go:346: Serving tablet for: notification.occurrence.date
    2018/06/01 13:35:07 groups.go:346: Serving tablet for: dummy
    

    Server is responding and everything looks good.

    1. Replicas count do dgraph server is set on 2. Snapshot is sending:
    2018/06/01 15:12:45 raft.go:749: INFO: 1 is starting a new election at term 2
    2018/06/01 15:12:45 raft.go:580: INFO: 1 became candidate at term 3
    2018/06/01 15:12:45 raft.go:664: INFO: 1 received MsgVoteResp from 1 at term 3
    2018/06/01 15:12:45 raft.go:621: INFO: 1 became leader at term 3
    2018/06/01 15:12:45 node.go:301: INFO: raft.node: 1 elected leader 1 at term 3
    2018/06/01 17:45:11 pool.go:158: Echo error from dgraph-server-1.dgraph-server.default.svc.cluster.local:7080. Err: rpc error: code = Unavailable desc = all SubConns are in TransientFailure
    2018/06/01 17:45:11 pool.go:108: == CONNECT ==> Setting dgraph-server-1.dgraph-server.default.svc.cluster.local:7080
    2018/06/01 17:45:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05s, bytes sent: 22 MB, bytes/sec 4393253
    2018/06/01 17:45:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10s, bytes sent: 44 MB, bytes/sec 4449208
    2018/06/01 17:45:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15s, bytes sent: 66 MB, bytes/sec 4404129
    2018/06/01 17:45:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20s, bytes sent: 88 MB, bytes/sec 4381694
    2018/06/01 17:45:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25s, bytes sent: 110 MB, bytes/sec 4391688
    2018/06/01 17:45:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30s, bytes sent: 131 MB, bytes/sec 4377680
    2018/06/01 17:45:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 35s, bytes sent: 152 MB, bytes/sec 4347668
    2018/06/01 17:45:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 40s, bytes sent: 174 MB, bytes/sec 4358675
    2018/06/01 17:45:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 45s, bytes sent: 194 MB, bytes/sec 4318528
    2018/06/01 17:46:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 50s, bytes sent: 216 MB, bytes/sec 4320323
    2018/06/01 17:46:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 55s, bytes sent: 237 MB, bytes/sec 4301221
    2018/06/01 17:46:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m00s, bytes sent: 257 MB, bytes/sec 4282766
    2018/06/01 17:46:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m05s, bytes sent: 279 MB, bytes/sec 4288907
    2018/06/01 17:46:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m10s, bytes sent: 299 MB, bytes/sec 4266223
    2018/06/01 17:46:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m15s, bytes sent: 321 MB, bytes/sec 4276578
    2018/06/01 17:46:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m20s, bytes sent: 340 MB, bytes/sec 4255449
    2018/06/01 17:46:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m25s, bytes sent: 362 MB, bytes/sec 4253578
    2018/06/01 17:46:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m30s, bytes sent: 383 MB, bytes/sec 4251331
    2018/06/01 17:46:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m35s, bytes sent: 402 MB, bytes/sec 4229044
    2018/06/01 17:46:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m40s, bytes sent: 423 MB, bytes/sec 4234240
    2018/06/01 17:46:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m45s, bytes sent: 445 MB, bytes/sec 4235367
    2018/06/01 17:47:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m50s, bytes sent: 463 MB, bytes/sec 4208357
    2018/06/01 17:47:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m55s, bytes sent: 484 MB, bytes/sec 4205258
    2018/06/01 17:47:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m00s, bytes sent: 505 MB, bytes/sec 4208297
    2018/06/01 17:47:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m05s, bytes sent: 524 MB, bytes/sec 4193215
    2018/06/01 17:47:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m10s, bytes sent: 543 MB, bytes/sec 4179465
    2018/06/01 17:47:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m15s, bytes sent: 564 MB, bytes/sec 4177842
    2018/06/01 17:47:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m20s, bytes sent: 584 MB, bytes/sec 4169674
    2018/06/01 17:47:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m25s, bytes sent: 604 MB, bytes/sec 4162970
    2018/06/01 17:47:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m30s, bytes sent: 622 MB, bytes/sec 4143588
    2018/06/01 17:47:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m35s, bytes sent: 642 MB, bytes/sec 4140368
    2018/06/01 17:47:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m40s, bytes sent: 661 MB, bytes/sec 4133150
    2018/06/01 17:47:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m45s, bytes sent: 681 MB, bytes/sec 4124900
    2018/06/01 17:48:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m50s, bytes sent: 701 MB, bytes/sec 4121609
    2018/06/01 17:48:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m55s, bytes sent: 717 MB, bytes/sec 4097400
    2018/06/01 17:48:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m00s, bytes sent: 736 MB, bytes/sec 4088239
    2018/06/01 17:48:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m05s, bytes sent: 756 MB, bytes/sec 4084180
    2018/06/01 17:48:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m10s, bytes sent: 774 MB, bytes/sec 4072266
    2018/06/01 17:48:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m15s, bytes sent: 791 MB, bytes/sec 4055813
    2018/06/01 17:48:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m19s, bytes sent: 811 MB, bytes/sec 4073739
    2018/06/01 17:48:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m25s, bytes sent: 830 MB, bytes/sec 4050333
    2018/06/01 17:48:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m30s, bytes sent: 850 MB, bytes/sec 4046088
    2018/06/01 17:48:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m35s, bytes sent: 869 MB, bytes/sec 4043575
    2018/06/01 17:48:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m40s, bytes sent: 886 MB, bytes/sec 4025607
    2018/06/01 17:48:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m45s, bytes sent: 902 MB, bytes/sec 4011002
    2018/06/01 17:49:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m50s, bytes sent: 921 MB, bytes/sec 4004382
    2018/06/01 17:49:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m55s, bytes sent: 939 MB, bytes/sec 3997608
    2018/06/01 17:49:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m00s, bytes sent: 958 MB, bytes/sec 3991401
    2018/06/01 17:49:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m05s, bytes sent: 977 MB, bytes/sec 3986740
    2018/06/01 17:49:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m10s, bytes sent: 996 MB, bytes/sec 3982052
    2018/06/01 17:49:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m15s, bytes sent: 1.0 GB, bytes/sec 3977189
    2018/06/01 17:49:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m20s, bytes sent: 1.0 GB, bytes/sec 3973324
    2018/06/01 17:49:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m25s, bytes sent: 1.1 GB, bytes/sec 3970729
    2018/06/01 17:49:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m30s, bytes sent: 1.1 GB, bytes/sec 3968236
    2018/06/01 17:49:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m35s, bytes sent: 1.1 GB, bytes/sec 3965634
    2018/06/01 17:49:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m40s, bytes sent: 1.1 GB, bytes/sec 3962986
    2018/06/01 17:49:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m45s, bytes sent: 1.1 GB, bytes/sec 3950007
    2018/06/01 17:50:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m50s, bytes sent: 1.1 GB, bytes/sec 3949570
    2018/06/01 17:50:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m55s, bytes sent: 1.2 GB, bytes/sec 3948760
    2018/06/01 17:50:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m00s, bytes sent: 1.2 GB, bytes/sec 3943994
    2018/06/01 17:50:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m05s, bytes sent: 1.2 GB, bytes/sec 3938128
    2018/06/01 17:50:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m10s, bytes sent: 1.2 GB, bytes/sec 3931558
    2018/06/01 17:50:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m15s, bytes sent: 1.2 GB, bytes/sec 3927464
    2018/06/01 17:50:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m20s, bytes sent: 1.3 GB, bytes/sec 3924201
    2018/06/01 17:50:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m25s, bytes sent: 1.3 GB, bytes/sec 3919021
    2018/06/01 17:50:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m30s, bytes sent: 1.3 GB, bytes/sec 3913088
    2018/06/01 17:50:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m35s, bytes sent: 1.3 GB, bytes/sec 3908579
    2018/06/01 17:50:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m40s, bytes sent: 1.3 GB, bytes/sec 3901949
    2018/06/01 17:50:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m45s, bytes sent: 1.3 GB, bytes/sec 3895386
    2018/06/01 17:51:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m50s, bytes sent: 1.4 GB, bytes/sec 3890055
    2018/06/01 17:51:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m55s, bytes sent: 1.4 GB, bytes/sec 3890257
    2018/06/01 17:51:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m00s, bytes sent: 1.4 GB, bytes/sec 3881119
    2018/06/01 17:51:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m05s, bytes sent: 1.4 GB, bytes/sec 3883889
    2018/06/01 17:51:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m10s, bytes sent: 1.4 GB, bytes/sec 3878649
    2018/06/01 17:51:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m15s, bytes sent: 1.4 GB, bytes/sec 3862716
    2018/06/01 17:51:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m20s, bytes sent: 1.5 GB, bytes/sec 3857627
    2018/06/01 17:51:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m25s, bytes sent: 1.5 GB, bytes/sec 3850813
    2018/06/01 17:51:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m30s, bytes sent: 1.5 GB, bytes/sec 3848179
    2018/06/01 17:51:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m35s, bytes sent: 1.5 GB, bytes/sec 3852186
    2018/06/01 17:51:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m40s, bytes sent: 1.5 GB, bytes/sec 3847207
    2018/06/01 17:51:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m45s, bytes sent: 1.6 GB, bytes/sec 3839918
    2018/06/01 17:52:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m50s, bytes sent: 1.6 GB, bytes/sec 3830104
    2018/06/01 17:52:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 06m55s, bytes sent: 1.6 GB, bytes/sec 3824781
    2018/06/01 17:52:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m00s, bytes sent: 1.6 GB, bytes/sec 3827268
    2018/06/01 17:52:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m05s, bytes sent: 1.6 GB, bytes/sec 3823951
    2018/06/01 17:52:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m10s, bytes sent: 1.6 GB, bytes/sec 3814258
    2018/06/01 17:52:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m15s, bytes sent: 1.7 GB, bytes/sec 3807813
    2018/06/01 17:52:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m20s, bytes sent: 1.7 GB, bytes/sec 3796504
    2018/06/01 17:52:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m25s, bytes sent: 1.7 GB, bytes/sec 3801479
    2018/06/01 17:52:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m30s, bytes sent: 1.7 GB, bytes/sec 3797149
    2018/06/01 17:52:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m35s, bytes sent: 1.7 GB, bytes/sec 3784648
    2018/06/01 17:52:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m40s, bytes sent: 1.7 GB, bytes/sec 3776229
    2018/06/01 17:52:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m45s, bytes sent: 1.8 GB, bytes/sec 3770879
    2018/06/01 17:53:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m50s, bytes sent: 1.8 GB, bytes/sec 3775632
    2018/06/01 17:53:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 07m55s, bytes sent: 1.8 GB, bytes/sec 3767350
    2018/06/01 17:53:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m00s, bytes sent: 1.8 GB, bytes/sec 3758027
    2018/06/01 17:53:19 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m07s, bytes sent: 1.8 GB, bytes/sec 3744498
    2018/06/01 17:53:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m10s, bytes sent: 1.8 GB, bytes/sec 3721572
    2018/06/01 17:53:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m15s, bytes sent: 1.9 GB, bytes/sec 3780391
    2018/06/01 17:53:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m19s, bytes sent: 1.9 GB, bytes/sec 3861983
    2018/06/01 17:53:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m25s, bytes sent: 1.9 GB, bytes/sec 3860727
    2018/06/01 17:53:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m30s, bytes sent: 2.0 GB, bytes/sec 3855591
    2018/06/01 17:53:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m35s, bytes sent: 2.0 GB, bytes/sec 3848487
    2018/06/01 17:53:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m40s, bytes sent: 2.0 GB, bytes/sec 3841572
    2018/06/01 17:53:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m45s, bytes sent: 2.0 GB, bytes/sec 3847627
    2018/06/01 17:54:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m50s, bytes sent: 2.0 GB, bytes/sec 3841937
    2018/06/01 17:54:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 08m55s, bytes sent: 2.1 GB, bytes/sec 3835490
    2018/06/01 17:54:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m00s, bytes sent: 2.1 GB, bytes/sec 3838153
    2018/06/01 17:54:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m05s, bytes sent: 2.1 GB, bytes/sec 3836492
    2018/06/01 17:54:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m10s, bytes sent: 2.1 GB, bytes/sec 3829414
    2018/06/01 17:54:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m15s, bytes sent: 2.1 GB, bytes/sec 3822346
    2018/06/01 17:54:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m20s, bytes sent: 2.1 GB, bytes/sec 3828629
    2018/06/01 17:54:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m25s, bytes sent: 2.2 GB, bytes/sec 3820716
    2018/06/01 17:54:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m30s, bytes sent: 2.2 GB, bytes/sec 3812062
    2018/06/01 17:54:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m35s, bytes sent: 2.2 GB, bytes/sec 3817085
    2018/06/01 17:54:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m40s, bytes sent: 2.2 GB, bytes/sec 3812566
    2018/06/01 17:54:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m45s, bytes sent: 2.2 GB, bytes/sec 3804485
    2018/06/01 17:55:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m50s, bytes sent: 2.2 GB, bytes/sec 3803759
    2018/06/01 17:55:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m55s, bytes sent: 2.3 GB, bytes/sec 3804736
    2018/06/01 17:55:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 09m59s, bytes sent: 2.3 GB, bytes/sec 3797506
    2018/06/01 17:55:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m05s, bytes sent: 2.3 GB, bytes/sec 3783498
    2018/06/01 17:55:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m10s, bytes sent: 2.3 GB, bytes/sec 3790308
    2018/06/01 17:55:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m15s, bytes sent: 2.3 GB, bytes/sec 3781984
    2018/06/01 17:55:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m20s, bytes sent: 2.3 GB, bytes/sec 3774783
    2018/06/01 17:55:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m25s, bytes sent: 2.4 GB, bytes/sec 3777479
    2018/06/01 17:55:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m30s, bytes sent: 2.4 GB, bytes/sec 3769624
    2018/06/01 17:55:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m35s, bytes sent: 2.4 GB, bytes/sec 3767215
    2018/06/01 17:55:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m40s, bytes sent: 2.4 GB, bytes/sec 3770315
    2018/06/01 17:55:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m45s, bytes sent: 2.4 GB, bytes/sec 3762009
    2018/06/01 17:56:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m50s, bytes sent: 2.4 GB, bytes/sec 3762667
    2018/06/01 17:56:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10m55s, bytes sent: 2.5 GB, bytes/sec 3761090
    2018/06/01 17:56:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m00s, bytes sent: 2.5 GB, bytes/sec 3751960
    2018/06/01 17:56:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m05s, bytes sent: 2.5 GB, bytes/sec 3757080
    2018/06/01 17:56:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m10s, bytes sent: 2.5 GB, bytes/sec 3751188
    2018/06/01 17:56:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m15s, bytes sent: 2.5 GB, bytes/sec 3743468
    2018/06/01 17:56:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m20s, bytes sent: 2.6 GB, bytes/sec 3750871
    2018/06/01 17:56:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m25s, bytes sent: 2.6 GB, bytes/sec 3742799
    2018/06/01 17:56:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m30s, bytes sent: 2.6 GB, bytes/sec 3738491
    2018/06/01 17:56:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m35s, bytes sent: 2.6 GB, bytes/sec 3738602
    2018/06/01 17:56:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m40s, bytes sent: 2.6 GB, bytes/sec 3730983
    2018/06/01 17:56:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m45s, bytes sent: 2.6 GB, bytes/sec 3735215
    2018/06/01 17:57:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m50s, bytes sent: 2.6 GB, bytes/sec 3730017
    2018/06/01 17:57:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 11m55s, bytes sent: 2.7 GB, bytes/sec 3721870
    2018/06/01 17:57:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m00s, bytes sent: 2.7 GB, bytes/sec 3728146
    2018/06/01 17:57:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m05s, bytes sent: 2.7 GB, bytes/sec 3720046
    2018/06/01 17:57:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m10s, bytes sent: 2.7 GB, bytes/sec 3715153
    2018/06/01 17:57:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m15s, bytes sent: 2.7 GB, bytes/sec 3715948
    2018/06/01 17:57:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m20s, bytes sent: 2.7 GB, bytes/sec 3707757
    2018/06/01 17:57:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m25s, bytes sent: 2.8 GB, bytes/sec 3711457
    2018/06/01 17:57:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m30s, bytes sent: 2.8 GB, bytes/sec 3706027
    2018/06/01 17:57:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m35s, bytes sent: 2.8 GB, bytes/sec 3699451
    2018/06/01 17:57:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m40s, bytes sent: 2.8 GB, bytes/sec 3703611
    2018/06/01 17:57:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m45s, bytes sent: 2.8 GB, bytes/sec 3694715
    2018/06/01 17:58:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m50s, bytes sent: 2.8 GB, bytes/sec 3689339
    2018/06/01 17:58:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 12m55s, bytes sent: 2.9 GB, bytes/sec 3687580
    2018/06/01 17:58:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m00s, bytes sent: 2.9 GB, bytes/sec 3679697
    2018/06/01 17:58:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m05s, bytes sent: 2.9 GB, bytes/sec 3685320
    2018/06/01 17:58:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m10s, bytes sent: 2.9 GB, bytes/sec 3677117
    2018/06/01 17:58:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m15s, bytes sent: 2.9 GB, bytes/sec 3684752
    2018/06/01 17:58:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m20s, bytes sent: 2.9 GB, bytes/sec 3676421
    2018/06/01 17:58:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m25s, bytes sent: 3.0 GB, bytes/sec 3676760
    2018/06/01 17:58:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m30s, bytes sent: 3.0 GB, bytes/sec 3674590
    2018/06/01 17:58:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m35s, bytes sent: 3.0 GB, bytes/sec 3668357
    2018/06/01 17:58:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m40s, bytes sent: 3.0 GB, bytes/sec 3673005
    2018/06/01 17:58:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m45s, bytes sent: 3.0 GB, bytes/sec 3664252
    2018/06/01 17:59:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m50s, bytes sent: 3.0 GB, bytes/sec 3670518
    2018/06/01 17:59:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 13m55s, bytes sent: 3.1 GB, bytes/sec 3662421
    2018/06/01 17:59:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m00s, bytes sent: 3.1 GB, bytes/sec 3666432
    2018/06/01 17:59:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m05s, bytes sent: 3.1 GB, bytes/sec 3660437
    2018/06/01 17:59:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m10s, bytes sent: 3.1 GB, bytes/sec 3659825
    2018/06/01 17:59:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m15s, bytes sent: 3.1 GB, bytes/sec 3657310
    2018/06/01 17:59:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m20s, bytes sent: 3.1 GB, bytes/sec 3652183
    2018/06/01 17:59:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m25s, bytes sent: 3.2 GB, bytes/sec 3653679
    2018/06/01 17:59:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m30s, bytes sent: 3.2 GB, bytes/sec 3645780
    2018/06/01 17:59:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m35s, bytes sent: 3.2 GB, bytes/sec 3651923
    2018/06/01 17:59:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m40s, bytes sent: 3.2 GB, bytes/sec 3643520
    2018/06/01 17:59:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m45s, bytes sent: 3.2 GB, bytes/sec 3650083
    2018/06/01 18:00:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m50s, bytes sent: 3.2 GB, bytes/sec 3641529
    2018/06/01 18:00:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14m55s, bytes sent: 3.3 GB, bytes/sec 3643243
    2018/06/01 18:00:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m00s, bytes sent: 3.3 GB, bytes/sec 3638431
    2018/06/01 18:00:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m05s, bytes sent: 3.3 GB, bytes/sec 3636386
    2018/06/01 18:00:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m10s, bytes sent: 3.3 GB, bytes/sec 3635220
    2018/06/01 18:00:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m15s, bytes sent: 3.3 GB, bytes/sec 3629649
    2018/06/01 18:00:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m20s, bytes sent: 3.3 GB, bytes/sec 3632656
    2018/06/01 18:00:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m25s, bytes sent: 3.4 GB, bytes/sec 3624341
    2018/06/01 18:00:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m30s, bytes sent: 3.4 GB, bytes/sec 3628998
    2018/06/01 18:00:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m35s, bytes sent: 3.4 GB, bytes/sec 3619894
    2018/06/01 18:00:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m40s, bytes sent: 3.4 GB, bytes/sec 3624584
    2018/06/01 18:00:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m45s, bytes sent: 3.4 GB, bytes/sec 3616038
    2018/06/01 18:01:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m50s, bytes sent: 3.4 GB, bytes/sec 3621920
    2018/06/01 18:01:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 15m55s, bytes sent: 3.5 GB, bytes/sec 3612809
    2018/06/01 18:01:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m00s, bytes sent: 3.5 GB, bytes/sec 3615435
    2018/06/01 18:01:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m05s, bytes sent: 3.5 GB, bytes/sec 3609578
    2018/06/01 18:01:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m10s, bytes sent: 3.5 GB, bytes/sec 3612228
    2018/06/01 18:01:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m15s, bytes sent: 3.5 GB, bytes/sec 3606000
    2018/06/01 18:01:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m20s, bytes sent: 3.5 GB, bytes/sec 3598348
    2018/06/01 18:01:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m25s, bytes sent: 3.5 GB, bytes/sec 3599619
    2018/06/01 18:01:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m30s, bytes sent: 3.6 GB, bytes/sec 3595854
    2018/06/01 18:01:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m34s, bytes sent: 3.6 GB, bytes/sec 3599083
    2018/06/01 18:01:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m40s, bytes sent: 3.6 GB, bytes/sec 3591672
    2018/06/01 18:01:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m45s, bytes sent: 3.6 GB, bytes/sec 3592740
    2018/06/01 18:02:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m50s, bytes sent: 3.6 GB, bytes/sec 3587499
    2018/06/01 18:02:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 16m55s, bytes sent: 3.6 GB, bytes/sec 3589162
    2018/06/01 18:02:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m00s, bytes sent: 3.7 GB, bytes/sec 3584319
    2018/06/01 18:02:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m05s, bytes sent: 3.7 GB, bytes/sec 3579268
    2018/06/01 18:02:24 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m13s, bytes sent: 3.7 GB, bytes/sec 3596038
    2018/06/01 18:02:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m15s, bytes sent: 3.8 GB, bytes/sec 3637856
    2018/06/01 18:02:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m20s, bytes sent: 3.8 GB, bytes/sec 3631768
    2018/06/01 18:02:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m25s, bytes sent: 3.8 GB, bytes/sec 3642069
    2018/06/01 18:02:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m30s, bytes sent: 3.8 GB, bytes/sec 3638064
    2018/06/01 18:02:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m35s, bytes sent: 3.8 GB, bytes/sec 3640471
    2018/06/01 18:02:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m40s, bytes sent: 3.9 GB, bytes/sec 3645572
    2018/06/01 18:02:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m45s, bytes sent: 3.9 GB, bytes/sec 3641293
    2018/06/01 18:03:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m50s, bytes sent: 3.9 GB, bytes/sec 3650106
    2018/06/01 18:03:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 17m55s, bytes sent: 3.9 GB, bytes/sec 3642771
    2018/06/01 18:03:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m00s, bytes sent: 3.9 GB, bytes/sec 3650795
    2018/06/01 18:03:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m05s, bytes sent: 4.0 GB, bytes/sec 3651665
    2018/06/01 18:03:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m10s, bytes sent: 4.0 GB, bytes/sec 3652878
    2018/06/01 18:03:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m15s, bytes sent: 4.0 GB, bytes/sec 3656737
    2018/06/01 18:03:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m20s, bytes sent: 4.0 GB, bytes/sec 3650280
    2018/06/01 18:03:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m25s, bytes sent: 4.0 GB, bytes/sec 3659106
    2018/06/01 18:03:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m30s, bytes sent: 4.1 GB, bytes/sec 3652469
    2018/06/01 18:03:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m35s, bytes sent: 4.1 GB, bytes/sec 3660269
    2018/06/01 18:03:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m40s, bytes sent: 4.1 GB, bytes/sec 3662390
    2018/06/01 18:03:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m45s, bytes sent: 4.1 GB, bytes/sec 3662130
    2018/06/01 18:04:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m50s, bytes sent: 4.1 GB, bytes/sec 3670620
    2018/06/01 18:04:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 18m55s, bytes sent: 4.2 GB, bytes/sec 3662772
    2018/06/01 18:04:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m00s, bytes sent: 4.2 GB, bytes/sec 3672566
    2018/06/01 18:04:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m05s, bytes sent: 4.2 GB, bytes/sec 3672128
    2018/06/01 18:04:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m10s, bytes sent: 4.2 GB, bytes/sec 3673396
    2018/06/01 18:04:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m15s, bytes sent: 4.3 GB, bytes/sec 3682707
    2018/06/01 18:04:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m20s, bytes sent: 4.3 GB, bytes/sec 3674007
    2018/06/01 18:04:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m25s, bytes sent: 4.3 GB, bytes/sec 3678505
    2018/06/01 18:04:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m30s, bytes sent: 4.3 GB, bytes/sec 3682463
    2018/06/01 18:04:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m35s, bytes sent: 4.3 GB, bytes/sec 3679502
    2018/06/01 18:04:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m40s, bytes sent: 4.4 GB, bytes/sec 3687799
    2018/06/01 18:04:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m45s, bytes sent: 4.4 GB, bytes/sec 3682375
    2018/06/01 18:05:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m50s, bytes sent: 4.4 GB, bytes/sec 3688005
    2018/06/01 18:05:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 19m55s, bytes sent: 4.4 GB, bytes/sec 3695026
    2018/06/01 18:05:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m00s, bytes sent: 4.4 GB, bytes/sec 3686564
    2018/06/01 18:05:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m05s, bytes sent: 4.4 GB, bytes/sec 3691981
    2018/06/01 18:05:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m10s, bytes sent: 4.5 GB, bytes/sec 3690294
    2018/06/01 18:05:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m15s, bytes sent: 4.5 GB, bytes/sec 3689841
    2018/06/01 18:05:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m20s, bytes sent: 4.5 GB, bytes/sec 3694863
    2018/06/01 18:05:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m25s, bytes sent: 4.5 GB, bytes/sec 3687340
    2018/06/01 18:05:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m30s, bytes sent: 4.5 GB, bytes/sec 3695152
    2018/06/01 18:05:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m35s, bytes sent: 4.6 GB, bytes/sec 3699043
    2018/06/01 18:05:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m40s, bytes sent: 4.6 GB, bytes/sec 3696077
    2018/06/01 18:05:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m45s, bytes sent: 4.6 GB, bytes/sec 3704682
    2018/06/01 18:06:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m50s, bytes sent: 4.6 GB, bytes/sec 3697894
    2018/06/01 18:06:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20m55s, bytes sent: 4.6 GB, bytes/sec 3700931
    2018/06/01 18:06:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m00s, bytes sent: 4.7 GB, bytes/sec 3703253
    2018/06/01 18:06:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m05s, bytes sent: 4.7 GB, bytes/sec 3695026
    2018/06/01 18:06:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m10s, bytes sent: 4.7 GB, bytes/sec 3701953
    2018/06/01 18:06:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m15s, bytes sent: 4.7 GB, bytes/sec 3703324
    2018/06/01 18:06:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m20s, bytes sent: 4.7 GB, bytes/sec 3702260
    2018/06/01 18:06:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m25s, bytes sent: 4.8 GB, bytes/sec 3710631
    2018/06/01 18:06:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m30s, bytes sent: 4.8 GB, bytes/sec 3703069
    2018/06/01 18:06:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m35s, bytes sent: 4.8 GB, bytes/sec 3709731
    2018/06/01 18:06:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m40s, bytes sent: 4.8 GB, bytes/sec 3713884
    2018/06/01 18:06:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m45s, bytes sent: 4.8 GB, bytes/sec 3710874
    2018/06/01 18:07:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m50s, bytes sent: 4.9 GB, bytes/sec 3714888
    2018/06/01 18:07:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 21m55s, bytes sent: 4.9 GB, bytes/sec 3711779
    2018/06/01 18:07:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m00s, bytes sent: 4.9 GB, bytes/sec 3710852
    2018/06/01 18:07:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m05s, bytes sent: 4.9 GB, bytes/sec 3718597
    2018/06/01 18:07:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m10s, bytes sent: 4.9 GB, bytes/sec 3710743
    2018/06/01 18:07:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m15s, bytes sent: 5.0 GB, bytes/sec 3718391
    2018/06/01 18:07:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m20s, bytes sent: 5.0 GB, bytes/sec 3720274
    2018/06/01 18:07:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m25s, bytes sent: 5.0 GB, bytes/sec 3713716
    2018/06/01 18:07:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m30s, bytes sent: 5.0 GB, bytes/sec 3716661
    2018/06/01 18:07:57 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m35s, bytes sent: 5.0 GB, bytes/sec 3713399
    2018/06/01 18:07:57 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m45s, bytes sent: 5.0 GB, bytes/sec 3686194
    2018/06/01 18:07:57 node.go:400: WARN: A tick missed to fire. Node blocks too long!
    2018/06/01 18:08:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m50s, bytes sent: 5.0 GB, bytes/sec 3680665
    2018/06/01 18:08:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 22m55s, bytes sent: 5.1 GB, bytes/sec 3686765
    2018/06/01 18:08:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m00s, bytes sent: 5.1 GB, bytes/sec 3688270
    2018/06/01 18:08:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m05s, bytes sent: 5.1 GB, bytes/sec 3681854
    2018/06/01 18:08:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m10s, bytes sent: 5.1 GB, bytes/sec 3687864
    2018/06/01 18:08:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m15s, bytes sent: 5.1 GB, bytes/sec 3688813
    2018/06/01 18:08:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m20s, bytes sent: 5.2 GB, bytes/sec 3685633
    2018/06/01 18:08:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m25s, bytes sent: 5.2 GB, bytes/sec 3692948
    2018/06/01 18:08:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m30s, bytes sent: 5.2 GB, bytes/sec 3689993
    2018/06/01 18:08:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m35s, bytes sent: 5.2 GB, bytes/sec 3691985
    2018/06/01 18:08:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m40s, bytes sent: 5.3 GB, bytes/sec 3697662
    2018/06/01 18:08:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m45s, bytes sent: 5.3 GB, bytes/sec 3691618
    2018/06/01 18:09:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m50s, bytes sent: 5.3 GB, bytes/sec 3696240
    2018/06/01 18:09:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 23m55s, bytes sent: 5.3 GB, bytes/sec 3703435
    2018/06/01 18:09:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m00s, bytes sent: 5.3 GB, bytes/sec 3694984
    2018/06/01 18:09:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m05s, bytes sent: 5.3 GB, bytes/sec 3702277
    2018/06/01 18:09:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m10s, bytes sent: 5.4 GB, bytes/sec 3707766
    2018/06/01 18:09:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m15s, bytes sent: 5.4 GB, bytes/sec 3701348
    2018/06/01 18:09:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m20s, bytes sent: 5.4 GB, bytes/sec 3708834
    2018/06/01 18:09:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m25s, bytes sent: 5.4 GB, bytes/sec 3710369
    2018/06/01 18:09:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m30s, bytes sent: 5.5 GB, bytes/sec 3708364
    2018/06/01 18:09:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m35s, bytes sent: 5.5 GB, bytes/sec 3711508
    2018/06/01 18:09:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m40s, bytes sent: 5.5 GB, bytes/sec 3709659
    2018/06/01 18:09:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m45s, bytes sent: 5.5 GB, bytes/sec 3709562
    2018/06/01 18:10:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m50s, bytes sent: 5.5 GB, bytes/sec 3715472
    2018/06/01 18:10:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 24m55s, bytes sent: 5.5 GB, bytes/sec 3709425
    2018/06/01 18:10:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m00s, bytes sent: 5.6 GB, bytes/sec 3713845
    2018/06/01 18:10:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m05s, bytes sent: 5.6 GB, bytes/sec 3717552
    2018/06/01 18:10:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m10s, bytes sent: 5.6 GB, bytes/sec 3709310
    2018/06/01 18:10:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m15s, bytes sent: 5.6 GB, bytes/sec 3715326
    2018/06/01 18:10:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m20s, bytes sent: 5.7 GB, bytes/sec 3721215
    2018/06/01 18:10:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m25s, bytes sent: 5.7 GB, bytes/sec 3713876
    2018/06/01 18:10:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m30s, bytes sent: 5.7 GB, bytes/sec 3720092
    2018/06/01 18:10:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m35s, bytes sent: 5.7 GB, bytes/sec 3721989
    2018/06/01 18:10:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m40s, bytes sent: 5.7 GB, bytes/sec 3718912
    2018/06/01 18:10:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m45s, bytes sent: 5.8 GB, bytes/sec 3724028
    2018/06/01 18:11:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m50s, bytes sent: 5.8 GB, bytes/sec 3721840
    2018/06/01 18:11:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25m55s, bytes sent: 5.8 GB, bytes/sec 3720416
    2018/06/01 18:11:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m00s, bytes sent: 5.8 GB, bytes/sec 3727138
    2018/06/01 18:11:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m05s, bytes sent: 5.8 GB, bytes/sec 3724077
    2018/06/01 18:11:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m10s, bytes sent: 5.8 GB, bytes/sec 3724611
    2018/06/01 18:11:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m15s, bytes sent: 5.9 GB, bytes/sec 3731143
    2018/06/01 18:11:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m20s, bytes sent: 5.9 GB, bytes/sec 3725705
    2018/06/01 18:11:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m25s, bytes sent: 5.9 GB, bytes/sec 3729426
    2018/06/01 18:11:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m30s, bytes sent: 5.9 GB, bytes/sec 3730807
    2018/06/01 18:11:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m35s, bytes sent: 5.9 GB, bytes/sec 3724076
    2018/06/01 18:11:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m40s, bytes sent: 6.0 GB, bytes/sec 3726924
    2018/06/01 18:11:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m45s, bytes sent: 6.0 GB, bytes/sec 3729892
    2018/06/01 18:12:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m50s, bytes sent: 6.0 GB, bytes/sec 3723104
    2018/06/01 18:12:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 26m55s, bytes sent: 6.0 GB, bytes/sec 3727931
    2018/06/01 18:12:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m00s, bytes sent: 6.0 GB, bytes/sec 3734131
    2018/06/01 18:12:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m05s, bytes sent: 6.1 GB, bytes/sec 3727231
    2018/06/01 18:12:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m10s, bytes sent: 6.1 GB, bytes/sec 3731079
    2018/06/01 18:12:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m15s, bytes sent: 6.1 GB, bytes/sec 3734923
    2018/06/01 18:12:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m20s, bytes sent: 6.1 GB, bytes/sec 3729985
    2018/06/01 18:12:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m25s, bytes sent: 6.1 GB, bytes/sec 3731835
    2018/06/01 18:12:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m30s, bytes sent: 6.2 GB, bytes/sec 3738031
    2018/06/01 18:12:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m35s, bytes sent: 6.2 GB, bytes/sec 3731600
    2018/06/01 18:12:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m40s, bytes sent: 6.2 GB, bytes/sec 3731866
    2018/06/01 18:12:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m45s, bytes sent: 6.2 GB, bytes/sec 3738084
    2018/06/01 18:13:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m50s, bytes sent: 6.2 GB, bytes/sec 3734261
    2018/06/01 18:13:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 27m55s, bytes sent: 6.3 GB, bytes/sec 3735015
    2018/06/01 18:13:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m00s, bytes sent: 6.3 GB, bytes/sec 3734983
    2018/06/01 18:13:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m05s, bytes sent: 6.3 GB, bytes/sec 3734066
    2018/06/01 18:13:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m10s, bytes sent: 6.3 GB, bytes/sec 3731217
    2018/06/01 18:13:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m15s, bytes sent: 6.3 GB, bytes/sec 3736654
    2018/06/01 18:13:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m20s, bytes sent: 6.4 GB, bytes/sec 3736024
    2018/06/01 18:13:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m25s, bytes sent: 6.4 GB, bytes/sec 3733827
    2018/06/01 18:13:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m30s, bytes sent: 6.4 GB, bytes/sec 3735442
    2018/06/01 18:13:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m35s, bytes sent: 6.4 GB, bytes/sec 3736446
    2018/06/01 18:13:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m40s, bytes sent: 6.4 GB, bytes/sec 3730353
    2018/06/01 18:13:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m45s, bytes sent: 6.4 GB, bytes/sec 3736661
    2018/06/01 18:14:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m50s, bytes sent: 6.5 GB, bytes/sec 3739884
    2018/06/01 18:14:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 28m55s, bytes sent: 6.5 GB, bytes/sec 3733970
    2018/06/01 18:14:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m00s, bytes sent: 6.5 GB, bytes/sec 3737049
    2018/06/01 18:14:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m05s, bytes sent: 6.5 GB, bytes/sec 3742519
    2018/06/01 18:14:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m10s, bytes sent: 6.5 GB, bytes/sec 3734867
    2018/06/01 18:14:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m15s, bytes sent: 6.6 GB, bytes/sec 3741173
    2018/06/01 18:14:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m20s, bytes sent: 6.6 GB, bytes/sec 3745944
    2018/06/01 18:14:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m25s, bytes sent: 6.6 GB, bytes/sec 3738840
    2018/06/01 18:14:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m30s, bytes sent: 6.6 GB, bytes/sec 3744760
    2018/06/01 18:14:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m35s, bytes sent: 6.7 GB, bytes/sec 3749055
    2018/06/01 18:14:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m40s, bytes sent: 6.7 GB, bytes/sec 3743877
    2018/06/01 18:14:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m45s, bytes sent: 6.7 GB, bytes/sec 3750013
    2018/06/01 18:15:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m50s, bytes sent: 6.7 GB, bytes/sec 3754006
    2018/06/01 18:15:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 29m55s, bytes sent: 6.7 GB, bytes/sec 3746860
    2018/06/01 18:15:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m00s, bytes sent: 6.8 GB, bytes/sec 3751817
    2018/06/01 18:15:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m05s, bytes sent: 6.8 GB, bytes/sec 3757730
    2018/06/01 18:15:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m10s, bytes sent: 6.8 GB, bytes/sec 3749419
    2018/06/01 18:15:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m15s, bytes sent: 6.8 GB, bytes/sec 3755456
    2018/06/01 18:15:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m20s, bytes sent: 6.8 GB, bytes/sec 3761676
    2018/06/01 18:15:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m25s, bytes sent: 6.8 GB, bytes/sec 3753418
    2018/06/01 18:15:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m30s, bytes sent: 6.9 GB, bytes/sec 3759134
    2018/06/01 18:15:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m35s, bytes sent: 6.9 GB, bytes/sec 3765156
    2018/06/01 18:15:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m40s, bytes sent: 6.9 GB, bytes/sec 3758325
    2018/06/01 18:15:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m45s, bytes sent: 6.9 GB, bytes/sec 3764308
    2018/06/01 18:16:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m49s, bytes sent: 7.0 GB, bytes/sec 3772195
    2018/06/01 18:16:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30m55s, bytes sent: 7.0 GB, bytes/sec 3762407
    2018/06/01 18:16:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 31m00s, bytes sent: 7.0 GB, bytes/sec 3767278
    2018/06/01 18:16:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 31m05s, bytes sent: 7.0 GB, bytes/sec 3773062
    

    On second terminal I control memory usage with htop and RAM is constantly consumed and when all memory is used service crashes. After restart 0 bytes of snapshot is send:

    ++ hostname -f
    + dgraph server --my=dgraph-server-0.dgraph-server.default.svc.cluster.local:7080 --lru_mb 4096 --zero dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080
    2018/06/01 18:18:59 gRPC server started.  Listening on port 9080
    2018/06/01 18:18:59 HTTP server started.  Listening on port 8080
    2018/06/01 18:18:59 worker.go:89: Worker listening at address: [::]:7080
    2018/06/01 18:18:59 groups.go:78: Current Raft Id: 1
    2018/06/01 18:18:59 pool.go:108: == CONNECT ==> Setting dgraph-zero-0.dgraph-zero.default.svc.cluster.local:5080
    2018/06/01 18:18:59 groups.go:105: Connected to group zero. Assigned group: 0
    2018/06/01 18:18:59 pool.go:108: == CONNECT ==> Setting dgraph-server-1.dgraph-server.default.svc.cluster.local:7080
    2018/06/01 18:18:59 draft.go:170: Node ID: 1 with GroupID: 1
    2018/06/01 18:18:59 node.go:228: Found hardstate: {Term:3 Vote:1 Commit:7 XXX_unrecognized:[]}
    2018/06/01 18:18:59 node.go:240: Group 1 found 7 entries
    2018/06/01 18:18:59 draft.go:926: Restarting node for group: 1
    2018/06/01 18:18:59 raft.go:567: INFO: 1 became follower at term 3
    2018/06/01 18:18:59 raft.go:315: INFO: newRaft 1 [peers: [], term: 3, commit: 7, applied: 0, lastindex: 7, lastterm: 3]
    2018/06/01 18:18:59 node.go:118: Setting conf state to nodes:1 
    2018/06/01 18:18:59 mutation.go:181: Done schema update predicate:"_predicate_" value_type:STRING list:true 
    2018/06/01 18:18:59 mutation.go:181: Done schema update predicate:"element.type.in" value_type:UID directive:REVERSE 
    2018/06/01 18:18:59 mutation.go:181: Done schema update predicate:"element.type.in" value_type:UID directive:REVERSE 
    2018/06/01 18:18:59 mutation.go:181: Done schema update predicate:"_share_hash_" value_type:STRING directive:INDEX tokenizer:"exact" 
    2018/06/01 18:19:03 raft.go:749: INFO: 1 is starting a new election at term 3
    2018/06/01 18:19:03 raft.go:580: INFO: 1 became candidate at term 4
    2018/06/01 18:19:03 raft.go:664: INFO: 1 received MsgVoteResp from 1 at term 4
    2018/06/01 18:19:03 raft.go:621: INFO: 1 became leader at term 4
    2018/06/01 18:19:03 node.go:301: INFO: raft.node: 1 elected leader 1 at term 4
    2018/06/01 18:19:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 14s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 25s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 35s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 40s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:19:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 44s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 50s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 55s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 59s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m05s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m15s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m25s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m35s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m40s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:20:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m45s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m50s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m55s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 01m59s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m05s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m15s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m25s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m35s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m40s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:21:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m45s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m50s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 02m55s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m00s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m05s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m15s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m25s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m35s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m40s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:22:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m45s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m50s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 03m55s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m00s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m04s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m15s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m24s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:46 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m35s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:51 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m40s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:23:56 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m45s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:01 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m50s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:06 predicate.go:250: Sending SNAPSHOT: Time elapsed: 04m55s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:11 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m00s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:16 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m05s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:21 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m10s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:26 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m15s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:31 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m20s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:36 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m25s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:41 predicate.go:250: Sending SNAPSHOT: Time elapsed: 05m30s, bytes sent: 0 B, bytes/sec 0
    2018/06/01 18:24:43 node.go:118: Setting conf state to nodes:1 nodes:2 
    

    After that, server is sometimes returns correct results and sometimes return nothing.

    • Expected behaviour and actual result.

    Replication is finished and server returns correct results always

    kind/bug 
    opened by selmeci 35
  • What is the default password?

    What is the default password?

    I setup dgraph using your docs - https://docs.dgraph.io/get-started

    Then it says to connect to ratel to start running queries.

    However, it won't connect at all. Everything is running fine according to docker logs.

    There is some mention of a default password, but no mention of what that password is.

    There are instructions on how to update the password using dgraph acl command but when I go into the console on the dgraph zero server and try to run that command, it says unknown command "acl" for "dgraph".

    Are there any instructions for getting started that actually detail everything you need to do?

    Why can't I set the default password via an environment variable similar to many other docker images?

    kind/question 
    opened by waynebloss 32
  • High CPU usage in dgraph v1.0.0 when I don't do any queries/mutations

    High CPU usage in dgraph v1.0.0 when I don't do any queries/mutations

    Dgraph version:

    Dgraph version   : v1.0.0
    Commit SHA-1     : 7a64f54b
    Commit timestamp : 2017-12-18 15:04:40 +0530
    Branch           : HEAD
    

    Dgraph linux binary: dgraph-linux-amd64-v1.0.0.tar.gz

    OS: Manjaro (Based on Arch Linux. I consider it's the same as arch linux)

    How do I run dgraph:

    dgraph zero --port_offset -2000 -w ${db_path}/zw/ >> ${log_file_zero} 2>&1 &
    sleep 10
    dgraph server --memory_mb 1024 --zero localhost:5080 -p ${db_path}/p/  -w ${db_path}/w/ >> ${log_file_server} 2>&1 &
    
    1. Create the schema by following https://tour.dgraph.io/moredata/1/
    2. Load the dataset with dgraph live -r 1million.rdf.gz --zero localhost:5080
    3. Shutdown and Restart dgraph zero and server to free up RAM.
    4. Apply the schema mutation at https://tour.dgraph.io/search/1/

    After the above 4 steps, the CPU usage is high about 40% busy when I don't do anything. I tried to shutdown and restart the dgraph zero and server many times. The CPU usage is always high when idle. It's not high all the time. It follows some kind of patterns. The CPU usage is high for several minutes, low for several minutes and then high again.

    This never happens in pre v1.0.0 versions such as v0.9.4, v0.9.2 etc...

    BTW, when I shutdown the dgraph server properly with curl http://localhost:8080/admin/shutdown, I always see the following snippet:

    goroutine 511 [running]:
    github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger.(*DB).sendToWriteCh(0xc420444300, 0x0, 0x0, 0x0, 0x10, 0x10, 0xc43218e460)
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger/db.go:609 +0x15f
    github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger.(*DB).batchSet(0xc420444300, 0x0, 0x0, 0x0, 0x0, 0x10)
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger/db.go:679 +0x4d
    github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger.(*DB).purgeVersionsBelow(0xc420444300, 0xc43345d290, 0xc43218e460, 0x10, 0x10, 0x8, 0x0, 0x0)
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger/db.go:931 +0x453
    github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger.(*ManagedDB).PurgeVersionsBelow(0xc42014e138, 0xc43218e460, 0x10, 0x10, 0x8, 0x0, 0x0)
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/vendor/github.com/dgraph-io/badger/managed_db.go:79 +0x127
    github.com/dgraph-io/dgraph/posting.periodicPurgeOldVersions.func1()
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/posting/lists.go:244 +0x2a2
    github.com/dgraph-io/dgraph/posting.periodicPurgeOldVersions()
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/posting/lists.go:254 +0x40
    created by github.com/dgraph-io/dgraph/posting.Init
        /home/travis/gopath/src/github.com/dgraph-io/dgraph/posting/lists.go:211 +0xe1
    

    I am not sure if this is related or not. This never appears before version 1.0.

    One more werid part in version 1.0.0 is if I remove sleep 10 in the above script when I start dgraph, that means dgraph zero and server start at the same time. I can see about 9000 lines of:

    2017/12/19 15:39:27 groups.go:673: Error in oracle delta stream. Error: rpc error: code = Unknown desc = Node is no longer leader.
    

    in the dgraph server log (stdout).

    I don't think this is expected and never see such behavior before version 1.0. I am not sure if I should open another bug for this or not.

    I attached three CPU profiles:

    pprof.dgraph.samples.cpu.001.pb.gz

    pprof.dgraph.samples.cpu.002.pb.gz

    pprof.dgraph.samples.cpu.003.pb.gz

    investigate 
    opened by sgon00 32
Releases(v21.12.0)
  • v21.12.0(Dec 2, 2021)

    Changed

    • [BREAKING] feat(sroar): Bring sroar to Dgraph (#7840)
    • [BREAKING] Return error for illegal math operations. (#7631)
    • [BREAKING] feat: bring dgraph-lambda to dgraph, alpha launches lambda server (#7973)
    • [BREAKING] fix json marshal unmarshal for namespace > 127 (#7810)
    • [BREAKING] fix(usability): make force-namespace flag compulsory in live loader for galaxy user (#7731)
    • [BREAKING] perf(Transactions): Run transactions concurrently (#7694)
    • [BREAKING] feat(flags): expand badger to accept all valid options (#7677)
    • [BREAKING] fix(commit): make txn context more robust (#7659)
    • [BREAKING] Opt(Restore): Optimize Restore's new map-reduce based design (#7666)
    • [BREAKING] fix(metrics): Rename Badger metrics. (#7507)
    • [BREAKING] Make backup-restore an open source feature (#8067)

    Added

    • GraphQL

      • Feat(GRAPHQL): adds @default directive for setting default field values at create and update (#8017)
      • Feat(GRAPHQL): Support auth with custom DQL (#7775)
      • Feat(GRAPHQL): This PR allows updatable and nullable @id fields. (#7736)
      • Feat(GRAPHQL): Disallow DQL schema changes for predicates used in GraphQL schema (DGRAPH-3245) (#7742)
      • Feat(GRAPHQL): This PR allows @id field in interface to be unique across all the implementing types. (#7710)
      • Feat(GRAPHQL): Add language tag support in GraphQL (#7663)
      • Feat(GRAPHQL): Zero HTTP endpoints are now available at GraphQL admin (GRAPHQL-1118) (#6649)
      • Feat(GRAPHQL): Webhooks on add/update/delete mutations (GRAPHQL-1045) (#7494)
      • Feat(GRAPHQL): Allow Multipe JWKUrls for auth. (#7528)
      • Feat(GRAPHQL): Add support for passing OAuth Bearer token as authorization JWT (#7490)
    • Core Dgraph

      • Feat(metrics): Add Badger metrics. (#8034)
      • Feat(magicNumber): Introduce magic number (#8032)
      • Feat(lambda): allow access to access jwt in lambda (#8023)
      • Feat(rdf-response): Support RDF response via http query request (#8004)
      • Feat(sroar): Use rank() API from sroar and some cleanup (#8002)
      • Feat(lambda): store lambda scripts within the dgraph (#7955)
      • Feat(query): handle extend keyword for Queries and Mutations (#7916)
      • Feat(Backup): Add native google cloud storage backup support (#7829)
      • Feat(Backup): Add native support for backup to Azure. (#7843)
      • Feat(cloud): add shared-instance flag in limit superflag in alpha (#7770)
      • Feat(Dgraph): Add task queue implementation (#7716)
      • Feat(DQL): @groupby on scalar fields and count duplicate (#7746)
      • Feat(Query): Add random keyword in DQL (#7693)
      • Feat(tool): Neo4j CSV to RDF Converter (#7545)
      • Feat(query): Add mechanism to have a limit on number of pending queries (#7603)
      • Feat(flag): remove unused badger.max-retries option from bulk command (#7591)
      • Feat(sentry): clusterID flag added for alpha sentry reports (gql-services) (#7580)
      • Feat(cmd/debuginfo) add new metrics to be collected (#7439)
      • Feat(flags): use Vault for ACL secrets (#7492)
      • Feat(Apollo): Add support for @provides and @requires directive. (#7503)
      • Feat(restore): Introduce incremental restore (#7942) (#7971)
      • Feat(schema): do schema versioning and make backup non-blocking for indexing (#7852)
      • Feat(zero bulk): adding bulk call for alpha to inform zero about the tablets (#8100)
      • Feat(cdc): Add superflag to enable TLS without CA or certs. (#8097)
    • Enterprise Features

      • Feat(Multi-tenancy): Add namespaces field to state (#7808)
      • Feat(multi-tenancy): make drop data namespace aware (#7789) (#7795)
      • Feat(cdc): Add support for SCRAM SASL mechanism (#7765)
      • Feat(acl): allow access to all the predicates using wildcard (#7991)
      • Feat(cdc): Add superflag to enable TLS without CA or certs. (#7946)

    Fixed

    • GraphQL

      • Fix(GRAPHQL): add validation of null values with correct order of graphql rule validation (#8007) (#8008)
      • Fix(GRAPHQL): fix type assertion failure in graphql if resolver is not defined (#8003)
      • Fix(GRAPHQL): fixing graphql schema update when the data is restored (#7970)
      • Fix(GRAPHQL): Nested Auth Rules not working properly. (#7915)
      • Fix(GRAPHQL): optimize eq filter queries (#7895)
      • Fix(GRAPHQL): Fix duplicate XID error in case of interface XIDs (#7776)
      • Fix(GRAPHQL): Pass on HTTP request headers for subscriptions (#7806)
      • Fix(GRAPHQL): Make mutation rewriting tests more robust (#7768)
      • Fix(GRAPHQL): Fix error message of lambdaOnMutate directive (#7751)
      • Fix(GRAPHQL): fix auth query rewriting with ID filter (#7740)
      • Fix(GRAPHQL): Add filter in DQL query in case of reverse predicate (#7728)
      • Fix(GRAPHQL): Fix GraphQL encoding in case of empty list (#7726)
      • Fix(GRAPHQL): fix @cascade with Pagination for @auth queries. (#7695)
      • Fix(GRAPHQL): Fix Execution Trace for Add and Update Mutations (#7656)
      • Fix(GRAPHQL): Log query along with the panic (#7638)
      • Fix(GRAPHQL): Add error handling for unrecognized args to generate directive. (#7612)
      • Fix(GRAPHQL): Fix panic when no schema exists for a new namespace (#7630)
      • Fix(GRAPHQL): fixed output coercing for admin fields. (#7617)
      • Fix(GRAPHQL): fix lambda querying a lambda field in case of no data. (#7610)
      • Fix(GRAPHQL): Add extra checks for deleting UpdateTypeInput (#7595)
      • Fix(GRAPHQL): remove support of @id directive on Float (#7583)
      • Fix(GRAPHQL): Fix mutation with Int Xid variables. (#7565)
      • Fix(GRAPHQL): Fix custom(dql: ...) with __typename (GRAPHQL-1098) (#7569)
      • Fix(GRAPHQL): Change variable name generation for interface auth rules (#7559)
      • Fix(GRAPHQL): Apollo federation now works with lambda (GRAPHQL-1084) (#7558)
      • Fix(GRAPHQL): fix empty remove in update mutation patch, that remove all the data for nodes in filter. (#7563)
      • Fix(GRAPHQL): fix order of entities query result (#7542)
      • Fix(GRAPHQL): Change variable name generation from Type to Type_ (#7556)
      • Fix(GRAPHQL): fix duplicate xid error for multiple xid fields. (#7546)
      • Fix(GRAPHQL): Added support for exact index on field having @id directive. (#7534) (#7551)
      • Fix(GRAPHQL): fix query rewriting for multiple order on nested field. (#7523)
      • Fix(GRAPHQL) fix empty type Query with single extended type definition in the schema. (#7517)
    • Core Dgraph

      • Fix(sort): Only filter out nodes with positive offsets. (#8077)
      • Fix(fragment): merge the nested fragments fields (#8075)
      • Fix(lambda): upgrade lambda dependencies to fix vulnerabilities (#8074)
      • Fix(magic): fix the magic version in bulk loader etc (#8070)
      • Fix(split): enable split of posting list with single plist (#8062)
      • Fix(restore): Do not retry restore proposal (#8058)
      • Fix(txn): Fix data races in transaction code (#8060)
      • Fix(shutdown): wait for pending queries to process on alpha shutdown (#8057)
      • Fix(restore-test): Make offline restore use separate map directory for each group (#8047)
      • Fix(lambda-logs): extract namespace from body.namespace (#8043)
      • Fix(lambda): make lambda active only after successful start (#8036)
      • Fix(probe): do not contend for lock in lazy load (#8037)
      • Fix(lambda): shutdown node processes when alpha gets killed (#8027)
      • Fix(snapshot): Fix snapshot calculation after restore (#8024)
      • Fix(badger): Upgrade badger to fix deadlock (#8025)
      • Fix(bulk): quote the schema correctly in bulk loader (#8019)
      • Fix(sbs): handle response error gracefully (#8018)
      • Fix(admin): make config changes to pass through gog middlewares (#8014)
      • Fix(lambda): fix race condition in lambda server spin up (#8013)
      • Fix(proposals): Incremental proposal key for zero proposals (#8005)
      • Fix(lambda): monitor lambda server, fix performance issue, remove lambda logs from extensions (#8006)
      • Fix(live): quote the xid when doing upsert (#7983)
      • Fix(sroar): Bring latest sroar to master (#7977)
      • Fix(query): Do not execute filters if there are no source uids (#7962) (#7969)
      • Fix(snapshot): update last snapshot time across members (#7968)
      • Fix(pool): use write lock when getting health info (#7963)
      • Fix(JoinCluster): Avoid retrying JoinCluster indefinitely (#7961)
      • Fix(rollups): Write rolled-up keys at ts+1 (#7957) (#7959)
      • Fix(conn): JoinCluster loop should use latest conn (#7950)
      • Fix(restore): Set kv version to restoreTs for rolled up keys and schema keys (#7930) (#7935)
      • Fix(backup): Fix full backup request (#7932)
      • Fix(cmd/debug): Print banned namespaces correctly. (#7929)
      • Reconnect via a redial in case of disconnection. (#7918)
      • Fix(metrics): Expose dgraph_num_backups_failed_total metric view. (#7900)
      • Fix(sroar): Fix TestAuthWithCustomDQL failure because of roaring bitmaps (#7902)
      • Fix(DQL): revert changes related to cascade pagination with sort (#7885)
      • Fix(restore): append galaxy namespace to type name (#7880)
      • Fix(Backup): use validReadTs from manifest for backward compatibility (#7601) (#7863)
      • fix the predicate move (#7862)
      • Fix(restore): consider the banned namespaces while bumping (#7839)
      • Fix(restore): update the schema and type from 2103 (#7838)
      • Fix(updatemanifest): update the version of manifest after update (#7828)
      • Fix(backup): handle manifest version logic, update manifest version to 2105 (#7825)
      • Fix(schema-update): Start opIndexing only when index creation is required. (#7845)
      • Fix(admin): remove exportedFiles field (#7835)
      • Fix(restore): reset the kv.StreamId before sending to stream writer (#7833)
      • Fix(auth): preserve the status code while returning error (#7832)
      • bug fix to permit audit streaming to stdout writer(#7803)
      • Fix(lease): don't do rate limiting when not limit is not specified (#7787) (#7801)
      • Fix(restore): Bump uid and namespace after restore (#7790)
      • Fix(txn): ensure that txn hash is set (#7782)
      • Fix(export-backup): Fix double free in export backup (#7780)
      • Fix(Dgraph): Forward task status requests to correct Alpha (#7774)
      • Fix(bulk): upsert guardian/groot for all existing namespaces (#7759)
      • Fix(export): Fix facet export of reference type postings to JSON format (#7744)
      • fix: Prevent proposal from being dropped accidentally (#7741)
      • Fix(live): make live loader progress on a cluster with very high maxUid (#7743)
      • Fix(Chunker): don't delete node with empty facet in mutation (#7737)
      • Fix(DQL): optimize query for has function with offset. (#7727)
      • fixing readme for dgraph after latest release (#7732)
      • Fix(lease): prevent ID lease overflow (#7724)
      • Fix(lsbackup): Fix profiler in lsBackup (#7729)
      • Fix(bulk): throw the error instead of crashing (#7722)
      • Fix(ee): GetKeys should return an error (#7713)
      • Fix(raftwal): take snapshot after restore (#7719)
      • Fix(pagination): Fix after for regexp, match functions (#7700)
      • Fix(query): Prevent multiple entries for same predicate/type in schema mutations. (#7715)
      • Fix(vault): Hide ACL flags when not required (#7701)
      • Fix(flag): fix bulk loader flag and remove flag parsing from critical path (#7679)
      • Fix(upgrade): make upgrade tool to work with non-acl cluster (#7674)
      • Fix(query): Fix pagination with match functions (#7668)
      • Fix(postingList): Acquire lock before reading the cached posting list (#7632)
      • Fix(zero): add a ratelimiter to limit the uid lease per namespace (#7568)
      • Fix(export): use UriHandler for exports (#7690)
      • Fix s3 backup copy (#7669)
      • return if no uids exist in queries for Geo (#7651)
      • Fix(DGRAPH): fix @normalize response when multiple fields at different levels with same alias are selected. (#7639)
      • Fix(/commit): protect the commit endpoint via acl (#7608)
      • Use GetString for vault path (#7605)
      • Fix query logging for mutations (#7646)
      • Fix(login): fix login based on refresh token logic (#7637)
      • Fix(Query): Fix cascade pagination with 0 offset. (#7636)
      • feat(flags): Add query timeout as a limit config (#7599)
      • Fix(flags): Add empty defaults to Vault superflag (#7598)
      • Fix(persistent): make persistent query namespace aware (#7570)
      • Fix(rollups): Fix splits in roll-up (#7609)
      • fix for xgo version to use (#7620)
      • Fix(flags): Expose global flags to dgraph subcommands. (#7530)
      • Fix(telemetry): fix zero crash due to telemetry (#7575)
      • Fix(telemetry): Track enterprise feature usage (#7495)
      • Fix(release): update support for xgo tool (#7576)
      • Fix(super-flags): Use GetPath for path arguments in superflags (#7541)
      • Fix(dql): Fix error message in case of wrong argument to val() (#7543)
      • Fix(Roaring): Remove pack from posting list (#7535)
      • Fix(Flags): immediately panic on SuperFlag user errors (#7529)
      • Fix(Rollups): Don't try splitting a posting list with cardinality less than 2. (#7525)
      • Fix(export): fix namespace parameter in export (#7524)
      • Fix(live): fix usage of force-namespace parameter in export (#7526)
      • Fix largeSchemaUpdate test (#7522)
      • Fix(Configs): Allow hierarchical notation in JSON/YAML configs (#7498)
      • Fix(Bulk): Remove stale allocator in reduce (#7510)
      • Fix upsert mutations (#7515)
      • Fix(standalone): Set whitelist flag using superflag. (#7512)
      • Fix(admin-endpoints): Error out if the request is rejected by the server (#7511)
      • Fix(Dgraph): Throttle number of files to open while schema update (#7480)
      • Fix(metrics): Expose Badger LSM and vlog size bytes. (#7488)
      • Fix(schema): log error instead of panic if schema not found for predicate (#7502)
      • Fix(tool): Don't ban namespace in export_backup (#8099)
      • Fix(state): fix hex to uint64 response of list of namespaces (#8101)
      • Fix(restore): return nil if there is error (#8098)
    • Enterprise Features

      • Fix(audit): fixing audit logs for websocket connections (#8048)
      • Fix(acl): subscribe for the correct predicates (#7992)
      • Fix(acl): filter out the results based on type (#7978) (#7980)
      • Fix(groot): do not upsert groot for all namespaces on restart (#7917)
      • Fix(cdc): Show namespace info in event meta (#7721)
      • Fix(learner): Don't start a learner node with no peers (#7582)
      • Fix(audit): logs not getting deleted after N days (#7567)
      • Fix(release/v21.03) - Use worker.GetEEFeatureList instead of ee.GetEEFeatureList (#7564)
      • Fix(multi-tenancy): Format namespace to human readable form (#7552)
      • Fix(learner nodes): Reconnect to learner nodes after restart (#7554)
      • Fix(multi-tenancy): fix live loader for case when namespace does not exist for data (#7505)

    Performance:

    • Opt(schema): Optimize populateSchema() by avoiding repeated lock acquisition (#8068)
    • Perf: Speed up parsing of a huge query with a lot of conditional mutations (#7871)
    • Opt(Restore): Make restore map phase faster (#8038)
    • Opt(codec): return nil instead of a new bitmap (#7997)
    • Opt(cache): Use Ristretto to store posting lists (#7995)
    • Opt(rdf-output): Make RDF output generation concurrent (#7988)
    • Opt(recurse): Optimise recurse and bring range iterators from sroar (#7989)
    • Opt(restore): Sort the buffer before spinning the writeToDisk goroutine (#7984)
    • Perf(sroar): Use latest sroar and add histogram in the sbs tool (#7982)
    • Opt(Alpha): Load schema and types using Stream framework (#7938) (#7940)
    • Opt(query): Use sroar in pb.List (#7864)
    • Opt(snapshot): use full table copy when streaming the entire data (#7870)
    • Opt(snapshot): Optimize snapshot by using sinceTs (#7826)
    • Opt(predMove): iterate Phase I till there is major data to move (#7792)
    • Opt(dropPrefix): allow logical drop for deleting predicates and indexing (#7764)
    • Opt(txn commits): Optimize txns by passing Skiplists to Badger (#7777)
    • Opt(GraphQL): filter existence queries on GraphQL side instead of using @filter(type) (#7757)
    • Opt(predMove): hot tablet move (#7703)
    • Opt(Backup): Make backups faster (#7680)
    • Perf(restore): Implement map-reduce based restore (#7664)
    • Opt(reindex): do not try building indices when inserting a new predicate (#7109)
    • Perf(txn): de-duplicate the context keys and predicates (#7478)
    • perf(rollup): use NSplit API from sroar to improve rollup performance (#8092)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-linux-amd64.sha256(115 bytes)
    dgraph-linux-amd64.tar.gz(22.56 MB)
  • v21.09.0-rc2(Sep 3, 2021)

    a515d0ded fix(proposals): Incremental proposal key for zero proposals (#8005) a092dc0da opt(sroar): upgrade sroar to use optimised IsEmpty API (#8010) 05a3958e5 fix(lambda): monitor lambda server, fix performance issue, remove lambda logs from extensions (#8006)

    Source code(tar.gz)
    Source code(zip)
  • v21.03.2(Aug 26, 2021)

    Fixed

    • GraphQL

      • Handle extend keyword for Queries and Mutations (#7923)
    • Core Dgraph

      • fix(Raft): Detect network partition when streaming (#7908)
      • fix(Raft): Reconnect via a redial in case of disconnection. (#7921)
      • fix(conn): JoinCluster loop should use latest conn (#7952)
      • fix(pool): use write lock when getting health info (#7967)
      • fix(acl): The Acl cache should be updated on restart and restore. (#7964)
      • fix(acl): filter out the results based on type (#7981)
      • fix(backup): Fix full backup request (#7934)
      • fix(live): quote the xid when doing upsert (#7999)
      • fix(export): Write temporary files for export to the t directory. (#7998)

    Changed

    • protobuf: upgrade golang/protobuf library v1.4.1 -> v1.5.2 (#7949)
    • chore(raft): Log packets message less frequently. (#7913)

    Added

    • feat(acl): allow access to all the predicates using wildcard. (#7993)
    • feat(Multi-tenancy): Add namespaces field to state. (#7936)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-linux-amd64.sha256(115 bytes)
    dgraph-linux-amd64.tar.gz(21.63 MB)
  • v21.03.1(Jun 18, 2021)

    Fixed

    • GraphQL

      • fix(GraphQL): fix @cascade with Pagination for @auth queries (#7695)
      • Fix(GraphQL): Fix GraphQL encoding in case of empty list (#7726) (#7730)
      • Fix(GraphQL): Add filter in DQL query in case of reverse predicate (#7728) (#7733)
      • Fix(graphql): Fix error message of lambdaOnMutate directive (#7751) (#7754)
    • Core Dgraph

      • fix(vault): Hide ACL flags when not required (#7701)
      • fix(Chunker): don't delete node with empty facet in mutation (#7737) (#7745)
      • fix(bulk): throw the error instead of crashing (#7722) (#7749)
      • fix(raftwal): take snapshot after restore (#7719) (#7750)
      • fix(bulk): upsert guardian/groot for all existing namespaces (#7759) (#7769)
      • fix(txn): ensure that txn hash is set (#7782) (#7784)
      • bug fix to permit audit streaming to stdout writer(#7803) (#7804)
      • fix(drop): attach galaxy namespace to drop attr done on 20.11 backup (#7827)
      • fix: Prevent proposal from being dropped accidentally (#7741) (#7811)
      • fix(schema-update): Start opIndexing only when index creation is required. (#7845) (#7847)
      • fix(export): Fix facet export of reference type postings to JSON format (#7744) (#7756)
      • fix(lease): don't do rate limiting when not limit is not specified (#7787)
      • fix(lease): prevent ID lease overflow (#7802)
      • fix(auth): preserve the status code while returning error (#7832) (#7834)
      • fix(ee): GetKeys should return an error (#7713) (#7797)
      • fix(admin): remove exportedFiles field (#7835) (#7836)
      • fix(restore): append galaxy namespace to type name (#7881)
      • fix(DQL): revert changes related to cascade pagination with sort (#7885) (#7888)
      • fix(metrics): Expose dgraph_num_backups_failed_total metric view. (#7900) (#7904)

    Changed

    • opt(GraphQL): filter existence queries on GraphQL side instead of using @filter(type) (#7757) (#7760)

    Added

    • feat(cdc): Add support for SCRAM SASL mechanism (#7765) (#7767)
    • Add asynchronous task API (#7781)
    • make exports synchronous again (#7877)
    • feat(schema): do schema versioning and make backup non-blocking for i… (#7856) (#7873)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-linux-amd64.sha256(115 bytes)
    dgraph-linux-amd64.tar.gz(21.54 MB)
  • v21.03.0(Apr 7, 2021)

    Changed

    • [BREAKING] Feat(flags): expand badger to accept all valid options (#7677)
    • [BREAKING] Feat(Dgraph): Read-Only replicas (#7272)
    • [BREAKING] Consolidate multiple flags into Superflags (#7436) (#7337) (#7560) (#7652) (#7675)
    • [BREAKING] Feat(zero): Make zero lease out namespace IDs (#7341)
    • [BREAKING] Fix(commit): make txn context more robust (#7659)
    • [BREAKING] Fix(Query): Return error for illegal math operations. (#7631)
    • [BREAKING] Rename Badger metrics. (#7507)
    • [BREAKING] Fix(Backups): new badger Superflag, NumGoroutines option solves OOM crashes (#7387)
    • [BREAKING] Remove restore tracker as its not necessary (#7148)
    • [BREAKING] Chore(GraphQL): Remove dgraph.graphql.p_sha256hash predicate and merge it into dgraph.graphql.p_query (#7451)
    • [BREAKING] Introducing Multi-Tenancy in dgraph (#7293) (#7400) (#7397) (#7399) (#7377) (#7414) (#7418)

    Added

    • GraphQL

      • Feat(GraphQL): Zero HTTP endpoints are now available at GraphQL admin (GraphQL-1118) (#6649) (#7670)
      • Feat(GraphQL): Webhooks on add/update/delete mutations (GraphQL-1045) (#7494) (#7616)
      • Feat(GraphQL): Allow Multiple JWKUrls for auth. (#7528) (#7581)
      • Feat(GraphQL): allow string --> Int64 hardcoded coercing (#7584)
      • Feat(Apollo): Add support for @provides and @requires directive. (#7503)
      • Feat(GraphQL): Handle upsert with multiple XIDs in case one of the XIDs does not exist (#7472)
      • Feat(GraphQL): Delete redundant reference to inverse object (#7469)
      • Feat(GraphQL): upgarde GraphQL-transport-ws module (#7441)
      • Feat(GraphQL): This PR allow multiple @id fields in a type. (#7235)
      • Feat(GraphQL): Add support for GraphQL Upsert Mutations (#7433)
      • Feat(GraphQL): This PR adds subscriptions to custom DQL. (#7385)
      • Feat(GraphQL): Make XID node referencing invariant of order in which XIDs are referenced in Mutation Rewriting (#7448)
      • Feat(GraphQL): Dgraph.Authorization should with irrespective of number of spaces after # (#7410)
      • Feat(GraphQL): adding auth token support for regexp, in and arrays (#7039)
      • Feat(GraphQL): Extend Support of IN filter to all the scalar data types (#7340)
      • Feat(GraphQL): Add @include and @skip to the Directives (#7314)
      • Feat(GraphQL): add support for has filter with list of arguments. (#7406)
      • Feat(GraphQL): Add support for has filter on list of fields. (#7363)
      • Feat(GraphQL): Allow standard claims into auth variables (#7381)
      • Perf(GraphQL): Generate GraphQL query response by optimized JSON encoding (GraphQL-730) (#7371)
      • Feat(GraphQL): Extend Support For Apollo Federation (#7275)
      • Feat(GraphQL): Support using custom DQL with @groupby (#7476)
      • Feat(GraphQL): Add support for passing OAuth Bearer token as authorization JWT (#7490)
    • Core Dgraph

      • Feat(query): Add mechanism to have a limit on number of pending queries (#7603)
      • Perf(bulk): Reuse allocator (#7360)
      • Perf(compression): Use gzip with BestSpeed in export and backup (#7643) (#7683)
      • Feat(flags): Add query timeout as a limit config (#7599)
      • Opt(reindex): do not try building indices when inserting a new predicate (#7109)
      • Perf(txn): de-duplicate the context keys and predicates (#7478)
      • Feat(flags): use Vault for ACL secrets (#7492)
      • Feat(bulk): Add /jemalloc HTTP endpoint. (#7165)
      • Feat(metrics): Add Dgraph txn metrics (commits and discards). (#7339)
      • Feat(Bulk Loader + Live Loader): Supporting Loading files via s3/minio (#7359)
      • Feat(metrics): Add Raft leadership metrics. (#7338)
      • Use Badger's value log threshold of 1MB (#7415)
      • Feat(Monitoring): Adding Monitoring for Disk Space and Number of Backups (#7404)
      • Perf: simple simdjson solution with 30% speed increase (#7316)
    • Enterprise Features

      • Perf(Backup): Improve backup Performance (#7601)
      • Make backup API asynchronous
      • Perf(backups): Reduce latency of list backups (#7435)
      • Feat(acl): allow setting a password at the time of creation of namespace (#7446)
      • Feat(enterprise): audit logs for alpha and zero (#7295)
      • Feat(enterpise): Change data capture (CDC) integration with kafka (#7395)
      • Perf(dgraph) - Use badger sinceTs in backups (#7392)
      • Perf(backup): Reorganize the output of lsbackup command (#7354)

    Fixed

    • GraphQL

      • Fix(GraphQL): Fix Execution Trace for Add and Update Mutations (#7656)
      • Fix(GraphQL): Add error handling for unrecognized args to generate directive. (#7612)
      • Fix(GraphQL): Fix panic when no schema exists for a new namespace (#7630)
      • Fix(GraphQL): Fixed output coercing for admin fields. (#7617)
      • Fix(GraphQL): Fix lambda querying a lambda field in case of no data. (#7610)
      • Fix(GraphQL): Undo the breaking change and tag it as deprecated. (#7602)
      • Fix(GraphQL): Add extra checks for deleting UpdateTypeInput (#7595)
      • Fix(persistent): make persistent query namespace aware (#7570)
      • Fix(GraphQL): remove support of @id directive on Float (#7583)
      • Fix(GraphQL): Fix mutation with Int Xid variables. (#7565) (#7588)
      • Fix(GraphQL): Fix error message when dgraph and GraphQL schema differ.
      • Fix(GraphQL): Fix custom(dql: ...) with __typename (GraphQL-1098) (#7569)
      • Fix(GraphQL): Change variable name generation for interface auth rules (#7559)
      • Fix(GraphQL): Apollo federation now works with lambda (GraphQL-1084) (#7558)
      • Fix(GraphQL): Fix empty remove in update mutation patch, that remove all the data for nodes in filter. (#7563)
      • Fix(GraphQL): Fix order of entities query result (#7542)
      • Fix(GraphQL): Change variable name generation from Type<Num> to Type_<Num> (#7556)
      • Fix(GraphQL): Fix duplicate xid error for multiple xid fields. (#7546)
      • Fix(GraphQL): Fix query rewriting for multiple order on nested field. (#7523)
      • Fix(GraphQL) Fix empty type Query with single extended type definition in the schema. (#7517)
      • Fix(GraphQL): Added support for parameterized cascade with variables. (#7477)
      • Fix(GraphQL): Fix fragment expansion in auth queries (GraphQL-1030) (#7467)
      • Fix(GraphQL): Refactor Mutation Rewriter for Add and Update Mutations (#7409)
      • Fix(GraphQL): Fix @auth rules evaluation in case of null variables in custom claims. (#7380)
      • Fix(GraphQL): Fix interface query with auth rules. (#7401)
      • Fix(GraphQL): Added error for case when multiple filter functions are used in filter. (#7368)
      • Fix(subscriptions): Fix subscription to use the kv with the max version (#7349)
      • Fix(GraphQL):This PR Fix a panic when we pass a single ID as a integer and expected type is [ID].We now coerce that to type array of string. (#7325)
      • Fix(GraphQL): This PR Fix multi cors and multi schema nodes issue by selecting one of the latest added nodes, and add dgraph type to cors. (#7270)
      • Fix(GraphQL): This PR allow to use __typename in mutation. (#7285)
      • Fix(GraphQL): Fix auth-token propagation for HTTP endpoints resolved through GraphQL (GraphQL-946) (#7245)
      • Fix(GraphQL): This PR addd input coercion from single object to list and Fix panic when we pass single ID in filter as a string. (#7133)
      • Fix(GraphQL): adding support for @id with type other than strings (#7019)
      • Fix(GraphQL): Fix panic caused by incorrect input coercion of scalar to list (#7405)
    • Core Dgraph

      • Fix(flag): Fix bulk loader flag and remove flag parsing from critical path (#7679)
      • Fix(query): Fix pagination with match functions (#7668)
      • Fix(postingList): Acquire lock before reading the cached posting list (#7632)
      • Fix(zero): add a ratelimiter to limit the uid lease per namespace (#7568)
      • Fixing type inversion in ludicrous mode (#7614)
      • Fix(/commit): protect the commit endpoint via acl (#7608)
      • Fix(login): Fix login based on refresh token logic (#7637)
      • Fix(Query): Fix cascade pagination with 0 offset. (#7636)
      • Fix(telemetry): Track enterprise Feature usage (#7495)
      • Fix(dql): Fix error message in case of wrong argument to val() (#7543)
      • Fix(export): Fix namespace parameter in export (#7524)
      • Fix(live): Fix usage of force-namespace parameter in export (#7526)
      • Fix(Configs): Allow hierarchical notation in JSON/YAML configs (#7498)
      • Fix upsert mutations (#7515)
      • Fix(admin-endpoints): Error out if the request is rejected by the server (#7511)
      • Fix(Dgraph): Throttle number of files to open while schema update (#7480)
      • Fix(metrics): Expose Badger LSM and vlog size bytes. (#7488)
      • Fix(schema): log error instead of panic if schema not found for predicate (#7502)
      • Fix(moveTablet): make move tablet namespace aware (#7468)
      • Fix(dgraph): Do not return reverse edges from expandEdges (#7461)
      • Fix(Query): Fix cascade with pagination (#7440)
      • Fix(Mutation): Deeply-nested uid facets (#7455)
      • Fix(live): Fix live loader to load with force namespace (#7445)
      • Fix(sort): Fix multi-sort with nils (#7432)
      • Fix(GC): Reduce DiscardRatio from 0.9 to 0.7 (#7412)
      • Fix(jsonpb): use gogo/jsonpb for unmarshalling string (#7382)
      • Fix: Calling Discard only adds to txn_discards metric, not txn_aborts. (#7365)
      • Fix(Dgraph): check for deleteBelowTs in pIterator.valid (#7288)
      • Fix(dgraph): Add X-Dgraph-AuthToken to list of access control allowed headers
      • Fix(sort): Make sort consistent for indexed and without indexed predicates (#7241)
      • Fix(ludicrous): Fix logical race in concurrent execution of mutations (#7269)
      • Fix(restore): Handle MaxUid=0 appropriately (#7258)
      • Fix(indexing): use encrypted tmpDBs for index building if encryption is enabled (#6828)
      • Fix(bulk): save schemaMap after map phase (#7188)
      • Fix(DQL): Fix Aggregate Functions on empty data (#7176)
      • Fixing unique proposal key error (#7218)
      • Fix(Chunker): JSON parsing Performance (#7171)
      • Fix(bulk): Fix memory held by b+ tree in reduce phase (#7161)
      • Fix(bulk): Fixing bulk loader when encryption + mtls is enabled (#7154)
    • Enterprise Features

      • Fix(restore): append the object path preFix while reading backup (#7686)
      • Fix restoring from old version for type (#7456)
      • Fix(backup): Fix Perf issues with full backups (#7434)
      • Fix(export-backup): Fix memory leak in backup export (#7452)
      • Fix(ACL): use acl for export, add GoG admin resolvers (#7420)
      • Fix(restore): reset acl accounts once restore is done if necessary (#7202)
      • Fix(restore): multiple restore requests should be rejected and proposals should not be submitted (#7118)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-linux-amd64.sha256(115 bytes)
    dgraph-linux-amd64.tar.gz(21.36 MB)
  • v20.11.3(Mar 31, 2021)

    Fixed

    • GraphQL

      • Fix(GRAPHQL): fix query rewriting for multiple order on nested field (#7523) (#7536)
      • Fix(GRAPHQL): Added support for exact index on field having @id directive (#7534) (#7550)
      • Fix(GraphQL): Add extra checks for deleting UpdateTypeInput (#7595) (#7600)
      • Fix(GRAPHQL): Undo the breaking change and tag it as deprecated. (#7607)
      • Fix(GraphQL): Log query along with the panic (#7638) (#7645)
      • Fix(GraphQL): Fix Execution Trace for Add and Update Mutations (#7656) (#7658)
    • Core Dgraph

      • Fix(schema): log error instead of panic if schema not found for predicate (#7502) (#7509)
      • Chore(cmd/debuginfo) add new metrics to be collected (#7439) (#7562)
      • Fix(vlog): Use Badger's value log threshold of 1MB (#7415) (#7474)
      • Chore(bulk): Improve perf of bulk loader with Reuse allocator and assinging tags to allocator (#7360) (#7547)
      • Fix(query): Fix pagination with match functions (#7668) (#7672)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(28.12 MB)
    dgraph-linux-amd64.tar.gz(27.72 MB)
    dgraph-windows-amd64.zip(36.79 MB)
  • v20.11.2(Feb 23, 2021)

    Fixed

    • GraphQL

      • Fix(Mutation): Deeply-nested uid facets (#7457)
      • Fix(GraphQL): Fix panic caused by incorrect input coercion of scalar to list (#7405) (#7428)
      • Fix(GraphQL): Refactor Mutation Rewriter for Add and Update Mutations (#7409) (#7413)
      • Fix(GraphQL): fix @auth rules evaluation in case of null values. (#7411)
      • Fix(GraphQL): fix interface query with auth rules (#7408)
      • Fix(GraphQL): Added error for case when multiple filter functions are used in filter. (#7368) (#7384)
    • Core Dgraph

      • Fix(sort): Fix multi-sort with nils (#7432) (#7444)
      • Fix(GC): Reduce DiscardRatio from 0.9 to 0.7 (#7412) (#7421)
    • Enterprise Features

      • Fix(export_backup): fix memory leak in backup export (#7452) (#7453)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(28.03 MB)
    dgraph-linux-amd64.tar.gz(27.63 MB)
    dgraph-windows-amd64.zip(36.71 MB)
  • v20.11.1(Jan 28, 2021)

    Fixed

    • GraphQL

      • [BREAKING] Fix(GRAPHQL): Don't generate get query on interface if it doesn't have field of type ID and also disallow get query on field of type @id in inerface. The getInterface query can be replaced by queryInterface type queries. (#7158) (#7305)
      • Fix(subscriptions): fix subscription to use the kv with the max version (#7349) (#7355)
      • Fix(GraphQl): fix a panic when we pass a single ID as a integer and expected type is [ID].We now coerce that to type array of string. (#7325) (#7353)
      • Fix(GRAPHQL): update gqlparser release to v2.1.4 (#7347) (#7352)
      • Fix(GraphQL): Fix graphql flaky tests which were caused by receiving extra schema updates (#7329) (#7348)
      • Fix(GraphQL): This PR addd input coercion from single object to list and fix panic when we pass single ID in filter as a string. (#7133) (#7306)
      • Fix(GraphQL): This PR fix multi cors and multi schema nodes issue by selecting one of the latest added nodes, and add dgraph type to cors. (#7270) (#7302)
      • Fix(GraphQL): This PR allow to use __typename in mutation. (#7285) (#7303)
      • Fix(GraphQL): Fix auth-token propagation for HTTP endpoints resolved through GraphQL (GRAPHQL -946) (#7245) (#7251)
    • Core Dgraph

      • Fix(bulk): save schemaMap after map phase (#7188) (#7351)
      • Fix(Dgraph): check for deleteBelowTs in pIterator.valid (#7288) (#7350)
      • Fix(indexing): use encrypted tmpDBs for index building if encryption is enabled (#6828) (#7343)
      • Fix(bulk): Fix memory held by b+ tree in reduce phase (#7161) (#7333)
      • Feat(bulk): Add /jemalloc HTTP endpoint. (#7165) (#7331)
      • Fix(sort): Make sort consistent for indexed and without indexed predicates (#7241) (#7323)
      • Fix(dgraph): Add X-Dgraph-AuthToken to list of access control allowed headers (#7311)
      • Fix(ludicrous): Fix logical race in concurrent execution of mutations (#7269) (#7309)
      • Fix(ludicrous): Fix data race in executor (#7203) (#7307)
      • Opt(rollup): change the way rollups are done (#7253) (#7277)
      • Fix(indexing): use --tmp directory for building indexes (#7289) (#7300)
      • Fix(dgraph): Fix dgraph crash on windows (#7261) (#7299)
      • Fix(dgraph): making jemalloc to work with dgraph on macos (#7247) (#7282)
      • Fix(dgraph): Fixing multiple race conditions (#7278)
      • Fixing unique proposal key error (#7218) (#7281)
      • Fix(raft): Unmarshal zero snapshot into pb.ZeroSnaphot (#7244)
      • Fix(bulk): fixing bulk loader when encryption + mtls is enabled (#7154) (#7155)
    • Enterprise Features

      • Fix(restore): reset acl accounts once restore is done if necessary (#7202) (#7280)
      • Fix(restore): multiple restore requests should be rejected and proposals should not be submitted (#7118) (#7276)
      • Fix(restore): Handle MaxUid=0 appropriately (#7258) (#7265)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(33.86 MB)
    dgraph-linux-amd64.tar.gz(33.46 MB)
    dgraph-windows-amd64.zip(42.53 MB)
  • v20.07.3(Dec 29, 2020)

    Changed

    • Chore(bulk): Change default compression to zstd:3. (#6995)
    • Build(dockerfile): Set GODEBUG=madvdontneed=1. (#6955)
    • Updating badger version 3f846b3. (#7212)

    Added:

    • Update kubernetes links to match 20.07 config files (#7049)
    • Fix(dgraph): giving users the option to control tls versions (#6820)
    • Feat(dgraph): making all internal communications with tls configured (#6876)
    • Feat(dgraph): enabling TLS config in http zero ([#6691) (#6867)

    Fixed:

    • GraphQL
      • Fix(GraphQL): don't update cacheMb if not specified by user (#7103)
      • Fix: added comment docstring for ExportInput format (#6991)
      • Fix(GraphQL): fixes issue of multiple responses in a subscription for an update. (#6868)
      • Fix ErrIndexingInProgress if schema update fails (#6583)
      • Fix(GraphQL): fix panic error when we give null value in filter connectives. (#6707)
      • Fix(GraphQL): reduces polling duration of subscriptions. (#6661)
      • Fix(GraphQL): add enable schema cleaning in GraphQL and reduce schema update time. (#6725)
      • Fix(GraphQL): fixes flaky test for subscriptions. (#6065)
    • Fix(DQL): ignore ordering of indexes in schema with eq function (DGRAPH-2601) (#6996)
    • Fix(worker): fix eq filter for non-index predicates. (#6986)
    • Fix(Alpha): Immediately take a snapshot if we don't have one (#6458)
    • Fix(Dgraph): Type names in exported schema are surrounded by brackets. (#6679)
    • Fix(ludicrous mode): Handle deletes correctly (#6773)
    • Fix(worker): Avoid panic in handleUidPostings (#6607)
    • Fix(gqlParser): Handle strings with only whitespace in parseID (#6615)
    • Fix(Ludicrous): Upserts on list type in Dgraph (#6796)
    • Enterprise features
      • Fix(backup/restore): fixes backup and restore with DROP operations (#6922)
      • Generic alpha log error message for failed ACL login (#6848)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(33.04 MB)
    dgraph-linux-amd64.tar.gz(32.29 MB)
    dgraph-windows-amd64.zip(41.27 MB)
  • v20.03.7(Dec 26, 2020)

    Changed

    • Change default compression to zstd:3 bulk loader (#7023)
    • Build(dockerfile): Set GODEBUG=madvdontneed=1. (#6956)
    • Enterprise features
      • Generic alpha log error message for failed ACL login (#6851)

    Added

    • Add LogRequest variable to config input (#5197)

    Fixed

    • GraphQL
      • Fix(gqlParser): Handle strings with only whitespace in parseID (#6615)
      • Fix added comment docstring for ExportInput format (#6991)
    • Fix eq index ordering (#7034)
    • Fix(worker): fix eq filter for non-index predicates. (#6986)
    • Fix(Alpha): Immediately take a snapshot if we don't have one (#6458)
    • Fix(Dgraph): Type names in exported schema are surrounded by brackets. (#6680)
    • Fix(ludicrous mode): Handle deletes correctly (#6773)
    • Fix(worker): Avoid panic in handleUidPostings (#6607)
    • Enterprise features
      • Fix(backup/restore): fixes backup and restore with DROP operations (#6933)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(31.88 MB)
    dgraph-linux-amd64.tar.gz(30.97 MB)
    dgraph-windows-amd64.zip(39.53 MB)
  • v20.11.0(Dec 16, 2020)

    Changed

    • [BREAKING] Feat: Use snappy compression by default. (#6697)
    • [BREAKING] Fix(OOM): Don't unmarshal pb.Proposals until we need them (#7059)
    • [BREAKING] Feat(Dgraph): Use Badger with new WAL format. (#6643)
    • [BREAKING] Switch Raft WAL to use simple files (#6572)
    • Feat(tls): splitting tls_dir + making health point available on HTTP (#6821)

    Added

    • GraphQL

      • Feat(GraphQL): Add Aggregation Queries at Child Level (#7022)
      • Feat(GraphQL): Add aggregate query at root level (#6985)
      • Feat(GraphQL): Mutations with Auth on interfaces should work correctly. (#6839)
      • Feat(GraphQL): This PR adds support for "application/dql" in content header. (#6849)
      • Feat(GraphQL): Add count queries Feature at non-root levels (#6834)
      • Fix(GraphQL): AND/OR filters now accept an array while also accepting objects. (#6801)
      • Feat(GraphQL): Allow Query with Auth rules on Interfaces (#6776)
      • Feat(GraphQL): This PR adds auth switch in GraphQL authorization header. (#6779)
      • Feat(GraphQL): Add count query Feature at root to GraphQL (#6786)
      • Feat(GraphQL): Add generate directive to graphql schema (#6760)
      • Feat(GraphQL): add support for all RSA and HMAC algorithms supported by github.com/dgrijalva/jwt-go/v4 (#6750)
      • Feat(GraphQL): allow duplicate XIDs if only XID value is repeated (#6762)
      • Feat(GraphQL): Add support for Polygon and Multi-Polygon in GraphQL (#6618)
      • Feat(GraphQL): add support for between filter in GraphQL (#6651)
      • Feat(GraphQL): Unions (#6722)
      • Feat(GraphQL): add support for IN filter (#6662)
      • Feat(GraphQL): Add support for Geo point type in Graphql. (#6481)
      • Feat(GraphQL): GraphQL now has lambda resolvers (#6574)
      • Feat(GraphQL): Support authorization with jwk_url (#6564)
      • Feat(GraphQL): GQL Logging MW for admin query/mutation (#6562)
      • Feat: add schema history to graphql (#6324)
      • Feat(GraphQL): Add GraphQL schema validation Endpoint. (#6250)
      • Feat(GraphQL): This PR adds parameterised cascade in graphql. (#6251)
      • Feat(GraphQL): add has filter support (#6258)
      • Feat(GraphQL): GraphQL now has Int64 as scalar type (#6200)
      • Feat(GraphQL): @custom HTTP body now supports hardcoded scalars (#6157)
      • Feat(GraphQL): Custom logic now supports DQL queries (#6115)
      • Feat(GraphQL): This PR allows to return errors from custom REST endpoint. (#6604)
    • Core Dgraph

      • Feat(dgraph): Add suport for RDF query. (#6038)
      • perf(xidmap): Use btree with hash of keys for xidmap (#6902)
      • Feat(Query): Enable persistent queries in dgraph (#6788)
      • Feat(Dgraph): Add ability to change size of caches through the admin interface. (#6644)
      • Feat(query): Support for between func with count at root (#6556)
      • Feat(querylang): language support for term tokenization (#6269)
      • Feat(ludicrous): Run mutations from the same predicate concurrently in ludicrous mode (#6060)
      • Feat(Dgraph): Add experimental cache for posting lists (#6245)
      • Feat(dgraph): making all internal communications with tls configured (#6692)
      • Feat(dgraph): enabling TLS config in http zero (#6691)
      • Feat(raftwal): Add support for encryption in raftwal (#6714)
      • Feat(Dgraph): add utility to export backup data. (#6550)
      • Feature: dgraph_txn_aborts metric for prometheus (#6171)
      • Feat(live): added upsert in live loader (#6057)
    • Enterprise Features

      • Feat(Dgraph): Online restores allows to restore a specific backup. (#6411)

    Fixed

    • GraphQL

      • Fix(GraphQL): Fix internal Aliases name generation (#7009)
      • Fix(GraphQL): Allows repetition of fields inside implementing type in interface and allow to inherit field of same name of type ID from multiple interfaces. (#7053)
      • Fix(GraphQL): Fix password query rewriting in release/v20.11 (#7012)
      • Fix(GraphQL): Fix bug with password query rewriting (#7011)
      • Fix(GraphQL): Use fragments on interfaces while querying other interface. (#6964)
      • Fix(GraphQL): Fix multiple alias in query (#6940)
      • Fix(GraphQL): Add support for using auth with secret directive (#6920)
      • Fix(GraphQL): Fix exclusion of filters in Query generation (#6917)
      • Fix(GraphQL): handle filters for enum properly (#6916)
      • Fix(GraphQL): Fixes issue of multiple responses in a subscription for an update. (#6868)
      • Fix(GraphQL): Fix panic caused when trying to delete a nested object which doesn't have id/xid (#6810)
      • Fix(GraphQL): Fix between filter bugs (#6822)
      • Fix(GraphQL): Fix panic error when we give null value in filter connectives. (#6707)
      • Fix(GraphQL): Remove extra fields when querying interfaces (#6596)
      • Fix(GraphQL): disallowing field names with as (#6579)
      • Fix(GraphQL): Fix object Linking with hasInverse (#6557)
      • Fix(GraphQL): Fix cascade with auth query when RBAC is false (#6444)
      • Fix(GraphQL): Generate correct schema when no orderable field in a type (#6456)
      • Fix(GraphQL): Fix restoreStatus query with query variables (#6414)
      • Fix(GraphQL): Fix for deletion on interfaces with no non Id field (#6387)
      • Fix(GraphQL): don't generate orderable enum value for list fields (#6392)
      • Fix(GraphQL): Fix introspection completion bug (#6385)
      • Fix(GraphQL): Extend int64 range to 64-bit numeric values and adds input coercing and validation for integers. (#6275)
      • Fix(GraphQL): Remove auth error from mutation. (#6329)
      • Fix(GraphQL): Fix query rewriting for auth delete when deleting types with inverse field. (#6350)
      • Fix(GraphQL): incorrect generatedSchema in updateGQLSchema (#6349)
      • Fix(GraphQL): Link xids properly if there are duplicate xids within the same add request. (#6265)
      • Fix(GraphQL): Fix internal error when doing GraphQL schema introspection after drop all (#6268)
      • Fix(GraphQL): Fixes unexpected fragment behaviour (#6228)
      • Fix(GraphQL): Fix order and offset in auth queries. (#6221)
      • Fix(GraphQL): Linking of xids for deep mutations (#6172)
      • Fix(GraphQL): Don't reserve certain queries/mutations/inputs when a type is remote. (#6055)
      • Fix(GraphQl): Allow case insensitive auth header for graphql subscriptions. (#6141)
      • Fix(GraphQl): Panic Fix when subscription expiry is not present in jwt. (#6129)
      • Fix(GraphQL): Fix bug in custom resolver, now body need not have all the fields. (#6054)
      • Fix(GraphQL): Disallow Subscription typename. (#6077)
      • Fix(GraphQL): Fixes wrong query parameter value for custom field URL (#6074)
      • Fix(GraphQL): Fixes panic in update mutation without set & remove (#6073)
      • Fix(GraphQL): Fix auth rewriting for nested queries when RBAC rule is true. (#6053)
      • Fix(GraphQL): Fix getType queries when id was used as a name for types other than ID (#6130)
    • Core Dgraph

      • Fix(ludicrous mode): Handle deletes correctly (#6773)
      • Fix(Zero): Fix how Zero snapshots and purge works (#7096)
      • Fix: Check for nil ServerCloser in shutdown handler (#7048)
      • Fix(health): Update health only after upserting schema and types (#7006)
      • Fix(worker): Flush the stream writer on error (DGRAPH-2499) (#6609)
      • Fix(export): don't return an error if there was no GraphQL schema (#6815)
      • Fix pointer misalignment (#6795)
      • Fix(metrics): Show memory metrics for zero (#6743)
      • feat(Query): Allow filters in expand(all) queries on predicates pointing to nodes (#6752)
      • Fix(Ludicrous): Upserts on list type in Dgraph (#6754)
      • Fix(worker): Avoid panic in handleUidPostings (#6607)
      • Fix(config): Set glog -v flag correctly from config files. (#6678)
      • Fix ErrIndexingInProgress if schema update fails (#6583)
      • feat(bulk): Allow encrypted input with unencrypted output in bulk. (#6541)
      • Fix(Dgraph): Subscribe to ACL updates instead of polling. (#6459)
      • Fix(Alpha): Immediately take a snapshot if we don't have one (#6458)
      • Fix(Dgraph): Fix bug when deleting and adding to a single UID predicate in the same transaction. (#6431)
      • Fix(raft): Only leader should check the quorum (#6323)
      • Fix(Dgraph): Parse Content-Type in headers correctly (#6370)
      • Fix(shutdown): Force exit if CTRL-C is caught before initialization (#6359)
      • Fix(Query) Fix Star_All delete query when used with ACL enabled (#6331)
      • Fix(Alpha): MASA: Make Alpha Shutdown Again (#6313)
      • Fix(Dgraph): Fix how visited nodes are detected in recurse queries. (#6272)
      • Fix(Dgraph): make backups cancel other tasks (#6152)
      • Fix(Dgraph): Don't store start_ts in postings. (#6206)
      • Fix(Dgraph): Perform rollups more aggresively. (#6143)
      • Fix(rollups): rollup a batch if more than 2 seconds elapsed since last batch (#6118)
    • Enterprise Features

      • Fix(enterprise): Set version correctly post marshalling during restore (#7018)
      • Add badger.compression to Dgraph restore (#6987)
      • Fix(backup/restore): Fixes backup and restore with DROP operations (GRAPHQL-735) (#6844)
      • Fix(ACL) : Disallow deleting of groot user and guardians group (#6580)
      • Fix: Online Restore honors credentials passed in (#6295)
      • Fix(ACL Query): Fixes queries which use variable at the top level (#6290)
      • Fix(Dgraph): race condition in EnterpriseEnabled() (#6793)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(33.82 MB)
    dgraph-linux-amd64.tar.gz(33.42 MB)
    dgraph-windows-amd64.zip(42.47 MB)
  • v20.11.0-rc5(Dec 14, 2020)

    6b953b562 fix(GraphQL): fix internal Aliases name generation (#7009) (#7132) 098480ff9 fix(raftwal): unmarshal snapshot onto zerosnapshot instead of membershipState (#7125) (#7128) 8b8b0ad Fix(GraphQL): Fix Aggregate queries on empty data 61ff62f fix(GraphQL): Correctly apply order for root auth query (GRAPHQL-854) (#7117) e2d93de perf(GraphQL): Part-4: Child auth queries are derived from auth filtered parents (GRAPHQL-854) (#7111) 004ca03 Fix(bulk): Correctly append all the slices of cbuf while reduce phase (#7110) 2894f6b chore(GC): Increase discard ratio from 0.7 to 0.9 (#7114) 2e5499f [BREAKING] Fix(OOM): Don’t unmarshal pb.Proposals until we need them (#7059) 7f12eee Fix(GraphQL): Add support for repeatitive fields in aggregate query (#7094) 67abf95 perf(GraphQL): Part-3: Filter child auth queries as early as possible (GRAPHQL-854) (#7107) 9baa3c7 perf(GraphQL): Part-2: Remove unnecessary dgraph.uid : uid selections for auth queries (GRAPHQL-854) (#7105) c03c327 fix(GraphQL): don’t update cacheMb if not specified by user (GRAPHQL-888) (#7103) 5042370 perf(GraphQL): Part-1: Pagination for root user query is applied at root auth query (GRAPHQL-854) (#7100) 843fe1f feat(tablet): add uncompressed size to pb.Tablet (#7095) 5efdfbf Fix(Zero): Fix how Zero snapshots and purge works (#7096) 73b36d4 [docs] added backup policy (#7084)

    Source code(tar.gz)
    Source code(zip)
  • v20.07.3-rc1(Dec 11, 2020)

    da310c17a fix(GraphQL): don't update cacheMb if not specified by user (GRAPHQL-888) (#7103) (#7106) 466ad9a8a [docs] : rephrase + added example to query logging section (#7032) (#7078) 56ec25355 removed note about order for term and trigram since it has been fixed (#7037) 9194e298e fix(DQL): ignore ordering of indexes in schema with eq function (DGRAPH-2601) (#6996) (#7033) f8e0b2b4b Update kubernetes links to match 20.07 config files (#7049) 8dbf5730d Change default compression to zstd:3 (#6995) 4624bddf1 fix(worker): fix eq filter for non-index predicates. (#6986) (#6988) e965dd8dd fix(Alpha): Immediately take a snapshot if we don't have one (#6458) (#6970) 9e1512395 build(dockerfile): Set GODEBUG=madvdontneed=1. (#6955) 430376fe3 fix(GraphQL): This PR fixes issue of multiple responses in a subscription for an update. (#6868) (#6935) c12e0b93b v20.07: fix(backup/restore): fixes backup and restore with DROP operations (G… (#6922) 7b96f693f fix ErrIndexingInProgress if schema update fails (#6583) (#6912) ab14ed845 fix(dgraph): giving users the option to control tls versions (#6820) 942e9c36b feat(dgraph): making all internal communications with tls configured (#6876) c66f67f6c feat(dgraph): enabling TLS config in http zero (#6691) (#6867) c0c8b1d13 (release/v20.07) Fix(Dgraph): Type names in exported schema are surrounded by brackets. (#6679) 2fd793d79 Generic alpha log error message for failed ACL login (#6848) (#6850) 4d2c64b84 fix(ludicrous mode): Handle deletes correctly (#6773) (#6832) d29536994 fix(GraphQL): This PR fix panic error when we give null value in filter connectives. (#6707) (#6729) 2f9fc14fe fix(GraphQL): This PR reduces polling duration of subscriptions. (#6661) (#6726) 6a011594f Fix(GraphQL): This PR add enable schema cleaning in GraphQL and reduce schema update time. (#6725) 73e8738f9 fix(worker): Avoid panic in handleUidPostings (#6607) (#6701) d117fc14f fix(gqlParser): Handle strings with only whitespace in parseID (#6615) (#6674) f8f7c4298 fix(Ludicrous): Upserts on list type in Dgraph (#6796)

    Source code(tar.gz)
    Source code(zip)
  • v20.03.7-rc1(Dec 11, 2020)

    24ad34474 fix: added comment docstring for ExportInput format (#6991) (#7098) 07b87c28b Add LogRequest variable to config input (#5197) (#7085) 8568dd6c8 cherry pick eq index ordering fix (#7034) bc35923d5 Change default compression to zstd:3 (#7023) 54ef639ae fix(worker): fix eq filter for non-index predicates. (#6986) d76e72274 fix(Alpha): Immediately take a snapshot if we don't have one (#6458) (#6969) 2d46a360d build(dockerfile): Set GODEBUG=madvdontneed=1. (#6956) 80747ed33 v20.03: fix(backup/restore): fixes backup and restore with DROP operations (G… (#6933) d435c6ec3 Fix(Dgraph): Type names in exported schema are surrounded by brackets. (#6680) 549903d73 fixed typo locahost --> localhost (#6857) 1a159e314 Generic alpha log error message for failed ACL login (#6848) (#6851) b4f13b8b0 fix(ludicrous mode): Handle deletes correctly (#6773) (#6831) c89bbb1be chore: Cherry picks for DGRAPH-2446 (#6797) 61b9dd953 fix(worker): Avoid panic in handleUidPostings (#6607) (#6700) b6b658b40 fix(gqlParser): Handle strings with only whitespace in parseID (#6615) (#6673)

    Source code(tar.gz)
    Source code(zip)
  • v1.2.8(Oct 28, 2020)

    1.2.8 - 2020-10-28

    Changed

    • Update badger to 5e3d4b9. (#6671)
    • Return content length header for queries. (#6478)
    • Use raft storage in managedmode. (#6546)

    Added

    • Makefile to build Dgraph inside docker container. (#6603)
    • Add separate compression flag for z and wal dirs. (#6419)

    Fixed

    • Update reverse index when updating single UID predicates. (#6748)
    • Wrong path response for k-shortest paths (#6437)
    • Break out if g.Ctx is done. (#6677)
    • Update nextRaftId when starting a node with a raftId > 0. (#6599)
    • Use flags for cache. (#6465)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(33.07 MB)
    dgraph-linux-amd64.tar.gz(31.94 MB)
    dgraph-windows-amd64.zip(40.27 MB)
  • v20.07.2(Oct 22, 2020)

    20.07.2 - 2020-10-22

    Changed

    • Update badger to 5e3d4b9. (#6669)
    • Makefile to build Dgraph inside docker container. (#6601)
    • Return content length header for queries. (#6480)
    • Use raft storage in managedmode. (#6547)
    • Update index.md. (#6567)
    • Changes github.com/dgraph-io/graphql-transport-ws version. (#6529)

    Added

    • Add utility to export backup data. (#6590)
    • Add separate compression flag for z and wal dirs. (#6421)

    Fixed

    • GraphQL
      • Disallowing field names with as. (#6645)
      • Remove extra fields when querying interfaces. (#6647)
      • fix object Linking with hasInverse. (#6648)
      • Update gqlgen in go.mod. (#6646)
      • Hide info when performing mutation on id field with auth rule. (#6534)
      • Fix cascade with auth query when RBAC is false. (#6535)
      • Fix squashIntoObject so that results are correctly merged. (#6530)
      • Fix errors from authorization examples given in docs. (#6522)
      • Fix restoreStatus query with query variables. (#6424)
      • Fix for deletion on interfaces with no non Id field. (#6417)
      • Fix internal error when doing GraphQL schema introspection after drop all. (#6525)
      • Link xids properly if there are duplicate xids within type. (#6521)
      • Fix query rewriting for auth delete when deleting types with inverse field. (#6524)
      • Fix order and offset in auth queries. (#6366)
      • Generate correct schema when no orderable field in a type. (#6460)
      • Don't generate orderable enum value for list fields. (#6413)
      • Dix introspection completion bug. (#6389)
    • Fix Poor-man's auth for admin operations. (#6686)
    • Break out if g.Ctx is done. (#6675)
    • Fix wrong path response for k-shortest paths. (#6654)
    • Update nextRaftId when starting a node with a raftId > 0. (#6597)
    • Pagination param "after" does not work when using func: uid(v). (#6634)
    • CID never created if Zero stops early after first init. (#6637)
    • Pause rollups during snapshot streaming. (#6611)
    • Use flags for cache. (#6467)
    • Remove auth error from mutation. (#6532)
    • Fix readTs less than minTs. (#6517)
    • Fix bug when deleting and adding to a single UID predicate in the same transaction. (#6449)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(35.15 MB)
    dgraph-linux-amd64.tar.gz(34.30 MB)
    dgraph-windows-amd64.zip(43.21 MB)
  • v20.03.6(Oct 22, 2020)

    20.03.6 - 2020-10-22

    Changed

    • Update badger to 5e3d4b9 (#6670)
    • Return content length header for queries (#6479)
    • Use raft storage in managedmode (#6545)

    Added

    • Add utility to export backup data. (#6591)
    • Makefile to build Dgraph inside docker container. (#6602)
    • Add separate compression flag for z and wal dirs (#6420)

    Fixed

    • Break out if g.Ctx is done. (#6676)
    • Fix wrong path response for k-shortest paths. (#6655)
    • Update nextRaftId when starting a node with a raftId > 0. (#6598)
    • Pagination param "after" does not work when using func: uid(v). (#6631)
    • CID never created if Zero stops early after first init. (#6636)
    • Pause rollups during snapshot streaming. (#6610)
    • Use flags for cache. (#6466)
    • Fix negative waitgroup error. (#6551)
    • Report Raft heartbeat metrics for Zero v=3 logs and log read index. (#6553)
    • Fix readTs less than minTs. (#6518)
    • Fix bug when deleting and adding to a single UID predicate in the same transaction. (#6450)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(158 bytes)
    dgraph-darwin-amd64.tar.gz(33.89 MB)
    dgraph-linux-amd64.tar.gz(32.90 MB)
    dgraph-windows-amd64.zip(41.42 MB)
  • v1.2.7(Sep 21, 2020)

    Added

    • Add --cache_mb and --cache_percentage flags. (#6288)
    • Add flag to set up compression in zero. (#6357)
    • Add flags to set table and vlog loading mode for zero. (#6344)

    Fixed

    • Don't allow idx flag to be set to 0 on dgraph zero. (#6193)
    • Stop forcing RAM mode for the write-ahead log. (#6261)
    • Return error on closed DB. (#6319)
    • Don't store start_ts in postings. (#6212)
    • Optimize splits by doing binary search. Clear the pack from the main list. (#6334)
    • Add a lock to backups to process one request at a time. (#6341)
    • Use z.Closer instead of y.Closer' (#6396)
    • Force exit if CTRL-C is caught before initialization. (#6408)
    • Fix(Alpha): MASA: Make Alpha Shutdown Again. (#6406)
    • Enterprise features
      • Sort manifests by backup number. (#6281)
      • Skip backing up nil lists. (#6314)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(33.05 MB)
    dgraph-linux-amd64.tar.gz(31.65 MB)
    dgraph-windows-amd64.zip(40.25 MB)
  • v20.07.1(Sep 17, 2020)

    Changed

    • GraphQL
      • Remove github issues link from the error messages. (#6183)
      • Allow case insensitive auth header for graphql subscriptions. (#6179)
    • Add retry for schema update (#6098)
    • Queue keys for rollup during mutation. (#6151)

    Added

    • GraphQL
      • Adds auth for subscriptions. (#6165)
    • Add --cache_mb and --cache_percentage flags. (#6286)
    • Add flags to set table and vlog loading mode for zero. (#6342)
    • Add flag to set up compression in zero. (#6355)

    Fixed

    • GraphQL
      • Multiple queries in a single request should not share the same variables. (#6158)
      • Fixes panic in update mutation without set & remove. (#6160)
      • Fixes wrong query parameter value for custom field URL. (#6161)
      • Fix auth rewriting for nested queries when RBAC rule is true. (#6167)
      • Disallow Subscription typename. (#6173)
      • Panic fix when subscription expiry is not present in jwt. (#6175)
      • Fix getType queries when id was used as a name for types other than ID. (#6180)
      • Don't reserve certain queries/mutations/inputs when a type is remote. (#6201)
      • Linking of xids for deep mutations. (#6203)
      • Prevent empty values in fields having id directive. (#6196)
      • Fixes unexpected fragment behaviour. (#6274)
      • Incorrect generatedSchema in update GQLSchema. (#6354)
    • Fix out of order issues with split keys in bulk loader. (#6124)
    • Rollup a batch if more than 2 seconds elapsed since last batch. (#6137)
    • Refactor: Simplify how list splits are tracked. (#6070)
    • Fix: Don't allow idx flag to be set to 0 on dgraph zero. (#6192)
    • Fix error message for idx = 0 for dgraph zero. (#6199)
    • Stop forcing RAM mode for the write-ahead log. (#6259)
    • Fix panicwrap parent check. (#6299)
    • Sort manifests by BackupNum in file handler. (#6279)
    • Fixes queries which use variable at the top level. (#6290)
    • Return error on closed DB. (#6320)
    • Optimize splits by doing binary search. Clear the pack from the main list. (#6332)
    • Proto fix needed for PR #6331. (#6346)
    • Sentry nil pointer check. (#6374)
    • Don't store start_ts in postings. (#6213)
    • Use z.Closer instead of y.Closer. (#6399)
    • Make Alpha Shutdown Again. (#6402)
    • Force exit if CTRL-C is caught before initialization. (#6407)
    • Update advanced-queries.md.
    • Batch list in bulk loader to avoid panic. (#6446)
    • Enterprise features
      • Make backups cancel other tasks. (#6243)
      • Online Restore honors credentials passed in. (#6302)
      • Add a lock to backups to process one request at a time. (#6339)
      • Fix Star_All delete query when used with ACL enabled. (#6336)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(35.10 MB)
    dgraph-linux-amd64.tar.gz(34.00 MB)
    dgraph-windows-amd64.zip(43.15 MB)
  • v20.03.5(Sep 17, 2020)

    Changed

    • Add retry for schema update. (#6097)
    • Queue keys for rollup during mutation. (#6150)

    Added

    • Add --cache_mb and --cache_percentage flags. (#6287)
    • Add flag to set up compression in zero. (#6356)
    • Add flags to set table and vlog loading mode for zero. (#6343)

    Fixed

    • GraphQL
      • Prevent empty values in fields having id directive. (#6197)
    • Fix out of order issues with split keys in bulk loader. (#6125)
    • Rollup a batch if more than 2 seconds elapsed since last batch. (#6138)
    • Simplify how list splits are tracked. (#6071)
    • Perform rollups more aggresively. (#6147)
    • Don't allow idx flag to be set to 0 on dgraph zero. (#6156)
    • Stop forcing RAM mode for the write-ahead log. (#6260)
    • Fix panicwrap parent check. (#6300)
    • Sort manifests by backup number. (#6280)
    • Don't store start_ts in postings. (#6214)
    • Update reverse index when updating single UID predicates. (#6006)
    • Return error on closed DB. (#6321)
    • Optimize splits by doing binary search. Clear the pack from the main list. (#6333)
    • Sentry nil pointer check. (#6375)
    • Use z.Closer instead of y.Closer. (#6398)
    • Make Alpha Shutdown Again. (#6403)
    • Force exit if CTRL-C is caught before initialization. (#6409)
    • Batch list in bulk loader to avoid panic. (#6445)
    • Enterprise features
      • Make backups cancel other tasks. (#6244)
      • Add a lock to backups to process one request at a time. (#6340)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(33.86 MB)
    dgraph-linux-amd64.tar.gz(32.59 MB)
    dgraph-windows-amd64.zip(41.38 MB)
  • v20.07.1-rc1(Aug 18, 2020)

    Changed

    • GraphQL
      • Remove github issues link from the error messages. (#6183)
      • Allow case insensitive auth header for graphql subscriptions. (#6179)
    • Add retry for schema update (#6098)
    • Queue keys for rollup during mutation. (#6151)

    Added

    • GraphQL
      • Adds auth for subscriptions. (#6165)

    Fixed

    • GraphQL
      • Multiple queries in a single request should not share the same variables. (#6158)
      • Fixes panic in update mutation without set & remove. (#6160)
      • Fixes wrong query parameter value for custom field URL. (#6161)
      • Fix auth rewriting for nested queries when RBAC rule is true. (#6167)
      • Disallow Subscription typename. (#6173)
      • Panic fix when subscription expiry is not present in jwt. (#6175)
      • Fix getType queries when id was used as a name for types other than ID. (#6180)
      • Don't reserve certain queries/mutations/inputs when a type is remote. (#6201)
      • Linking of xids for deep mutations. (#6203)
      • Prevent empty values in fields having id directive. (#6196)
    • Fix out of order issues with split keys in bulk loader. (#6124)
    • Rollup a batch if more than 2 seconds elapsed since last batch. (#6137)
    • Refactor: Simplify how list splits are tracked. (#6070)
    • Fix: Don't allow idx flag to be set to 0 on dgraph zero. (#6192)
    • Fix error message for idx = 0 for dgraph zero. (#6199)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(35.08 MB)
    dgraph-linux-amd64.tar.gz(33.97 MB)
    dgraph-windows-amd64.zip(43.13 MB)
  • v1.2.6(Jul 31, 2020)

    Changed

    • Update Badger. (#5940, #5990)
      • Fix assert in background compression and encryption. (dgraph-io/badger#1366)
      • Avoid panic in filltables() (dgraph-io/badger#1365)
      • Force KeepL0InMemory to be true when InMemory is true (dgraph-io/badger#1375)
      • Tests: Use t.Parallel in TestIteratePrefix tests (dgraph-io/badger#1377)
      • Remove second initialization of writech in Open (dgraph-io/badger#1382)
      • Increase default valueThreshold from 32B to 1KB (dgraph-io/badger#1346)
      • Pre allocate cache key for the block cache and the bloom filter cache (dgraph-io/badger#1371)
      • Rework DB.DropPrefix (dgraph-io/badger#1381)
      • Update head while replaying value log (dgraph-io/badger#1372)
      • Update ristretto to commit f66de99 (dgraph-io/badger#1391)
      • Enable cross-compiled 32bit tests on TravisCI (dgraph-io/badger#1392)
      • Avoid panic on multiple closer.Signal calls (dgraph-io/badger#1401)
      • Add a contribution guide (dgraph-io/badger#1379)
      • Add assert to check integer overflow for table size (dgraph-io/badger#1402)
      • Return error if the vlog writes exceeds more that 4GB. (dgraph-io/badger#1400)
      • Revert "add assert to check integer overflow for table size (dgraph-io/badger#1402)" (dgraph-io/badger#1406)
      • Revert "fix: Fix race condition in block.incRef (dgraph-io/badger#1337)" (dgraph-io/badger#1407)
      • Revert "Buffer pool for decompression (dgraph-io/badger#1308)" (dgraph-io/badger#1408)
      • Revert "Compress/Encrypt Blocks in the background (dgraph-io/badger#1227)" (dgraph-io/badger#1409)
      • Add missing changelog for v2.0.3 (dgraph-io/badger#1410)
      • Changelog for v20.07.0 (dgraph-io/badger#1411)

    Fixed

    • Alpha: Enable bloom filter caching. (#5554)
    • K shortest paths queries fix. (#5596)
    • Add check on rebalance interval. (#5595)
    • Change error message in case of successful license application. (#5593)
    • Remove noisy logs in tablet move. (#5592)
    • Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5603)
    • Update badger: Set KeepL0InMemory to false (badger default), and Set DetectConflicts to false. (#5615)
    • Use /tmp dir to store temporary index. Fixes #4600. (#5730)
    • Split posting lists recursively. (#4867)
    • Set version when rollup is called with no splits. (#4945)
    • Return error instead of panic (readPostingList). Fixes #5749. (#5908)
    • ServeTask: Return error if server is not ready. (#6022)
    • Enterprise features
      • Backup: Change groupId from int to uint32. (#5613)
      • Backup: During backup, collapse split posting lists into a single list. (#4682)
      • Backup: Use a sync.Pool to allocate KVs during backup. (#5579)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(32.93 MB)
    dgraph-linux-amd64.tar.gz(31.53 MB)
    dgraph-windows-amd64.zip(40.12 MB)
  • v20.07.0(Jul 28, 2020)

    Changed

    • GraphQL
      • Make updateGQLSchema always return the new schema. (#5540)
      • Allow user to define and pass arguments to fields. (#5562)
      • Move alias to end of graphql pipeline. (#5369)
    • Return error list while validating GraphQL schema. (#5576)
    • Send CID for sentry events. (#5625)
    • Alpha: Enable bloom filter caching (#5552)
    • Add support for multiple uids in uid_in function (#5292)
    • Tag sentry events with additional version details. (#5726)
    • Sentry opt out banner. (#5727)
    • Replace shutdownCh and wait groups to a y.Closer for shutting down Alpha. (#5560)
    • Update badger to commit [e7b6e76f96e8][]. (#5537)
    • Update Badger (#5661, #6034)
      • Fix assert in background compression and encryption. (dgraph-io/badger#1366)
      • GC: Consider size of value while rewriting (dgraph-io/badger#1357)
      • Restore: Account for value size as well (dgraph-io/badger#1358)
      • Tests: Do not leave behind state goroutines (dgraph-io/badger#1349)
      • Support disabling conflict detection (dgraph-io/badger#1344)
      • Compaction: Expired keys and delete markers are never purged (dgraph-io/badger#1354)
      • Fix build on golang tip (dgraph-io/badger#1355)
      • StreamWriter: Close head writer (dgraph-io/badger#1347)
      • Iterator: Always add key to txn.reads (dgraph-io/badger#1328)
      • Add immudb to the project list (dgraph-io/badger#1341)
      • DefaultOptions: Set KeepL0InMemory to false (dgraph-io/badger#1345)
    • Enterprise features
      • /health endpoint now shows Enterprise Features available. Fixes #5234. (#5293)
      • GraphQL Changes for /health endpoint's Enterprise features info. Fixes #5234. (#5308)
      • Use encryption in temp badger, fix compilation on 32-bit. (#4963)
      • Only process restore request in the current alpha if it's the leader. (#5657)
      • Vault: Support kv v1 and decode base64 key. (#5725)
      • Breaking changes
        • [BREAKING] GraphQL: Add camelCase for add/update mutation. Fixes #5380. (#5547)

    Added

    • GraphQL
      • Add Graphql-TouchedUids header in HTTP response. (#5572)
      • Introduce @cascade in GraphQL. Fixes #4789. (#5511)
      • Add authentication feature and http admin endpoints. Fixes #4758. (#5162)
      • Support existing gqlschema nodes without xid. (#5457)
      • Add custom logic feature. (#5004)
      • Add extensions to query response. (#5157)
      • Allow query of deleted nodes. (#5949)
      • Allow more control over custom logic header names. (#5809)
      • Adds Apollo tracing to GraphQL extensions. (#5855)
      • Turn on subscriptions and adds directive to control subscription generation. (#5856)
      • Add introspection headers to custom logic. (#5858)
      • GraphQL health now reported by /probe/graphql. (#5875)
      • Validate audience in authorization JWT and change Dgraph.Authorization format. (#5980)
    • Upgrade tool for 20.07. (#5830)
    • Async restore operations. (#5704)
    • Add LogRequest variable to GraphQL config input. (#5197)
    • Allow backup ID to be passed to restore endpoint. (#5208)
    • Added support for application/graphQL to graphQL endpoints. (#5125)
    • Add support for xidmap in bulkloader. Fixes #4917. (#5090)
    • Add GraphQL admin endpoint to list backups. (#5307)
    • Enterprise features
      • GraphQL schema get/update, Dgraph schema query/alter and /login are now admin operations. (#5833)
      • Backup can take S3 credentials from IAM. (#5387)
      • Online restore. (#5095)
      • Retry restore proposals. (#5765)
      • Add support for encrypted backups in online restores. (#5226)
      • Breaking changes
        • [BREAKING] Vault Integration. (#5402)

    Fixed

    • GraphQL
      • Validate JWT Claims and test JWT expiry. (#6050)
      • Validate subscriptions in Operation function. (#5983)
      • Nested auth queries no longer search through all possible records. (#5950)
      • Apply auth rules on type having @dgraph directive. (#5863)
      • Custom Claim will be parsed as JSON if it is encoded as a string. (#5862)
      • Dgraph directive with reverse edge should work smoothly with interfaces. Fixed #5744. (#5982)
      • Fix case where Dgraph type was not generated for GraphQL interface. Fixes #5311. (#5828)
      • Fix panic error when there is no @withSubscription directive on any type. (#5921)
      • Fix OOM issue in graphql mutation rewriting. (#5854)
      • Preserve GraphQL schema after drop_data. (#5840)
      • Maintain Master's backward compatibility for Dgraph.Authorization in schema. (#6014)
      • Remote schema introspection for single remote endpoint. (#5824)
      • Requesting only _-typename now returns results. (#5823)
      • Typename for types should be filled in query for schema introspection queries. Fixes #5792. (#5891)
      • Update GraphQL schema only on Group-1 leader. (#5829)
      • Add more validations for coercion of object/scalar and vice versa. (#5534)
      • Apply type filter for get query at root level. (#5497)
      • Fix mutation on predicate with special characters having dgraph directive. Fixes #5296. (#5526)
      • Return better error message if a type only contains ID field. (#5531)
      • Coerce value for scalar types correctly. (#5487)
      • Minor delete mutation msg fix. (#5316)
      • Report all errors during schema update. (#5425)
      • Do graphql query/mutation validation in the mock server. (#5362)
      • Remove custom directive from internal schema. (#5354)
      • Recover from panic within goroutines used for resolving custom fields. (#5329)
      • Start collecting and returning errors from remote remote GraphQL endpoints. (#5328)
      • Fix response for partial admin queries. (#5317)
    • Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5571)
    • Alpha: Gracefully shutdown ludicrous mode. (#5561)
    • Use rampMeter for Executor. (#5503)
    • Dont set n.ops map entries to nil. Instead just delete them. (#5551)
    • Add check on rebalance interval. (#5544)
    • Queries or mutations shouldn't be part of generated Dgraph schema. (#5524)
    • Sent restore proposals to all groups asyncronouosly. (#5467)
    • Fix long lines in export.go. (#5498)
    • Fix warnings about unkeyed literals. (#5492)
    • Remove redundant conversions between string and []byte. (#5478)
    • Propogate request context while handling queries. (#5418)
    • K-Shortest path query fix. Fixes #5426. (#5410)
    • Worker: Return nil on error. (#5414)
    • Fix warning about issues with the cancel function. (#5397).
    • Replace TxnWriter with WriteBatch. (#5007)
    • Add a check to throw an error is a nil pointer is passed to unmarshalOrCopy. (#5334)
    • Remove noisy logs in tablet move. (#5333)
    • Support bulk loader use-case to import unencrypted export and encrypt the result. (#5209)
    • Handle Dgraph shutdown gracefully. Fixes #3873. (#5137, #5138)
    • If we don't have any schema updates, avoid running the indexing sequence. (#5126)
    • Pass read timestamp to getNew. (#5085)
    • Indicate dev environment in Sentry events. (#5051)
    • Replaced s2 contains point methods with go-geom. (#5023
    • Change tablet size calculation to not depend on the right key. Fixes #5408. (#5684)
    • Fix alpha start in ludicrous mode. Fixes #5601. (#5912)
    • Handle schema updates correctly in ludicrous mode. (#5970)
    • Fix Panic because of nil map in groups.go. (#6008)
    • update reverse index when updating single UID predicates. Fixes #5732. (#6005), (#6015)
    • Fix expand(_all_) queries in ACL. Fixes #5687. (#5993)
    • Fix val queries when ACL is enabled. Fixes #5687. (#5995)
    • Return error if server is not ready. (#6020)
    • Reduce memory consumption of the map. (#5957)
    • Cancel the context when opening connection to leader for streaming snapshot. (#6045)
    • Breaking changes
      • [BREAKING] Namespace dgraph internal types/predicates with dgraph. Fixes #4878. (#5185)
      • [BREAKING] Remove shorthand for store_xids in bulk loader. (#5148)
      • [BREAKING] Introduce new facets format. Fixes #4798, #4581, #4907. (#5424)
    • Enterprise:
      • Backup: Change groupId from int to uint32. (#5605)
      • Backup: Use a sync.Pool to allocate KVs during backup. (#5579)
      • Backup: Fix segmentation fault when calling the /admin/backup edpoint. (#6043)
      • Restore: Make backupId optional in restore GraphQL interface. (#5685)
      • Restore: Move tablets to right group when restoring a backup. (#5682)
      • Restore: Only processes backups for the alpha's group. (#5588)
      • vault_format support for online restore and gql (#5758)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-checksum-windows-amd64.sha256(50 bytes)
    dgraph-darwin-amd64.tar.gz(34.97 MB)
    dgraph-linux-amd64.tar.gz(33.87 MB)
    dgraph-windows-amd64.zip(43.01 MB)
  • v1.2.6-rc2(Jul 27, 2020)

    Changed

    • Update Badger. (#5940, #5990)
      • Fix assert in background compression and encryption. (dgraph-io/badger#1366)
      • Avoid panic in filltables() (dgraph-io/badger#1365)
      • Force KeepL0InMemory to be true when InMemory is true (dgraph-io/badger#1375)
      • Tests: Use t.Parallel in TestIteratePrefix tests (dgraph-io/badger#1377)
      • Remove second initialization of writech in Open (dgraph-io/badger#1382)
      • Increase default valueThreshold from 32B to 1KB (dgraph-io/badger#1346)
      • Pre allocate cache key for the block cache and the bloom filter cache (dgraph-io/badger#1371)
      • Rework DB.DropPrefix (dgraph-io/badger#1381)
      • Update head while replaying value log (dgraph-io/badger#1372)
      • Update ristretto to commit f66de99 (dgraph-io/badger#1391)
      • Enable cross-compiled 32bit tests on TravisCI (dgraph-io/badger#1392)
      • Avoid panic on multiple closer.Signal calls (dgraph-io/badger#1401)
      • Add a contribution guide (dgraph-io/badger#1379)
      • Add assert to check integer overflow for table size (dgraph-io/badger#1402)
      • Return error if the vlog writes exceeds more that 4GB. (dgraph-io/badger#1400)
      • Revert "add assert to check integer overflow for table size (dgraph-io/badger#1402)" (dgraph-io/badger#1406)
      • Revert "fix: Fix race condition in block.incRef (dgraph-io/badger#1337)" (dgraph-io/badger#1407)
      • Revert "Buffer pool for decompression (dgraph-io/badger#1308)" (dgraph-io/badger#1408)
      • Revert "Compress/Encrypt Blocks in the background (dgraph-io/badger#1227)" (dgraph-io/badger#1409)
      • Add missing changelog for v2.0.3 (dgraph-io/badger#1410)
      • Changelog for v20.07.0 (dgraph-io/badger#1411)

    Fixed

    • Alpha: Enable bloom filter caching. (#5554)
    • K shortest paths queries fix. (#5596)
    • Add check on rebalance interval. (#5595)
    • Change error message in case of successful license application. (#5593)
    • Remove noisy logs in tablet move. (#5592)
    • Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5603)
    • Update badger: Set KeepL0InMemory to false (badger default), and Set DetectConflicts to false. (#5615)
    • Use /tmp dir to store temporary index. Fixes #4600. (#5730)
    • Split posting lists recursively. (#4867)
    • Set version when rollup is called with no splits. (#4945)
    • Return error instead of panic (readPostingList). Fixes #5749. (#5908)
    • ServeTask: Return error if server is not ready. (#6022)
    • Enterprise features
      • Backup: Change groupId from int to uint32. (#5613)
      • Backup: During backup, collapse split posting lists into a single list. (#4682)
      • Backup: Use a sync.Pool to allocate KVs during backup. (#5579)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-darwin-amd64.tar.gz(32.93 MB)
    dgraph-linux-amd64.tar.gz(31.52 MB)
    dgraph-windows-amd64.zip(40.12 MB)
  • v20.03.4(Jul 23, 2020)

    Changed

    • Update Badger 07/13/2020. (#5941, #5616)

    Added

    • Sentry opt out banner. (#5729)
    • Tag sentry events with additional version details. (#5728)

    Fixed

    • GraphQL
      • Minor delete mutation msg fix. (#5564)
      • Make updateGQLSchema always return the new schema. (#5582)
      • Fix mutation on predicate with special characters in the @dgraph directive. (#5577)
      • Updated mutation rewriting to fix OOM issue. (#5536)
      • Fix case where Dgraph type was not generated for GraphQL interface. Fixes #5311. (#5844)
      • Fix interface conversion panic in v20.03 (#5857) .
    • Dont set n.ops map entries to nil. Instead just delete them. (#5557)
    • Alpha: Enable bloom filter caching. (#5555)
    • Alpha: Gracefully shutdown ludicrous mode. (#5584)
    • Alpha Close: Wait for indexing to complete. Fixes #3873. (#5597)
    • K shortest paths queries fix. (#5548)
    • Add check on rebalance interval. (#5594)
    • Remove noisy logs in tablet move. (#5591)
    • Avoid assigning duplicate RAFT IDs to new nodes. Fixes #4536. (#5604)
    • Send CID for sentry events. (#5633)
    • Use rampMeter for Executor. (#5503)
    • Fix snapshot calculation in ludicrous mode. (#5636)
    • Update badger: Avoid panic in fillTables(). Fix assert in background compression and encryption. (#5680)
    • Avoid panic in handleValuePostings. (#5678)
    • Fix facets response with normalize. Fixes #5241. (#5691)
    • Badger iterator key copy in count index query. (#5916)
    • Ludicrous mode mutation error. (#5914)
    • Return error instead of panic. (#5907)
    • Fix segmentation fault in draft.go. (#5860)
    • Optimize count index. (#5971)
    • Handle schema updates correctly in ludicrous mode. (#5969)
    • Fix Panic because of nil map in groups.go. (#6007)
    • Return error if server is not ready. (#6021)
    • Enterprise features
      • Backup: Change groupId from int to uint32. (#5614)
      • Backup: Use a sync.Pool to allocate KVs. (#5579)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-darwin-amd64.tar.gz(33.73 MB)
    dgraph-linux-amd64.tar.gz(32.46 MB)
    dgraph-windows-amd64.zip(41.25 MB)
  • v20.07.0-rc1(Jul 22, 2020)

    Changed

    • GraphQL
      • Make updateGQLSchema always return the new schema. (#5540)
      • Allow user to define and pass arguments to fields. (#5562)
      • Move alias to end of graphql pipeline. (#5369)
    • Return error list while validating GraphQL schema. (#5576)
    • Send CID for sentry events. (#5625)
    • Alpha: Enable bloom filter caching (#5552)
    • Add support for multiple uids in uid_in function (#5292)
    • Tag sentry events with additional version details. (#5726)
    • Sentry opt out banner. (#5727)
    • Replace shutdownCh and wait groups to a y.Closer for shutting down Alpha. (#5560)
    • Update badger to commit [e7b6e76f96e8]. (#5537)
    • Update Badger (#5661, #6034)
      • Fix assert in background compression and encryption. (dgraph-io/badger#1366)
      • GC: Consider size of value while rewriting (dgraph-io/badger#1357)
      • Restore: Account for value size as well (dgraph-io/badger#1358)
      • Tests: Do not leave behind state goroutines (dgraph-io/badger#1349)
      • Support disabling conflict detection (dgraph-io/badger#1344)
      • Compaction: Expired keys and delete markers are never purged (dgraph-io/badger#1354)
      • Fix build on golang tip (dgraph-io/badger#1355)
      • StreamWriter: Close head writer (dgraph-io/badger#1347)
      • Iterator: Always add key to txn.reads (dgraph-io/badger#1328)
      • Add immudb to the project list (dgraph-io/badger#1341)
      • DefaultOptions: Set KeepL0InMemory to false (dgraph-io/badger#1345)
    • Enterprise features
      • /health endpoint now shows Enterprise Features available. Fixes #5234. (#5293)
      • GraphQL Changes for /health endpoint's Enterprise features info. Fixes #5234. (#5308)
      • Use encryption in temp badger, fix compilation on 32-bit. (#4963)
      • Only process restore request in the current alpha if it's the leader. (#5657)
      • Vault: Support kv v1 and decode base64 key. (#5725)
      • Breaking changes
        • [BREAKING] GraphQL: Add camelCase for add/update mutation. Fixes #5380. (#5547)

    Added

    • GraphQL
      • Add Graphql-TouchedUids header in HTTP response. (#5572)
      • Introduce @cascade in GraphQL. Fixes #4789. (#5511)
      • Add authentication feature and http admin endpoints. Fixes #4758. (#5162)
      • Support existing gqlschema nodes without xid. (#5457)
      • Add custom logic feature. (#5004)
      • Add extensions to query response. (#5157)
      • Allow query of deleted nodes. (#5949)
      • Allow more control over custom logic header names. (#5809)
      • Adds Apollo tracing to GraphQL extensions. (#5855)
      • Turn on subscriptions and adds directive to control subscription generation. (#5856)
      • Add introspection headers to custom logic. (#5858)
      • GraphQL health now reported by /probe/graphql. (#5875)
      • Validate audience in authorization JWT and change Dgraph.Authorization format. (#5980)
    • Upgrade tool for 20.07. (#5830)
    • Async restore operations. (#5704)
    • Add LogRequest variable to GraphQL config input. (#5197)
    • Allow backup ID to be passed to restore endpoint. (#5208)
    • Added support for application/graphQL to graphQL endpoints. (#5125)
    • Add support for xidmap in bulkloader. Fixes #4917. (#5090)
    • Add GraphQL admin endpoint to list backups. (#5307)
    • Enterprise features
      • GraphQL schema get/update, Dgraph schema query/alter and /login are now admin operations. (#5833)
      • Backup can take S3 credentials from IAM. (#5387)
      • Online restore. (#5095)
      • Retry restore proposals. (#5765)
      • Add support for encrypted backups in online restores. (#5226)
      • Breaking changes
        • [BREAKING] Vault Integration. (#5402)

    Fixed

    • GraphQL
      • Validate JWT Claims and test JWT expiry. (#6050)
      • Validate subscriptions in Operation function. (#5983)
      • Nested auth queries no longer search through all possible records. (#5950)
      • Apply auth rules on type having @dgraph directive. (#5863)
      • Custom Claim will be parsed as JSON if it is encoded as a string. (#5862)
      • Dgraph directive with reverse edge should work smoothly with interfaces. Fixed #5744. (#5982)
      • Fix case where Dgraph type was not generated for GraphQL interface. Fixes #5311. (#5828)
      • Fix panic error when there is no @withSubscription directive on any type. (#5921)
      • Fix OOM issue in graphql mutation rewriting. (#5854)
      • Preserve GraphQL schema after drop_data. (#5840)
      • Maintain Master's backward compatibility for Dgraph.Authorization in schema. (#6014)
      • Remote schema introspection for single remote endpoint. (#5824)
      • Requesting only _-typename now returns results. (#5823)
      • Typename for types should be filled in query for schema introspection queries. Fixes #5792. (#5891)
      • Update GraphQL schema only on Group-1 leader. (#5829)
      • Add more validations for coercion of object/scalar and vice versa. (#5534)
      • Apply type filter for get query at root level. (#5497)
      • Fix mutation on predicate with special characters having dgraph directive. Fixes #5296. (#5526)
      • Return better error message if a type only contains ID field. (#5531)
      • Coerce value for scalar types correctly. (#5487)
      • Minor delete mutation msg fix. (#5316)
      • Report all errors during schema update. (#5425)
      • Do graphql query/mutation validation in the mock server. (#5362)
      • Remove custom directive from internal schema. (#5354)
      • Recover from panic within goroutines used for resolving custom fields. (#5329)
      • Start collecting and returning errors from remote remote GraphQL endpoints. (#5328)
      • Fix response for partial admin queries. (#5317)
    • Avoid assigning duplicate RAFT IDs to new nodes. Fixes #5436. (#5571)
    • Alpha: Gracefully shutdown ludicrous mode. (#5561)
    • Use rampMeter for Executor. (#5503)
    • Dont set n.ops map entries to nil. Instead just delete them. (#5551)
    • Add check on rebalance interval. (#5544)
    • Queries or mutations shouldn't be part of generated Dgraph schema. (#5524)
    • Sent restore proposals to all groups asyncronouosly. (#5467)
    • Fix long lines in export.go. (#5498)
    • Fix warnings about unkeyed literals. (#5492)
    • Remove redundant conversions between string and []byte. (#5478)
    • Propogate request context while handling queries. (#5418)
    • K-Shortest path query fix. Fixes #5426. (#5410)
    • Worker: Return nil on error. (#5414)
    • Fix warning about issues with the cancel function. (#5397).
    • Replace TxnWriter with WriteBatch. (#5007)
    • Add a check to throw an error is a nil pointer is passed to unmarshalOrCopy. (#5334)
    • Remove noisy logs in tablet move. (#5333)
    • Support bulk loader use-case to import unencrypted export and encrypt the result. (#5209)
    • Handle Dgraph shutdown gracefully. Fixes #3873. (#5137, #5138)
    • If we don't have any schema updates, avoid running the indexing sequence. (#5126)
    • Pass read timestamp to getNew. (#5085)
    • Indicate dev environment in Sentry events. (#5051)
    • Replaced s2 contains point methods with go-geom. (#5023
    • Change tablet size calculation to not depend on the right key. Fixes #5408. (#5684)
    • Fix alpha start in ludicrous mode. Fixes #5601. (#5912)
    • Handle schema updates correctly in ludicrous mode. (#5970)
    • Fix Panic because of nil map in groups.go. (#6008)
    • update reverse index when updating single UID predicates. Fixes #5732. (#6005), (#6015)
    • Fix expand(_all_) queries in ACL. Fixes #5687. (#5993)
    • Fix val queries when ACL is enabled. Fixes #5687. (#5995)
    • Return error if server is not ready. (#6020)
    • Reduce memory consumption of the map. (#5957)
    • Cancel the context when opening connection to leader for streaming snapshot. (#6045)
    • Breaking changes
      • [BREAKING] Namespace dgraph internal types/predicates with dgraph. Fixes #4878. (#5185)
      • [BREAKING] Remove shorthand for store_xids in bulk loader. (#5148)
      • [BREAKING] Introduce new facets format. Fixes #4798, #4581, #4907. (#5424)
    • Enterprise:
      • Backup: Change groupId from int to uint32. (#5605)
      • Backup: Use a sync.Pool to allocate KVs during backup. (#5579)
      • Backup: Fix segmentation fault when calling the /admin/backup edpoint. (#6043)
      • Restore: Make backupId optional in restore GraphQL interface. (#5685)
      • Restore: Move tablets to right group when restoring a backup. (#5682)
      • Restore: Only processes backups for the alpha's group. (#5588)
      • vault_format support for online restore and gql (#5758)
    Source code(tar.gz)
    Source code(zip)
    dgraph-checksum-darwin-amd64.sha256(180 bytes)
    dgraph-checksum-linux-amd64.sha256(180 bytes)
    dgraph-darwin-amd64.tar.gz(34.97 MB)
    dgraph-linux-amd64.tar.gz(33.87 MB)
    dgraph-windows-amd64.zip(43.01 MB)
Owner
Dgraph
The Only Native GraphQL Database With A Graph Backend.
Dgraph
EliasDB a graph-based database.

EliasDB EliasDB is a graph-based database which aims to provide a lightweight solution for projects which want to store their data as a graph. Feature

Matthias Ladkau 931 Aug 2, 2022
An open-source graph database

Cayley is an open-source database for Linked Data. It is inspired by the graph database behind Google's Knowledge Graph (formerly Freebase). Documenta

Cayley 14.3k Aug 12, 2022
CockroachDB - the open source, cloud-native distributed SQL database.

CockroachDB is a cloud-native SQL database for building global, scalable cloud services that survive disasters. What is CockroachDB? Docs Quickstart C

CockroachDB 25.3k Aug 7, 2022
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services

OverView RadonDB is an open source, Cloud-native MySQL database for unlimited scalability and performance. What is RadonDB? RadonDB is a cloud-native

RadonDB 1.7k Aug 5, 2022
Owl is a db manager platform,committed to standardizing the data, index in the database and operations to the database, to avoid risks and failures.

Owl is a db manager platform,committed to standardizing the data, index in the database and operations to the database, to avoid risks and failures. capabilities which owl provides include Process approval、sql Audit、sql execute and execute as crontab、data backup and recover .

null 35 Jun 17, 2022
Hard Disk Database based on a former database

Hard Disk Database based on a former database

null 0 Nov 1, 2021
Simple key value database that use json files to store the database

KValDB Simple key value database that use json files to store the database, the key and the respective value. This simple database have two gRPC metho

Francisco Santos 0 Nov 13, 2021
Beerus-DB: a database operation framework, currently only supports Mysql, Use [go-sql-driver/mysql] to do database connection and basic operations

Beerus-DB · Beerus-DB is a database operation framework, currently only supports Mysql, Use [go-sql-driver/mysql] to do database connection and basic

Beerus 6 Mar 5, 2022
Native, Protobuf & SQL-compliant objects used by offensive security tools.

Attacked Infrastructure Modular Specification (AIMS) Overview This repository aims to gather various declarations/specification of elements faced or n

null 0 Nov 19, 2021
An embedded key/value database for Go.

bbolt bbolt is a fork of Ben Johnson's Bolt key/value store. The purpose of this fork is to provide the Go community with an active maintenance and de

etcd-io 5.8k Aug 11, 2022
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support

BuntDB is a low-level, in-memory, key/value store in pure Go. It persists to disk, is ACID compliant, and uses locking for multiple readers and a sing

Josh Baker 3.8k Aug 7, 2022
ACID key-value database.

Coffer Simply ACID* key-value database. At the medium or even low latency it tries to provide greater throughput without losing the ACID properties of

Eduard 30 Jul 3, 2022
A decentralized, trusted, high performance, SQL database with blockchain features

中文简介 CovenantSQL(CQL) is a Byzantine Fault Tolerant relational database built on SQLite: ServerLess: Free, High Availabile, Auto Sync Database Service

CovenantSQL 1.4k Aug 13, 2022
LevelDB key/value database in Go.

This is an implementation of the LevelDB key/value database in the Go programming language. Installation go get github.com/syndtr/goleveldb/leveldb R

Suryandaru Triandana 5.3k Aug 13, 2022
immudb - world’s fastest immutable database

immudb Note: The master branch is the joint point for all ongoing development efforts. Thus it may be in an unstable state and should not be used in p

CodeNotary 7.7k Aug 8, 2022
A high performance NoSQL Database Server powered by Go

LedisDB Ledisdb is a high-performance NoSQL database library and server written in Go. It's similar to Redis but store data in disk. It supports many

LedisDB 3.9k Aug 6, 2022
Lightweight RESTful database engine based on stack data structures

piladb [pee-lah-dee-bee]. pila means stack or battery in Spanish. piladb is a lightweight RESTful database engine based on stack data structures. Crea

Fernando Álvarez 195 Jul 1, 2022
The Prometheus monitoring system and time series database.

Prometheus Visit prometheus.io for the full documentation, examples and guides. Prometheus, a Cloud Native Computing Foundation project, is a systems

Prometheus 43.8k Aug 14, 2022
The lightweight, distributed relational database built on SQLite.

rqlite is a lightweight, distributed relational database, which uses SQLite as its storage engine. Forming a cluster is very straightforward, it grace

rqlite 10.8k Aug 7, 2022