code: private Iterable<Object> getCounterLockKeys()
      {
          return Iterables.concat(Iterables.transform(getColumnFamilies(), new Function<ColumnFamily, Iterable<Object>>()
          {
              public Iterable<Object> apply(final ColumnFamily cf)
              {
                  return Iterables.transform(cf, new Function<Cell, Object>()
                  {
                      public Object apply(Cell cell)
                      {
                          return Objects.hashCode(cf.id(), key(), cell.name());
                      }
                  });
              }
          }));
      }
docs: Returns a wrapper for the Striped#bulkGet() call (via Keyspace#counterLocksFor())
  Striped#bulkGet() depends on Object#hashCode(), so here we make sure that the cf id and the partition key
  all get to be part of the hashCode() calculation, not just the cell name.