Repository navigation
Conversation
…or normal grains.
|
Hi @Maarten88, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution! The agreement was validated by .NET Foundation and real humans are currently evaluating your PR. TTYL, DNFBOT; |
|
I read your comment on #1915 (comment), but I am still not convinced the right solution is just to return an empty string for Row Key for generic grains. |
|
@gabikliot I agree this needs more research. I only tested on the emulator and also feel this solution is poor. I do feel an empty rowkey is as good as anything, but having used the grain type until now makes it logical to continue doing that. My vacation has started, I didn't bring my laptop so I can't work on this for the coming three weeks, sorry. I pushed this mostly to share my progress. Feel free to ditch this pull request and find a better fix for this weird bug. |
|
@Maarten88 Were you planning to return to this? Or should I close it? |
|
@Maarten88 Closing for now. Please reopen if you get back to it. |
This change is in response to a question in #1915 from @jdom
For generic grains (which have a long partition key) this sets the rowkey to String.Empty so that ClearStateAsync works. Only ClearState was affected, it seems ReadState and WriteState worked with the long key.
I'm not sure about this one myself: it fixes the problem but I'm not sure I understand the Azure table storage behavior w.r.t how it deals with long keys containing special characters. A better fix would be to change the internal handling of generic arguments by removing the qualified assembly name, making it much shorter. Yet another option would be to change grainReference.ToKeyString() to return a shorter key for generic grains.
This change changes the storage key values for generic grains with previous versions. Normal grains should be unaffected.