@Override
  public boolean equals(Object obj) {
    if (obj == this) {
      return true;
    }
    if (obj instanceof Node) {
      Node n = (Node) obj;
      return memberId.equals(n.memberId) && serialNumber == n.serialNumber;
    }
    return false;
  }
Stores information about a PartitionedRegion singleton instance running inside a virtual machine.
This Node is said to be a participant, cooperating with other Nodes to physically manage a
logically named PartitionedRegion.
<p>
Nodes are stored in a list within PartitionedRegionConfig which is stored globally as the value
of an named entry in the <code>DistributedHashMap.PARTITIONED_REGION_NAME</code>. Node must be
Serializable and have a no args Constructor. Since Nodes are used as keys in each Thread's
ThreadLocal map of Nodes to Connections, Node must implement hashCode and equals.
<p>
Node maintains a field for maxMemory (fixed) to enable other Nodes to determine whether the Node
should be the target of a canRebalance request. If the Node's maxMemory is 0, then the Node is
advertising that it never should receive a request to rebalance.
geode-core/src/main/java/org/apache/geode/internal/cache/Node.java