microsoft / garnet

Garnet is a remote cache-store from Microsoft Research that offers strong performance (throughput and latency), scalability, storage, recovery, cluster sharding, key migration, and replication features. Garnet can work with existing Redis clients.
https://microsoft.github.io/garnet/
MIT License
10.23k stars 512 forks source link

It is not possible to use client tools such as datagrip or redis insight #383

Closed kyuminMoon closed 4 months ago

kyuminMoon commented 5 months ago

Feature request type

sample request

Is your feature request related to a problem? Please describe

I always thought this part was inconvenient while using it. Do you have any plans to create a dedicated GUI client tool or make the driver supported?

Describe the solution you'd like

Do you have any plans to create a dedicated GUI client tool or make the driver supported? For reference, I am using garnet cluster mode.

Describe alternatives you've considered

No response

Additional context

No response

badrishc commented 5 months ago

We have made sure in the past that RedisInsight works with Garnet. Let us know if you run into any issues.

kyuminMoon commented 4 months ago

Currently, garnet is operated in cluster mode and is being used as a master slave structure. When establishing a connection using intellij's Database function, the connection is established normally, but the schema is not viewed.

The versions used are as follows: IntelliJ IDEA 2023.2.5 garnet : 1.0.8

The script used is as follows.

./GarnetServer --cluster --checkpointdir='/data/' --aof

redis-cli -h garnet-m -p 6379 cluster addslots $(seq 0 16383);
redis-cli -h garnet-m -p 6379 cluster set-config-epoch 1;
redis-cli -h garnet-s1 -p 6379 cluster set-config-epoch 2;
redis-cli -h garnet-s2 -p 6379 cluster set-config-epoch 3;
redis-cli -h garnet-m -p 6379 cluster meet garnet-s1 6379;
redis-cli -h garnet-m -p 6379 cluster meet garnet-s2 6379;
redis-cli -h garnet-s1 -p 6379 cluster replicate $(redis-cli -h garnet-m -p 6379 cluster myid);
redis-cli -h garnet-s2 -p 6379 cluster replicate $(redis-cli -h garnet-m -p 6379 cluster myid);

We confirmed that when applying the settings, data replication proceeds without problem. However, the schema is not being searched. image

And when using Redis Insight, the connection itself is not established.

Is there a problem with the method I used?

badrishc commented 4 months ago

we have not tried with cluster, if you can debug and let us know which command is missing, we might be able to add it. cc @vazois

kyuminMoon commented 4 months ago

Sorry for the late reply. When executing the CONFIG GET databases command, I confirmed that an error occurred because the result type was different. The log is as follows.

CONFIG GET databases
-- ] --------------------------------------------------
-- 2024-05-16 12:09:22 [garnet] [0@192.x.x.x [2]] [introspection] [session id: 1757844920] [statement id: 264536377] error - class [B cannot be cast to class java.util.List ([B and java.util.List are in module java.base of loader 'bootstrap')
-- 2024-05-16 12:09:22 [garnet] [0@192.x.x.x [2]] [introspection] [session id: 1757844920] [statement id: 264536377] finished - execution time: 11 ms
-- [ --------------------------------------------------

Based on redis 7.2.3 version, the result is output as follows.

1) "databases"
2) "1"

However, garnet is output as follows:

"16"
badrishc commented 4 months ago

Good work narrowing it down, this should not be hard to fix. Thanks.

vazois commented 4 months ago

Thanks for providing a repro. Fix for this here https://github.com/microsoft/garnet/pull/389.

badrishc commented 4 months ago

@kyuminMoon - can you see if this makes your tool work or does it hit some other issue after this fix?

kyuminMoon commented 4 months ago

@badrishc Thank you for the quick response After testing with intellij and datagrip, it was confirmed that it was working properly!