Skip to content

Conversation

@xiazen
Copy link
Owner

@xiazen xiazen commented Mar 3, 2018

No description provided.

mdashti and others added 16 commits February 13, 2017 16:18
… operations

+ Added a storage provider for Microsoft DocumentDB
+ Added the required error codes for DocumentDBStorageProvider
+ Updated both AzureTavleStorage and AzureBlobStorage to implement IExtendedStorageProvider
+ Added IsSubclassOfRawGenericType to TypeUtils
+ Updated the NuSpec of OrleansAzureUtils to have a reference to DocumentDB
…ing key).

+ Made Silo address internally accessible
+ Added SetupStorageProvider to Catalog in order to setup the storage provider by only having a grainInstanceType (and no ActivationData)
…g and using the Indexes, once the indexing implementation get added

+ Added additional dependencies in the Tester and TestExtensions project for tetsing the Indexing functionality, once it gets added
+ Created the NuSpec for OrleansIndexing project
+ Added the name and type code for special storage providers used in the OrleansIndexing project
+ Fixed AzureProviderErrorCodes for DocumentDBStorageProvider
+ Made internals of Orleans and OrleansRuntime visible to the OrleansIndexing
+ Added OrleansIndexing as a dependency for Tester, TestGrains and TestGrainInterfaces
+ Added the IIndexableGrain interface that is the base interface for all indexable grains
+ Added two utility classes used in OrleansIndexing: SiloUtils and TypeCodeMapper
+ Added extension methods for Grain, GrainFactory and Type
+ Removed the unavailable indexing features from SiloAssemblyLoader
+ Added the base interface and abstract grain implementation for the tests (IPlayerGrain and PlayerGrainNonFaultTolerant)
+ Added tests for the base case of having no index, as well as enumerating active grains
+ Added IndexInterface to be the interface of all indexes with its two variants: HashIndexInterface and RangeIndexInterface
+ Added the base class for all non-fault-tolerant indexable grains (IndexableGrainNonFaultTolerant)
+ Added IndexFactory that plays a similar role as GrainFactory for indexes
+ Added IndexHandler that handles the updates from grains to the index classes
+ Added IndexBuilder, though it's not going to be used at the moment, as we assume that we will always start with empty indexes
+ Added indexing annotations (IndexAttribute and AIndexAttribute)
+ Added the first index implementation: AHashIndexSingleBucket (that indexes active grains without fault tolerance). In this initial implementation, each index is a single grain.
+ Added IndexMetaData that contains the metadata stored for each index
+ Added IIndexUpdateGenerator to be the interface for the update generator of each grain with a default implementation (IndexUpdateGenerator)
+ Added IMemberUpdate as the interface of an update to a member variable of a grain. It comes with a variant of its default implementations (MemberUpdate, MemberUpdateTentative and MemeberUpdateReverseTentative)
+ Added an exception class to be raised in the case of violating a unique constraint (UniquenessConstraintViolatedException)
+ Updated the test grains to extend IndexableGrainNonFaultTolerant and added AIndex annotation to their test grain interfaces
…esults from the previously defined indexes. The current query mechanism only supports a very limited type of query structures, where can be directly answered by an index. The query mechanism extends the Linq facilities.

+ Added two mechanism for returning the query results, 1) return the whole resut at once or 2) streaming the result back to the user
+ Updated IndexFactory to create a dummy GetActiveGrains node
+ Updated IndexInterface and RangeIndexInterface to provide query functionality
… the corresponding index grain, which might not necessarily be in the same silo

+ Added some tests related to this index implementation to test the basic functionality
…each silo separately (and the index grain is a SystemTarget)

+ Added some tests to verify the basic functionality of this index implementation
…big index bucket. Currently, the overflows of an index bucket that goes beyond a specific and predefined threshold is passed to another index bucket chained to the first one.

+ Added test to verify the basic functionality of this feature
…ains stored in a StorageProvider that supports indexing. As the name suggests, this implementation does not do any caching on the retreived data from the StorageProvider.

+ Added some tests to verify the basic functionality of this index type. Running these tests requires having a valid DocumentDB account.
…rains of a given type regardless of being active or deactive.

+ Added three flavours of its implementation (SingleBucker, DistrbutedPerKey, DistributedPerSilo) similar to AIndex
+ Added some tests for lazy indexing, even though lazy indexing is not implemented yet. These tests should pass nevertheless and the point is not failing when lazy indexing is introduced.
…o make lazy index updates possible and also provide fault-tolerance.

+ Added some tests to verify the basic functionality of the workflow system.
+ The logging (in Catalog.cs) is now inside SetupStorageProvider(Type grainInstanceType) method rather than repeating similar code in SetupStorageProvider(Type grainType, ActivationData data).
+ Refactored HashIndexPartitionedPerKeyBucket to extend HashIndexSingleBucket
+ Assigned a unique error code for each usage of IndexingIndexIsNotReadyYet in HashINdexSingleBucket and ActiveHashIndexPartitionedPerKeyBucketImpl
+ Removed IndexBuilder from this branch. The behavior of this component needs more development. It is necessary for TotalIndexes (I-Indexes) to work properly if they are introduced after the first deployment of the application.
+ Removed DocumentDBStorageProvider from this branch. A separate branch will be created for this storage-provider.
+ Renamed CosmosIndex to TotalIndex.
+ Removed dead code and commented ot code segments
+ Removed unnecessary Usings
+ Reverted the unnecessary change in the visibility of grainId field in SystemTarget
+ Renamed index attributes (AInext to ActiveIndex, IIndex to CosmosIndex, DSMIndex to StorageManagedIndex)
+ Added missing documentation for index attributes
+ Removed unused and commented code from DocumentDBStorageProvider and its tests.
+ Added comments for index information object getters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants