/** {@inheritDoc} */
  @Override
  public void clearAll(
      Collection<? extends K> keys,
      @Nullable GridPredicate<? super GridCacheEntry<K, V>>[] filter) {
    super.clearAll(keys, filter);

    dht.clearAll(keys, filter);
  }
  /** {@inheritDoc} */
  @Override
  public void start() throws GridException {
    super.start();

    ctx.io()
        .addHandler(
            GridNearGetResponse.class,
            new CI2<UUID, GridNearGetResponse<K, V>>() {
              @Override
              public void apply(UUID nodeId, GridNearGetResponse<K, V> res) {
                processGetResponse(nodeId, res);
              }
            });

    ctx.io()
        .addHandler(
            GridNearTxPrepareResponse.class,
            new CI2<UUID, GridNearTxPrepareResponse<K, V>>() {
              @Override
              public void apply(UUID nodeId, GridNearTxPrepareResponse<K, V> res) {
                processPrepareResponse(nodeId, res);
              }
            });

    ctx.io()
        .addHandler(
            GridNearTxFinishResponse.class,
            new CI2<UUID, GridNearTxFinishResponse<K, V>>() {
              @Override
              public void apply(UUID nodeId, GridNearTxFinishResponse<K, V> res) {
                processFinishResponse(nodeId, res);
              }
            });

    ctx.io()
        .addHandler(
            GridNearLockResponse.class,
            new CI2<UUID, GridNearLockResponse<K, V>>() {
              @Override
              public void apply(UUID nodeId, GridNearLockResponse<K, V> res) {
                processLockResponse(nodeId, res);
              }
            });
  }
  /** {@inheritDoc} */
  @Override
  public void reloadAll() throws GridException {
    super.reloadAll();

    dht.reloadAll();
  }
  /** {@inheritDoc} */
  @Override
  public void clearAll(@Nullable GridPredicate<? super GridCacheEntry<K, V>>[] filter) {
    super.clearAll(filter);

    dht.clearAll(filter);
  }