Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Josh Durbin
    @joshdurbin
    Gotcha
    Is that captured in the tag anywhere?
    Actually, so, if I cloned from master.
    Josh Durbin
    @joshdurbin
    And built off master, then I was on the 2.0.x release cycle.
    The work for 2.2 is on a separate branch.
    And is Redis 6 supported for 2.0.x, even 2.0.13?
    I'm guessing so since the docker build runs 6.0.5
    DvirDukhan
    @DvirDukhan
    New features are now designated to 2.2 release, so you are getting our latest features on the master branch, even if we didn't pick them yet for 2.2
    The minimum Redis version for RedisGraph is 5.0.7, so 6.0.x is supported of course.
    Josh Durbin
    @joshdurbin
    Roger that.
    Thanks.
    Richard L. Burton III
    @rburton
    Any eta on 2.2.1 release?
    Richard L. Burton III
    @rburton
    Looks like RedisGraph doesn’t react well when a bad Cypher query is given. e.g, MATCH (Source {uid: "d"} )-[:USES]->(s: Target) WHERE ID(s) = 2OPTIONAL MATCH (s)-[:REFERENCES]-(p: Target) RETURN p kills the server
    the building of the cypher is poorly structured with 2OPTIONAL missing a space
    DvirDukhan
    @DvirDukhan
    @rburton can you give us which redisgraph version are you using?
    DvirDukhan
    @DvirDukhan
    with docker run -p 6379:6379 -it --rm redislabs/redisgraph:edge
    I get
    127.0.0.1:6379> graph.query g "MATCH (Source {uid: 'd'} )-[:USES]->(s: Target) WHERE ID(s) = 2OPTIONAL MATCH (s)-[:REFERENCES]-(p: Target) RETURN p"
    (error) Invalid numeric value '2OPTIONAL'
    also on docker tag latest
    Richard L. Burton III
    @rburton
    redislabs/redisgraph:2.2.1
    I’ll use edge and do my testing on there.
    with edge It doesnt crash
    which is good I get Missing parameters from the golang client
    Richard L. Burton III
    @rburton
    Are there any good tutorals on setting up RedisGraph on AWS?
    Roi Lipman
    @swilly22
    Not that I'm aware of, see if there are any on Redis, and simply include the RedisGraph module.
    Richard L. Burton III
    @rburton
    Thanks - I wan to get my app deployed so I can get feedback on it and thats on aspect :)
    Roi Lipman
    @swilly22
    @rburton you might want to consider Redis Enterprise Cloud (https://redislabs.com/redis-enterprise-cloud/)
    Richard L. Burton III
    @rburton
    oh not bad for prcing to get started
    @swilly22 thanks
    Sacha Froment
    @sfroment

    Heys guys I've just swap one prop from my relation from string to int64, and remove a 13byte on each props of my node. This result in less ram consumption of course but I can also notice a small improvement on the aggregate part of the query, is this related.
    Profile before changing the props

    127.0.0.1:6379> GRAPH.PROFILE domain:2 "MATCH (from:post)-[from_interaction:interaction]->(from_user:user)-[:interaction]->(to_post:post) WHERE from.postID = 'domain:xxxx' RETURN from.postID, to_post.postID, count(from_interaction) ORDER BY count(from_interaction) DESC LIMIT 100"
    1) "Results | Records produced: 100, Execution time: 0.007778 ms"
    2) "    Limit | Records produced: 100, Execution time: 0.007377 ms"
    3) "        Sort | Records produced: 100, Execution time: 21.564472 ms"
    4) "            Aggregate | Records produced: 325746, Execution time: 1856.311546 ms"
    5) "                Conditional Traverse | (from_user:user)->(to_post:post) | Records produced: 1162359, Execution time: 464.729788 ms"
    6) "                    Conditional Traverse | (from:post)-[from_interaction:interaction]->(from_user:user) | Records produced: 2832, Execution time: 4.804218 ms"
    7) "                        Index Scan | (from:post) | Records produced: 1, Execution time: 0.007159 ms"
    (2.67s)
    127.0.0.1:6379>

    Profile after changing the props

    127.0.0.1:6379> GRAPH.PROFILE domain:2 "MATCH (from:post)-[from_interaction:interaction]->(from_user:user)-[:interaction]->(to_post:post) WHERE from.postID = 'xxxxx' RETURN from.postID, to_post.postID, count(from_interaction) ORDER BY count(from_interaction) DESC LIMIT 100"
    1) "Results | Records produced: 100, Execution time: 0.007677 ms"
    2) "    Limit | Records produced: 100, Execution time: 0.007598 ms"
    3) "        Sort | Records produced: 100, Execution time: 20.258788 ms"
    4) "            Aggregate | Records produced: 329746, Execution time: 1690.208221 ms"
    5) "                Conditional Traverse | (from_user:user)->(to_post:post) | Records produced: 1056288, Execution time: 451.377966 ms"
    6) "                    Conditional Traverse | (from:post)-[from_interaction:interaction]->(from_user:user) | Records produced: 2517, Execution time: 3.887222 ms"
    7) "                        Index Scan | (from:post) | Records produced: 1, Execution time: 0.004273 ms"
    (2.46s)
    I'm not running the latest RedisGraph version so I do not have a detailed output in redis-cli monitor of what redis graph is doing under the hood
    Roi Lipman
    @swilly22
    Transposed matrices are enabled by default,
    If you're migrating from a previous version which didn't had this feature you can load your data from either AOF or RDB into the new version.
    Sacha Froment
    @sfroment
    Thanks I've just updated, if I understand correctly the purpose of this new option is that it will make my query run faster ?
    Roi Lipman
    @swilly22
    in cases where we decide to traverse in an opposite direction we won't have to compute the transpose, this leads to increase in performance
    Sacha Froment
    @sfroment
    thx :+1:
    vinodh
    @rawvnode
    hello, i'm looking for some guidance on how to effectively use alias and/or node_id while creating a node. Ideally i'm looking to assign an existing attribute that is unique to the node from an external source to the node alias. In this way, I can retrieve the node using get_node(). Alias doesn't seem to like certain characters like dashes, slashes, leading numerics and such. Any suggestions?
    vinodh
    @rawvnode
    sorry get_node() above is in reference to fetching the node given an identifier(node.alias) using the redisgraph-py library.
    https://github.com/RedisGraph/redisgraph-py/blob/1adff897b05a9154c36d33e16e57891ee41a4016/redisgraph/graph.py#L68
    RomainSY
    @RomainSY

    Hello, I'm having performance issues with Redis. Some of my requests are taking 300ms to execute while most of them take about 1 ms.
    Here is the benchmark on a simple test that I ran :

    minimum time: 1.105 ms (0.00% GC)
    median time: 1.317 ms (0.00% GC)
    mean time: 19.520 ms (0.00% GC)
    maximum time: 310.429 ms (0.00% GC)

    The test :

    q = string("CREATE (:Test {nature :'Test',val:'test'})")
    BenchmarkTools.DEFAULT_PARAMETERS.seconds = 1000
    BenchmarkTools.DEFAULT_PARAMETERS.samples = 10000
    @benchmark Redis.execute_command(conn,[ "GRAPH.QUERY", "GraphDetection", q])

    I also checked the internal time on the query but here everything is normal and it take less than a millisecond each time.
    I thought the problem was due to the saving of the DB on the disk but I changed it on the redis config file and the result were the same.
    Does anyone know what the problem could be and if it is possible to make all of my queries to run fast ?

    Roi Lipman
    @swilly22
    @rawvnode, an alias is used to refer to an entity within a query, say I match a node, and I want to apply a filter or project some attribute of that node, in which case I'll assign an alias to that node (the alias is not part of the node metadata) and use that alias to refer to that node in different parts of the query, you can use an external source to generate unique IDs and assign a unique ID to a node, e.g. a node can have an attribute 'id' which you control its value.
    Hi @RomainSY, when you say "internal time" do you mean the time redisgraph reports as part of its statistics?
    RomainSY
    @RomainSY
    Hi @swilly22, yes I'm talking about the "Query internal execution time:". This time is always low but when i check the time of my line that execute the query it sometime takes 300ms
    Roi Lipman
    @swilly22
    Ok, this is the time RedisGraph took running the query, I suggest inspecting the client you're using and the network, 300 ms seems like a very long time
    vinodh
    @rawvnode
    @swilly22 thanks
    Raul Guo
    @RaulGuo
    Any has ever tried to use redisgraph with redis 6.0 in multi thread mode? Does use multi thread do good for the write and query performance for redisgraph?
    DvirDukhan
    @DvirDukhan
    hi @RaulGuo
    Each query is parsed on a dedicated thread. once a query is marked as write query it will lock the graph writers lock, allowing only single writer ar a time. So in short, if you have a write-only application, you will benefit from the queries parsing and execution preparation done in parallel, but the execution itself will be done in a synchronized manner.
    we are planning on improving this approach in future versions.
    matrixbot
    @matrixbot
    pelican I'm now trying for hours to get redis time series to understand my data. It is just a timestamp, a price, a label buy or sell and a position type [1603840984, 33.90, "sell", "limit"]. Can someone explain me how I would add the data in a way that querying makes sense. And also the label doesn't work like I would expect it. Can someone show me a proof of concept with multiple labels and how to query them, please?
    Guy Korland
    @gkorland
    @matrixbot I think you're on the wrong room RedisLabs/RedisTimeSeries is the right one
    Guy Korland
    @gkorland
    @matrixbot did you manage?
    Sacha Froment
    @sfroment
    Hi will this RedisGraph/RedisGraph#1364 be port into the future 2.2 release ?
    Guy Korland
    @gkorland
    Yes, it's probably going to be part of 2.2.7
    Sacha Froment
    @sfroment
    Thanks :)
    Guy Korland
    @gkorland
    We have a new Discord channel https://discord.gg/gWBRT6P