The HCL Domino server continues on his way to become one of the best NOSQL databases in the market. To the features we already known (Replication, compatibility with older versions, several security levels, …), in latest versions HCL added the DQL language to retrieve data in a flexible and efficient way. On the OpenNTF webinar, John Curtis announced next changes that they are working on and will most likely come in the new version of Domino.
In both Lotusscript and Java (you can remove the initial “Notes” from the class name for its equivalent), a new class called “NotesQueryResultProcessor “ will be available.
Objects from this class will be able to work on several document collections of type NotesDocumentCollection and add a functionality never seen before in our Domino server. These document collections, can be obtained from a db.search, obtaining the unprocessedDocuments, Fulltext search, … and from different NSF sources!
This new class, with the help of the creation of an internal view (that we can persist for future queries or simply create it “ad hoc”) allows us to combine the data from these collections and show them ordered, applying (or not) a previous normalization and even doing the “JOIN “ operation, more typical of relational databases.
In addition, when processing these collections, we can return the data in the “shape” of this own internal view or as a streams of data (Using the JSON format), which would allow us to obtain the first “row” of data even when the view has not been fully calculated.
In John Curtis’ words, this last option guarantees a huge incremental speed in the process compared to the traditional way.
Another feature of relational databases that we did not have available in Domino is the ability to make transactions.
The useful commands that appears in other database systems like COMMIT and ROLLBACK will be available in Lotusscript and Java as a NotesDatabase object level method.
Although no improvements are added to the Lotusscript language structure, HCL does add new classes with functionality, something we missed in the latest versions of the platform when it was still in the hands of IBM.
Both the transactions and above all the new class of processes of NotesDocumentCollection, could (and should) be used not only in scenarios where high speed data collection is needed, but in a general way.
This new collection process adds a new vision when it comes to read and processing data. Due to the amount of options it offers (many of them never seen before in Domino server), perhaps its use could be complicated and not the most efficient in each case. In my opinion, HCL should provide webinars, best practices and examples. Maybe they will probably do so at their recently announced HCL Software Academy.