Class ChangeCaptureViewWriter

    • Constructor Detail

      • ChangeCaptureViewWriter

        public ChangeCaptureViewWriter​(VeniceConfigLoader props,
                                       Store store,
                                       org.apache.avro.Schema keySchema,
                                       java.util.Map<java.lang.String,​java.lang.String> extraViewParameters)
    • Method Detail

      • processRecord

        public java.util.concurrent.CompletableFuture<PubSubProduceResult> processRecord​(java.nio.ByteBuffer newValue,
                                                                                         java.nio.ByteBuffer oldValue,
                                                                                         byte[] key,
                                                                                         int version,
                                                                                         int newValueSchemaId,
                                                                                         int oldValueSchemaId,
                                                                                         org.apache.avro.generic.GenericRecord replicationMetadataRecord)
        Description copied from class: VeniceViewWriter
        To be called as a given ingestion task consumes each record. This is called prior to writing to a VT or to persistent storage.
        Overrides:
        processRecord in class VeniceViewWriter
        Parameters:
        newValue - the incoming fully specified value which hasn't yet been committed to Venice
        oldValue - the previous value which has already been locally committed to Venice for the given key
        key - the key of the record that designates newValue and oldValue
        version - the version of the store taking this record
        newValueSchemaId - the schemaId of the incoming record
        oldValueSchemaId - the schemaId of the old record
        replicationMetadataRecord - the associated RMD for the incoming record.
      • processControlMessage

        public void processControlMessage​(ControlMessage controlMessage,
                                          int partition,
                                          PartitionConsumptionState partitionConsumptionState,
                                          int version)
        Description copied from class: VeniceViewWriter
        Called when the server encounters a control message. There isn't (today) a strict ordering on if the rest of the server alters it's state completely or not based on the incoming control message relative to the given view. TODO: Today this is only invoked for VERSION_SWAP control message, but we may in the future call this method for all control messages so that certain view types can act accordingly.
        Overrides:
        processControlMessage in class VeniceViewWriter
        Parameters:
        controlMessage - the control message we're processing
        partition - the partition this control message was delivered to
        partitionConsumptionState - the pcs of the consuming node
        version - the store version that received this message
      • getTopicNamesAndConfigsForVersion

        public java.util.Map<java.lang.String,​VeniceProperties> getTopicNamesAndConfigsForVersion​(int version)
        Description copied from class: VeniceView
        Implementations should override to return a map of topicName:topic Configs relevant for topic materialization (things like partition count, RF, etc.) TODO: Come up with list of config names that should be parsed by VeniceAdmin to pass along to TopicManager.
        Overrides:
        getTopicNamesAndConfigsForVersion in class VeniceView
        Returns:
        a map keyed by the name of the topic to be created and the configs which should be applied for that creation
      • getWriterClassName

        public java.lang.String getWriterClassName()
        Description copied from class: VeniceView
        Implementations should return the fully specified class name for the component VeniceViewWriter implementation.
        Overrides:
        getWriterClassName in class VeniceView
        Returns:
        returns the className of the writer which should be instantiated.