I am new to distributed computation and orleans, recently do some research on those,and not sure whether orleans can be used for new task.
This task is that, there are many projects belong to different people and each project has a lot of data. For each project, the steps like below:
- Get new data via calculating raw data.Raw data is stored in distributed database, and then new data will be stored back to database. MQ or Redis may be used to improve performance.
- Calculate summary values from new data and save summary value back to database.
My questions are:
- Server/Grain Load Balancing: Grans without unique id. It is better to run many grains in all servers for load balance, each grains just get data from database and do computation, no need to create a instance with id. For Orleans, it is not allowed for grains without unique id except stateless grains, and stateless grains just run locally.
- Long Run Computation: The calculation and summary may take several seconds or minutes to finish work, Is it recommended to using grains? seem it is not recommended in document.
- Sequential Execution: It is necessary that calculating new values from raw data first, and then summary based on new values. It means that grains for summary must be run after all of grains for calculation are done.
- Data Caching: Grains get Data from and save data to database via local network, Are there any suggestion for orleans to reduce data transfer?