public void insert(byte[] x) {
    byte[] temp;
    if (lookup(x, 0, x.length)) {
      return;
    }
    minLen = Math.min(minLen, x.length);
    maxLen = Math.max(maxLen, x.length);

    // Try to insert up to n times. Rehash if that fails.
    for(int i = 0; i != n; i++) {
      int hash1 = h1(x, 0, x.length);
      if (t1[hash1] == null) {
        t1[hash1] = x;
        return;
      }

      // swap x and t1[h1(x)]
      temp = t1[hash1];
      t1[hash1] = x;
      x = temp;

      int hash2 = h2(x, 0, x.length);
      if (t2[hash2] == null) {
        t2[hash2] = x;
        return;
      }

      // swap x and t2[h2(x)]
      temp = t2[hash2];
      t2[hash2] = x;
      x = temp;
    }
    rehash();
    insert(x);
  }
Return true if and only if the value in byte array b beginning at start
and ending at start+len is present in the set.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CuckooSetBytes.java