/** * add this target if it does not already exists */ void addTarget(DatanodeDescriptor node) { if (this.targets == null) { this.targets = new DatanodeDescriptor[0]; } for (int j = 0; j < this.targets.length; j++) { if (this.targets[j].equals(node)) { return; // target already exists } } if (node != null) { node.addINode(this); } // allocate new data structure to store additional target DatanodeDescriptor[] newt = new DatanodeDescriptor[targets.length + 1]; for (int i = 0; i < targets.length; i++) { newt[i] = this.targets[i]; } newt[targets.length] = node; this.targets = newt; this.primaryNodeIndex = -1; }
/** * Function that finds the best partial triple including a first replica * @param first first replica to be used * @param listOfNodes nodes to choose from * @param result array that stores results */ private void findBestWithFirst(DatanodeDescriptor first, List<DatanodeDescriptor> listOfNodes, DatanodeDescriptor[] result) { for (int in2 = 0; in2 < listOfNodes.size(); in2++) { DatanodeDescriptor n2 = listOfNodes.get(in2); if (!first.equals(n2)) { if (result[1] == null && inWindow(first, n2)) { result[0] = first; result[1] = n2; } for (int in3 = in2 + 1; in3 < listOfNodes.size(); in3++) { DatanodeDescriptor n3 = listOfNodes.get(in3); if (!first.equals(n3) && inWindow(first, n3, n2)) { result[0] = first; result[1] = n2; result[2] = n3; return; } } } } }
int index = -1; for (int j = 0; j < this.targets.length; j++) { if (this.targets[j].equals(node)) { index = j; break;
for (; it != null && it.hasNext(); ) { DatanodeDescriptor dd = it.next(); if (!dd.equals(node)) { nodes[count++] = dd;
for (; it != null && it.hasNext(); ) { DatanodeDescriptor dd = it.next(); if (!dd.equals(node)) { nodes[count++] = dd;