A method of executing a query over a first dataset and a second dataset, the method comprising determining an indication of a highest intersection between a plurality of first datasets and a second dataset, wherein each first dataset is associated with a first drone database agent for receiving and executing running of queries over the first dataset and the second dataset has a second drone database agent for receiving and executing running of queries over the second dataset, entries in the first and second datasets having at least one key, the method comprising: at each first drone database agent generating for the at least one key in the respective first dataset location information in a first binary structure by applying a deterministic function to the entries associated with the key; transmitting the first binary structures to a control processor; storing the first binary structures in a data structure at the control processor each in association with an identifier of the dataset and a key type of the at least one key of the first dataset; at the second drone generating for the at least one key in the second dataset, location information in a second binary structure by applying the same deterministic function to the entries associated with the key; transmitting the second binary structure to the control processor; at the control processor, accessing the first binary structures in the data structure which have keys matching the at least one key of the second dataset and comparing the location information in each first binary structure with the location information in each of the second binary structure to determine the indication of the intersection between each first dataset and the second dataset; determining which of the first datasets has a highest intersection with the second dataset and executing the query over the first and second datasets having the highest intersection. wherein executing the query comprises applying a filtering expression of the query to the first or second dataset to return a filtering set of identifiers of data entries satisfying the filtering expression, and applying the filtering set of identifiers and a target expression of the query to the other of the first or second datasets to return a query result. at each first drone database agent generating for the at least one key in the respective first dataset location information in a first binary structure by applying a deterministic function to the entries associated with the key; transmitting the first binary structures to a control processor; storing the first binary structures in a data structure at the control processor each in association with an identifier of the dataset and a key type of the at least one key of the first dataset; at the second drone generating for the at least one key in the second dataset, location information in a second binary structure by applying the same deterministic function to the entries associated with the key; transmitting the second binary structure to the control processor; at the control processor, accessing the first binary structures in the data structure which have keys matching the at least one key of the second dataset and comparing the location information in each first binary structure with the location information in each of the second binary structure to determine the indication of the intersection between each first dataset and the second dataset; determining which of the first datasets has a highest intersection with the second dataset and executing the query over the first and second datasets having the highest intersection. wherein executing the query comprises applying a filtering expression of the query to the first or second dataset to return a filtering set of identifiers of data entries satisfying the filtering expression, and applying the filtering set of identifiers and a target expression of the query to the other of the first or second datasets to return a query result.