All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.geode.cache.partition.PartitionListener Maven / Gradle / Ivy

Go to download

Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing

There is a newer version: 1.15.1
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional information regarding
 * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License. You may obtain a
 * copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

package org.apache.geode.cache.partition;

import org.apache.geode.cache.PartitionAttributesFactory;
import org.apache.geode.cache.Region;

/**
 * 
 * A callback for partitioned regions, invoked when a partition region is created or any bucket is
 * created/deleted or any bucket in a partitioned region becomes primary.
*
* It is highly recommended that implementations of this listener should be quick and not try to * manipulate regions and data because the the callbacks are invoked while holding locks that may * block region operations.
* *
 * package com.myCompany.MyPartitionListener;
 *
 * public class MyPartitionListener extends PartitionListenerAdapter implements Declarable {
 *   private String regionName;
 *
 *   public MyPartitionListener() {}
 * 
 *   public void afterPrimary(int bucketId) {
 *     System.out.println("bucket:" + bucketId + " has become primary on " + this.regionName);
 *   }
 * 
 *   public void afterRegionCreate(Region<?, ?> region) {
 *     this.regionName = region.getName();
 *   }
 * }
 * 
* * A sample declaration of the MyPartitionListener in cache.xml as follows :
* *
 * <partition-attributes redundant-copies="1">
 *     <partition-listener>
 *         <class-name>com.myCompany.MyPartitionListener</class-name>
 *     </partition-listener>
 * </partition-attributes>
 * 
* * @see PartitionAttributesFactory#addPartitionListener(PartitionListener) * * @since GemFire 6.5 * */ public interface PartitionListener { /** * Callback invoked when any bucket in a partitioned region becomes primary * * @param bucketId id of the bucket which became primary * @since GemFire 6.5 */ public void afterPrimary(int bucketId); /** * Callback invoked when a partition region is created * * @param region handle of the region which is created * @since GemFire 6.5 */ public void afterRegionCreate(Region region); /** * Callback invoked after a bucket has been removed from a member (e.g. during rebalancing). This * API is useful for maintaining external data structures by bucket id or key. * * @param bucketId id of the bucket removed * @param keys keys in the bucket removed * @since GemFire 6.6.1 */ public void afterBucketRemoved(int bucketId, Iterable keys); /** * Callback invoked after a bucket has been created in a member (e.g. during rebalancing). This * API is useful for maintaining external data structures by bucket id or key. Note that this API * is invoked after the initial image has been completed so creates and destroys may occur in the * keys. It is best to use this API during periods of no cache activity. * * @param bucketId id of the bucket created * @param keys keys in the bucket created * @since GemFire 6.6.1 */ public void afterBucketCreated(int bucketId, Iterable keys); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy