amazon-archives / dynamodb-janusgraph-storage-backend

The Amazon DynamoDB Storage Backend for JanusGraph
Apache License 2.0
447 stars 99 forks source link

Taking advantage of LSIs #274

Open patricktyndall opened 6 years ago

patricktyndall commented 6 years ago

I'm pretty sure I can get great performance doing graph queries against dynamo if I use LSI's cleverly. For example, I could have an edge list DB with src-dest hash key on the table, with LSI's on src-distance and src-labels. This would let me query for the "closest" items to a node using the src-distance LSI, or similarly for adjacent edges to a node along a given label.

I want to use this library to accomplish what I'm doing, because I like the idea of a pluggable backend and the abstraction Titan provides. However, I feel that this project does not fully utilize dynamodb's capabilities with LSIs.

Am I missing something? Can I specify multiple LSI's in my graph representations, to then use in my traversals?

(For a more concrete example, I'm considering a social media app using scenario similar to the above where (from a node) I can query for "closest" based on a variety of numerical data (numMutualFriends, profileSimilarity, profileCompatibility, etc.). This way, in a client application, a user can "sort" other users by different fields, and this can just be powered by the LSIs).