basho / riak

Riak is a decentralized datastore from Basho Technologies.
http://docs.basho.com
Apache License 2.0
3.93k stars 534 forks source link

Availability of the link feature #968

Closed jchristgit closed 5 years ago

jchristgit commented 5 years ago

We are currently using links for establishing a hierarchy between Riak entries (main objects and sub objects, with one level of nesting), but it seems like links were deprecated in 2.0. The protocol buffer documentation reads:

links — This parameter is associated with the now-deprecated link walking feature and should not be used by Riak clients

Will link metadata be part of the upcoming release or is there a way to opt into it? Alternatively, which alternatives could be used instead of this links?

martinsumner commented 5 years ago

Apologies for the long delay in picking up on the question.

Although the link feature was deprecated, I don't believe it has been removed. I've just verified that the test of this feature still passes on the latest version. Perhaps

There's no intention to to take active action to remove it from releases going forward that I'm aware of. However, it is not something we have an active focus on testing in the release cycle, as the main Riak users involved in development don't use links.

There may well be hidden and unexpected issues when combining links with other features, which may have been the motivation behind the original deprecation warning. Although there may be no intention to stop links form working in the future, they may stop working.

In terms of alternatives, I think in a lot of cases link-walking managed by Riak isn't seen as necessarily a big efficiency. So when Riak users have object relationships they tend to encode those relationships into the body or header of the application object, and then walk links through their application themselves.

jchristgit commented 5 years ago

Thank you for the reply and your tests. Managing the links via the body sounds like a good alternative - thanks for the hint.