You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Implement Grain Services which are a partitioned SystemTarget service.
Can invoke a Grain Service with a test.
Added Grain Service Configuration
Tests reporting:
Exception thrown: 'Orleans.CodeGenerator.CodeGenerationException' in OrleansCodeGenerator.dll
Additional information: (1,18913): error CS0122: 'ITestHooksSystemTarget' is inaccessible due to its protection level
Resolved GrainService GrainId, InsideRuntimeClient using ReminderRegistr
SystemTarget public, GrainServiceClient used
SystemTarget is now public, removed GrainService analog, now contains just GrainService logic
GrainServiceClient is used to locate the IReminderService
Cannot capture the correct Reminder GrainId (GrainClassData not available)?
SystemTarget public, GrainServiceClient used
Initial stab at implementing a partitioned system service.
From @sergeybykov comments, attempted the below:
---
I see at least two potential ways, likely complementary, to expose such functionality to application code.
1) Partitioned system service. Essentially a generalized version of the Reminder service, but with an application system target class instead of LocalReminderService, e.g. GrainService, and a corresponding equivalent to ReminderRegistry proxy class, e.g. GrainServiceClient. We only create a single LocalReminderService system target per silo today, but it shouldn't be too difficult to make that number configurable. In this approach, callers are completely oblivious to partitioning and routing, and it's the responsibility of the GrainService to react to repartitioning events and changes to the ring range it owns.
* Added an explicit method NewGrainServiceKey to UniqueKey instead of reusing the more general NewKey directly.
* Added type name to log statements and as the logger name.
* Reverted RegisterSystemTarget back to internal.
* Eliminated a warning about deprecated Consul method.
* Added XML commenst and tweaked a few methods to eliminate build warnings.
* Tweaks to make code .NET Core compatible.
* Support dependency injection in GrainServices (#6)
0 commit comments