Class DataServiceGrpcClient

    • Field Detail

      • DEBUG_ENABLED

        protected static final boolean DEBUG_ENABLED
        Indicates if debug is enabled.
    • Constructor Detail

      • DataServiceGrpcClient

        public DataServiceGrpcClient​(String originHostName,
                                     String host,
                                     int port)
        Construct client for accessing server at host:port.
        Parameters:
        originHostName - DS host name
        host - Host
        port - Port
    • Method Detail

      • cleanCaches

        public void cleanCaches()
        Description copied from interface: CommonManager
        Method that cleans the caches of the manager. Used on testing.
        Specified by:
        cleanCaches in interface CommonManager
      • activateTracing

        public void activateTracing​(int currentAvailableTaskID)
        Description copied from interface: DataServiceAPI
        Activate tracing.
        Specified by:
        activateTracing in interface DataServiceAPI
        Parameters:
        currentAvailableTaskID - Current starting task ID in Extrae
      • getTraces

        public Map<String,​byte[]> getTraces()
        Description copied from interface: DataServiceAPI
        Get Extrae traces (mpits and set files)
        Specified by:
        getTraces in interface DataServiceAPI
        Returns:
        Extrae traces (mpits and set files)
      • deployMetaClasses

        public void deployMetaClasses​(String namespaceName,
                                      Map<String,​MetaClass> deploymentPack)
        Description copied from interface: DataServiceAPI
        Deploys a series of MetaClass containers to a given namespace.
        Specified by:
        deployMetaClasses in interface DataServiceAPI
        Parameters:
        namespaceName - Name of the namespace classes belongs to.
        deploymentPack - A map containing name of the class and the MetaClass container.
      • deployClasses

        public void deployClasses​(String namespaceName,
                                  Map<Tuple<String,​MetaClassID>,​byte[]> classesToDeploy,
                                  Map<String,​byte[]> classesAspects,
                                  Map<String,​byte[]> stubYamls)
        Description copied from interface: DataServiceAPI
        Deploys the given class in the path corresponding to the given namespace.
        Specified by:
        deployClasses in interface DataServiceAPI
        Parameters:
        namespaceName - Name of the namespace classes belongs to.
        classesToDeploy - bytecode of the classes to be deployed.
        classesAspects - bytes of the aspects of this class
        stubYamls - Stub yamls.
      • enrichClass

        public void enrichClass​(String namespaceName,
                                String className,
                                byte[] classToDeploy,
                                byte[] classAspects,
                                byte[] stubYaml)
        Description copied from interface: DataServiceAPI
        Enriches the given class in the path corresponding to the given namespace.
        Specified by:
        enrichClass in interface DataServiceAPI
        Parameters:
        namespaceName - Name of the namespace which class belongs to.
        className - Name of the class to deploy
        classToDeploy - bytecode of the class to be deployed.
        classAspects - bytes of the aspects of this class
        stubYaml - Stub yaml
      • newPersistentInstance

        public ObjectID newPersistentInstance​(SessionID sessionID,
                                              MetaClassID classID,
                                              ImplementationID implementationID,
                                              Map<MetaClassID,​byte[]> ifaceBitMaps,
                                              SerializedParametersOrReturn params)
        Description copied from interface: DataServiceAPI
        Create an instance of the class with id provided using constructor with id and params specified and store it.
        Specified by:
        newPersistentInstance in interface DataServiceAPI
        Parameters:
        sessionID - Session ID to use
        classID - Id of the class to use
        implementationID - ID of the implementation of the constructor
        ifaceBitMaps - Interface bitmaps (for parameters)
        params - Parameters
        Returns:
        ObjectID of the persisted instance.
      • storeObjects

        public void storeObjects​(SessionID sessionID,
                                 List<ObjectWithDataParamOrReturn> objects,
                                 boolean moving,
                                 Set<ObjectID> idsWithAlias)
        Description copied from interface: DataServiceAPI
        Store objects into Database.
        Specified by:
        storeObjects in interface DataServiceAPI
        Parameters:
        sessionID - SessionID sessionID
        objects - Serialized objects to store (still volatile parameters)
        moving - If true, indicates that objects are being moved from another DS.
        idsWithAlias - Objects with alias
      • getCopyOfObject

        public SerializedParametersOrReturn getCopyOfObject​(SessionID sessionID,
                                                            ObjectID objectID,
                                                            boolean recursive)
        Description copied from interface: DataServiceAPI
        Retrieves the given object and all subobjects as volatile new objects with new OIDs
        Specified by:
        getCopyOfObject in interface DataServiceAPI
        Parameters:
        sessionID - ID of the current session
        objectID - ID of the object to retrieve
        recursive - retrieve a copy of the whole object copying also its subobjects or only the main object
        Returns:
        a copy of the object
      • updateObject

        public void updateObject​(SessionID sessionID,
                                 ObjectID intoObjectID,
                                 SerializedParametersOrReturn fromObject)
        Description copied from interface: DataServiceAPI
        Method that updates an object (into) with contents obtained from object (from)
        Specified by:
        updateObject in interface DataServiceAPI
        Parameters:
        sessionID - id of the session requesting this method
        intoObjectID - id of the object to put contents into
        fromObject - object to get contents from
      • getObjects

        public List<ObjectWithDataParamOrReturn> getObjects​(SessionID sessionID,
                                                            Set<ObjectID> objectIDs,
                                                            Set<ObjectID> alreadyObtainedObjects,
                                                            boolean recursive,
                                                            ExecutionEnvironmentID destBackendID,
                                                            int updateReplicaLocs)
        Description copied from interface: DataServiceAPI
        Get the serialized objects with id provided
        Specified by:
        getObjects in interface DataServiceAPI
        Parameters:
        sessionID - ID of session
        objectIDs - IDs of the objects to get
        alreadyObtainedObjects - IDs of already obtained objects
        recursive - Indicates if, per each object to get, also obtain its associated objects.
        destBackendID - Destination backend of objects being obtained for replica
        updateReplicaLocs - If 1, provided replica dest backend id must be added to replica locs of obtained objects If 2, provided replica dest backend id must be removed from replica locs If 0, replicaDestBackendID field is ignored
        Returns:
        Map of serialized object where key is the objectID. Object is not serialized if flag getOnlyRefs=true
      • makePersistent

        public void makePersistent​(SessionID sessionID,
                                   List<ObjectWithDataParamOrReturn> params)
        Description copied from interface: DataServiceAPI
        This function will deserialize make persistent "parameters" (i.e. object to persist and subobjects if needed) into dataClay memory heap using the same design as for volatile parameters. Eventually, dataClay GC will collect them, and then they will be registered in LogicModule if needed (if objects were created with alias, they must have metadata already).
        Specified by:
        makePersistent in interface DataServiceAPI
        Parameters:
        sessionID - ID of session of make persistent call
        params - objects to store.
      • federate

        public void federate​(SessionID sessionID,
                             ObjectID objectID,
                             ExecutionEnvironmentID externalExecutionEnvironmentID,
                             boolean recursive)
        Description copied from interface: DataServiceAPI
        Federate object with ID provided to external EE specified
        Specified by:
        federate in interface DataServiceAPI
        Parameters:
        sessionID - ID of the session sending the object
        objectID - ID of the object to federate
        externalExecutionEnvironmentID - ID of external execution environment to federate
        recursive - Indicates if all sub-objects must be replicated as well.
      • unfederate

        public void unfederate​(SessionID sessionID,
                               ObjectID objectID,
                               ExecutionEnvironmentID externalExecutionEnvironmentID,
                               boolean recursive)
        Description copied from interface: DataServiceAPI
        Unfederate object with ID provided to external EE specified
        Specified by:
        unfederate in interface DataServiceAPI
        Parameters:
        sessionID - ID of the session
        objectID - ID of the object to unfederate
        externalExecutionEnvironmentID - ID of external execution environment to unfederate
        recursive - Indicates if all sub-objects must be unfederated as well.
      • notifyUnfederation

        public void notifyUnfederation​(SessionID sessionID,
                                       Set<ObjectID> objectIDs)
        Description copied from interface: DataServiceAPI
        Unfederate objects with ID provided.
        Specified by:
        notifyUnfederation in interface DataServiceAPI
        Parameters:
        sessionID - ID of the session.
        objectIDs - ID of the objects to unfederate.
      • synchronize

        public void synchronize​(SessionID sessionID,
                                ObjectID objectID,
                                ImplementationID implID,
                                SerializedParametersOrReturn params,
                                ExecutionEnvironmentID callingBackendID)
        Description copied from interface: DataServiceAPI
        This function synchronizes changes in object field
        Specified by:
        synchronize in interface DataServiceAPI
        Parameters:
        sessionID - ID of the session of the execution
        objectID - ID of the object with the information to use by the implementation
        implID - Implementation ID of operation to execute
        params - Serialized parameter values used while invoking the operation
        callingBackendID - ID of calling backend or Null if called by client
      • newVersion

        public ObjectID newVersion​(SessionID sessionID,
                                   ObjectID objectID,
                                   ExecutionEnvironmentID destBackendID)
        Description copied from interface: DataServiceAPI
        This operation creates a new version of the object with ID provided in the backend specified
        Specified by:
        newVersion in interface DataServiceAPI
        Parameters:
        sessionID - Session
        objectID - ID of the object
        destBackendID - ID of destination backend
        Returns:
        ID of the version created
      • consolidateVersion

        public void consolidateVersion​(SessionID sessionID,
                                       ObjectID versionObjectID)
        Description copied from interface: DataServiceAPI
        Consolidates object with ID provided
        Specified by:
        consolidateVersion in interface DataServiceAPI
        Parameters:
        sessionID - ID of session
        versionObjectID - ID of the object of the version
      • upsertObjects

        public void upsertObjects​(SessionID sessionID,
                                  List<ObjectWithDataParamOrReturn> objectBytes)
        Description copied from interface: DataServiceAPI
        Updates objects or insert if they do not exist with the values in objectBytes. NOTE: This function is recursive, it is going to other DSs if needed.
        Specified by:
        upsertObjects in interface DataServiceAPI
        Parameters:
        sessionID - ID of session needed.
        objectBytes - Map of objects to update.
      • newReplica

        public Set<ObjectID> newReplica​(SessionID sessionID,
                                        ObjectID objectID,
                                        ExecutionEnvironmentID destBackendID,
                                        boolean recursive)
        Description copied from interface: DataServiceAPI
        This operation creates a new replica of the object with ID provided in the backend specified
        Specified by:
        newReplica in interface DataServiceAPI
        Parameters:
        sessionID - Session
        objectID - ID of the object
        destBackendID - ID of destination backend
        recursive - Indicates if all sub-objects must be replicated as well.
        Returns:
        ids of replicated objects
      • moveObjects

        public Set<ObjectID> moveObjects​(SessionID sessionID,
                                         ObjectID objectID,
                                         ExecutionEnvironmentID destStLocation,
                                         boolean recursive)
        Description copied from interface: DataServiceAPI
        Move object from this location to the one specified
        Specified by:
        moveObjects in interface DataServiceAPI
        Parameters:
        sessionID - Session ID
        objectID - ID of the object to move
        destStLocation - Destination location
        recursive - Indicates if all sub-objects (in this location or others) must be moved as well.
        Returns:
        Set of moved objects
      • removeObjects

        public Map<ObjectID,​ExecutionEnvironmentID> removeObjects​(SessionID sessionID,
                                                                        Set<ObjectID> objectIDs,
                                                                        boolean recursive,
                                                                        boolean moving,
                                                                        ExecutionEnvironmentID newhint)
        Description copied from interface: DataServiceAPI
        This operation removes the objects with IDs provided NOTE: This function is recursive, it is going to other DSs if needed.
        Specified by:
        removeObjects in interface DataServiceAPI
        Parameters:
        sessionID - Session ID
        objectIDs - ID of the objects to remove
        recursive - Indicates if remove is recursive or not.
        moving - Indicates remove is caused by a movement of an object.
        newhint - New hint in case of move.
        Returns:
        IDs of the objects removed and their backends.
      • getClassIDFromObjectInMemory

        public MetaClassID getClassIDFromObjectInMemory​(ObjectID objectID)
        Description copied from interface: DataServiceAPI
        Get ClassID from object in memory. Used in case the object is still pending to register and Hints point to this DS.
        Specified by:
        getClassIDFromObjectInMemory in interface DataServiceAPI
        Parameters:
        objectID - ID of the object
        Returns:
        Class ID of the object
      • shutDown

        public void shutDown()
        Description copied from interface: DataServiceAPI
        Shutdown server. Called from Logic Module.
        Specified by:
        shutDown in interface DataServiceAPI
      • disconnectFromOthers

        public void disconnectFromOthers()
        Description copied from interface: DataServiceAPI
        Disconnect server from others servers. Called from Logic Module.
        Specified by:
        disconnectFromOthers in interface DataServiceAPI
      • waitAndProcessAllAsyncRequests

        public void waitAndProcessAllAsyncRequests()
        Wait all async. requests
      • closeSessionInDS

        public void closeSessionInDS​(SessionID sessionID)
        Description copied from interface: DataServiceAPI
        Close session in DS. Used to notify that some objects are not longer 'retained' by sessions.
        Specified by:
        closeSessionInDS in interface DataServiceAPI
        Parameters:
        sessionID - ID of session.
      • updateRefs

        public void updateRefs​(Map<ObjectID,​Integer> updateCounterRefs)
        Description copied from interface: DataServiceAPI
        Update counters of references.
        Specified by:
        updateRefs in interface DataServiceAPI
        Parameters:
        updateCounterRefs - Update counter of references.
      • deleteAlias

        public void deleteAlias​(SessionID sessionID,
                                ObjectID objectID)
        Description copied from interface: DataServiceAPI
        Delete alias of object with ID provided
        Specified by:
        deleteAlias in interface DataServiceAPI
        Parameters:
        sessionID - ID of the session deleting the alias
        objectID - ID of the object to delete the alias from
      • detachObjectFromSession

        public void detachObjectFromSession​(ObjectID objectID,
                                            SessionID sessionID)
        Description copied from interface: DataServiceAPI
        Detach object from session, i.e. remove reference from session provided to object, "dear garbage-collector, the session is not using the object anymore"
        Specified by:
        detachObjectFromSession in interface DataServiceAPI
        Parameters:
        objectID - ID of the object
        sessionID - ID of the session not using the object anymore
      • exists

        public boolean exists​(ObjectID objectID)
        Description copied from interface: DataServiceAPI
        Check if the object exists EE memory
        Specified by:
        exists in interface DataServiceAPI
        Parameters:
        objectID - ID of the object to check
        Returns:
        TRUE if the object exists in EE memory.
      • existsInDB

        public boolean existsInDB​(ObjectID objectID)
        Description copied from interface: DataServiceAPI
        Check if the object exists in SL or in any EE memory associated to current SL
        Specified by:
        existsInDB in interface DataServiceAPI
        Parameters:
        objectID - ID of the object to check
        Returns:
        TRUE if the object either exists in SL disk or in EE memory.
      • getNumObjects

        public int getNumObjects()
        Description copied from interface: DataServiceAPI
        Get number of objects in SL and all its associated EEs
        Specified by:
        getNumObjects in interface DataServiceAPI
        Returns:
        number of objects in SL and all its associated EEs
      • getNumObjectsInEE

        public int getNumObjectsInEE()
        Description copied from interface: DataServiceAPI
        Get number of alive objects in current EE
        Specified by:
        getNumObjectsInEE in interface DataServiceAPI
        Returns:
        number of alive objects in current EE
      • store

        public void store​(ExecutionEnvironmentID eeID,
                          ObjectID objectID,
                          byte[] bytes)
        Description copied from interface: DataServiceAPI
        Store the object.
        Specified by:
        store in interface DataServiceAPI
        Parameters:
        eeID - ID of the EE triggering the call
        objectID - ID of the object
        bytes - Bytes of the object
      • get

        public byte[] get​(ExecutionEnvironmentID eeID,
                          ObjectID objectID)
        Description copied from interface: DataServiceAPI
        Get serialized object identified by ObjectID
        Specified by:
        get in interface DataServiceAPI
        Parameters:
        eeID - ID of the EE triggering the call
        objectID - ID of the object
        Returns:
        Bytes of the serialized object with ID provided.
      • update

        public void update​(ExecutionEnvironmentID eeID,
                           ObjectID objectID,
                           byte[] newbytes,
                           boolean dirty)
        Description copied from interface: DataServiceAPI
        Updates an object identified by the ID provided with the new values provided.
        Specified by:
        update in interface DataServiceAPI
        Parameters:
        eeID - ID of the EE triggering the call
        objectID - ID of the object.
        newbytes - New byte values
        dirty - dirty Indicates object has been modified. If false, it means that bytes only contains reference counting information. DESIGN NOTE: in order to be able to find out which references where removed in complex objects (arrays, collections) GlobalGc decreases all pointed references in a Get procedure and increase them again (except removed ones) during update. While in EE, objects have memory references so they cannot be removed neither.