There is a scylla-cassandra compatibility issue in thrift. Cassandra returns an empty list for a slice it doesn't find while ScyllaDB returns a null pointer. In either case, we don't want to return a null object for a vertex. We should return an empty list when no vertex ID is returned.
If you can create a unit test that would reproduce this when run under ScyllaDB we can create an issue with them to address on their side. There should be no changes required in our client code. Ideally try to reproduce it through CQL.
+1 to what @sjudeng said; ScyllaDB claims 100% / drop-in compatibility with Cassandra, so we shouldn't be in a position to add custom compensation code for their differences, they really should be identical backends from JanusGraph's perspective.
For reference, see this comment on an earlier JanusGraph thread from a ScyllaDB engineer:
ScyllaDB 1.6-rc1 is already out, which has all the relevant Titan/JanusGraph fixes. There really should be no need for a separate ScyllaDB backend for JanusGraph. If we have Apache Cassandra compatibility bugs, we'll address them in ScyllaDB.
Did you try against JanusGraph ScyllaDB version (1.7.1), the latest stable (1.7.5) or the 2.x release candidate (2.0.rc4) ?
Thanks for the discussion; will test later versions of scylla and if the issue still exists I will take try my best to get the issue fixed there. Generally speaking, I agree with your mindset, but in this case worst case scenario the fix on our side would literally be transforming a null -> empty list so I think we can all live with that should we need to.
@dpitera can this issue be closed out? I think the work here was already completed.