1461137116-9c836f68-47e0-450e-82e4-d641bc0e4ae4

I claim:

1. Apparatus for applying a coating of positive ions to a substrate having a coating area to be coated, the apparatus comprising:
a) a vacuum chamber;
b) a holder in the vacuum chamber for supporting the substrate;
c) a filtered cathodic arc source for directing a plasma beam containing the positive ions toward the substrate, the plasma beam having a cross-sectional beam area on the substrate which is smaller than the coating area on the substrate; and
d) scanning means for moving the beam in a raster scan across the substrate to coat the coating area.
2. The apparatus of claim 1, wherein the scanning means is operative for moving the beam along two mutually orthogonal directions in a scan pattern.
3. The apparatus of claim 1, wherein the holder is a rotary drum for moving the substrate relative to the beam.
4. The apparatus of claim 3, wherein the substrate is mounted on a peripheral surface of the drum.
5. The apparatus of claim 1, wherein the holder is movable, and further comprising a plurality of additional substrates mounted on the movable holder.
6. The apparatus of claim 2, wherein the scanning means is operative for generating a magnetic field for moving the beam at one scanning frequency in one of the directions, and at another scanning frequency in the other of the directions.
7. The apparatus of claim 6, wherein each scanning frequency lies in a range of 2-100 Hz.
8. The apparatus of claim 1; and further comprising an additional filtered cathodic arc source for directing an additional plasma beam toward the substrate, the additional plasma beam having a cross-sectional additional beam area on the substrate which is smaller than the coating area on the substrate; and an additional scanning means for moving the additional beam in a raster scan across the coating to coat the coating area on the substrate with an additional coating.
9. The apparatus of claim 1, wherein the cathodic arc source includes an interchangeable cathode.
10. The apparatus of claim 1; and further comprising means for applying an electrical bias to the substrate.
11. The apparatus of claim 10, wherein the bias is a DC voltage.
12. The apparatus of claim 10, wherein the bias is an RF signal.
13. The apparatus of claim 1, wherein the cathodic arc source includes a duct having two bends.
14. The apparatus of claim 13, wherein one of the bends lies in a first plane, and the other of the bends lies in a second plane, and wherein the planes are not coincident.
15. The apparatus of claim 1, wherein the substrate is a dielectric substrate; said apparatus further comprising means for applying a radio frequency bias to the dielectric substrate to dissipate electrostatic charge accruing during coating of the coated area.
16. The apparatus of claim 15, wherein the dielectric substrate is an optical element.
17. Apparatus for applying a coating of positive ions to a plurality of substrates each substrate having a coating area to be coated, the apparatus comprising:
a) a vacuum chamber;
b) a holder in the vacuum changer for supporting the plurality of substrates;
c) a plurality of filtered cathodic arc sources for directing respective plasma beams each containing the positive ions towards the substrates, each plasma beam having a cross-sectional beam area on a respective substrate which is smaller than a respective coating area on the respective substrate;
d) scanning means for moving the beams in respective raster scans across the substrates to coat the respective coating areas of the substrates; and
e) drive means for moving the holder relative to the beams.
18. The apparatus of claim 17, wherein the plurality of arc sources are simultaneously operated.
19. Apparatus for applying a coating of positive ions to a substrate having a coating area to be coated, the apparatus comprising:
a) a vacuum chamber;
b) a holder in the vacuum chamber for supporting the substrate;
c) a filtered cathodic arc source for directing a plasma beam containing the positive ions toward the substrate, the plasma beam having a cross-sectional beam area on the substrate which is smaller than the coating area on the substrate;
d) scanning means for moving the beam in a raster scan across the substrate to coat the coating area on the substrate; and
e) drive means for moving the holder relative to the beam.
20. Apparatus for applying a coating of positive ions to a substrate having a coating area to be coated, the apparatus comprising:
a) a vacuum chamber;
b) a holder in the vacuum chamber for supporting the substrate;
c) a cathode arc source for directing a plasma beam containing the positive ions towards the substrate; and
d) scanning means;
wherein the scanning means comprises means for scanning the beam in a y-axis and means for scanning the beam in an x-axis across the substrate to coat the coating area.
21. The apparatus according to claim 20, wherein the scanning means is operative for generating magnetic fields for moving the beam at a scanning frequency of from 2-100 Hz in the y-axis and at a frequency of from 2-100 Hz in the x-axis.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A system, comprising
one or more processors;
a memory;
a non-transitory storage medium storing computer-readable instructions, the instructions, when executed, operative to cause the one or more processors to:
maintain in the memory, for each association set corresponding to a first node of a plurality of nodes and an association type of a plurality of association types, a first index and a second index; wherein the first index comprises an ordered array of entries, each entry including a node identifier of a second node that is associated with the first node and a sorting attribute; wherein the second index comprises a hash table comprising entries corresponding to the node identifiers of respective second nodes that are associated with the first node;
receive a command to add an association of a first association type between a first node and a second node, the command including a first node identifier and a second node identifier;
access the memory against the first association type and the first node identifier to add the second node identifier to a first index and a second index corresponding to the first association type and the first node identifier.
2. The system of claim 1 wherein the entries of the hash table of the second index each comprises an offset value corresponding to an entry in the first index.
3. The system of claim 1 wherein the sorting attribute is a time stamp.
4. The system of claim 1 wherein the ordered array is a circular buffer.
5. The system of claim 1 wherein the instructions, when executed, are operative to cause the one or more processors to
maintain a count value for each association set;
increment count values in response to commands to add an association corresponding to respective association sets; and
decrement count values in response to commands to delete an association corresponding to respective association sets.
6. The system of claim 1 wherein the instructions, when executed, are operative to cause the one or more processors to forward the command to a persistent data store.
7. The system of claim 1 wherein the instructions, when executed, are operative to cause the one or more processors to
receive a query including a first node identifier, an association type and a limit value; and
access, responsive to the query, the memory to return a first set of second node identifiers in the first index for the association set corresponding to the first node identifier and the second node identifier, wherein a number of second node identifiers in the first set is less than or equal to the limit value.
8. A method, comprising
maintaining in a memory, for each association set corresponding to a first node of a plurality of nodes and an association type of a plurality of association types, a first index and a second index; wherein the first index comprises an ordered array of entries, each entry including a node identifier of a second node that is associated with the first node and a sorting attribute; wherein the second index comprises a hash table comprising entries corresponding to the node identifiers of respective second nodes that are associated with the first node;
receiving a command to add an association of a first association type between a first node and a second node, the command including a first node identifier and a second node identifier;
accessing the memory against the first association type and the first node identifier to add the second node identifier to a first index and a second index corresponding to the first association type and the first node identifier.
9. The method of claim 8 wherein the entries of the hash table of the second index each comprises an offset value corresponding to an entry in the first index.
10. The method of claim 8 wherein the sorting attribute is a time stamp.
11. The method of claim 8 wherein the ordered array is a circular buffer.
12. The method of claim 8 further comprising
maintaining a count value for each association set;
incrementing count values in response to commands to add an association corresponding to respective association sets; and
decrementing count values in response to commands to delete an association corresponding to respective association sets.
13. The method of claim 8 further comprising forwarding the command to a persistent data store.
14. The method of claim 8 further comprising
receiving a query including a first node identifier, an association type and a limit value; and
accessing, responsive to the query, the memory to return a first set of second node identifiers in the first index for the association set corresponding to the first node identifier and the second node identifier, wherein a number of second node identifiers in the first set is less than or equal to the limit value.
15. A non-transitory storage medium storing computer-readable instructions, the instructions, when executed, operative to cause one or more processors to:
maintain in the memory, for each association set corresponding to a first node of a plurality of nodes and an association type of a plurality of association types, a first index and a second index; wherein the first index comprises an ordered array of entries, each entry including a node identifier of a second node that is associated with the first node and a sorting attribute; wherein the second index comprises a hash table comprising entries corresponding to the node identifiers of respective second nodes that are associated with the first node;
receive a command to add an association of a first association type between a first node and a second node, the command including a first node identifier and a second node identifier;
access the memory against the first association type and the first node identifier to add the second node identifier to a first index and a second index corresponding to the first association type and the first node identifier.
16. The storage medium of claim 15 wherein the entries of the hash table of the second index each comprises an offset value corresponding to an entry in the first index.
17. The storage medium of claim 15 wherein the sorting attribute is a time stamp.
18. The storage medium of claim 15 wherein the ordered array is a circular buffer.
19. The storage medium of claim 15 wherein the instructions, when executed, are operative to cause the one or more processors to
maintain a count value for each association set;
increment count values in response to commands to add an association corresponding to respective association sets; and
decrement count values in response to commands to delete an association corresponding to respective association sets.
20. The storage medium of claim 15 wherein the instructions, when executed, are operative to cause the one or more processors to
receive a query including a first node identifier, an association type and a limit value; and
access, responsive to the query, the memory to return a first set of second node identifiers in the first index for the association set corresponding to the first node identifier and the second node identifier, wherein a number of second node identifiers in the first set is less than or equal to the limit value.