GSoC 2018: 6 — 7 week work
Hello there!
So, today we will discuss about the work of 7 week of GSoC under Python Hydra. First of all , the week was very good and I have learned a lot things during this period(we will discuss these later).
So, First important thing that I have learned is faceted indexing in Redis. Actually, we were discussing about secondary indexing or faceted indexing but I read about faceted indexing which is fully support by Redis but not secondary indexing. So, I decide to faceted indexing of properties which helps a lot in querying mechanism. We had an almost working querying mechanism for the hydra-client with Redis. But then we noticed that we were suffering from uniqueness of id’s of objects.
Ex- if we have an id /DroneCollection/2
then it means it contain the id 2 which is unique but if we have deleted this event or can substitute with the other event which can have different properties from previous but with same id 2. Then it becomes the problem because many user can got the same id with the different properties.
So, for the solution we discuss and decide to use checksum with the use of properties for maintain uniqueness of id. But it effects(break) the work of hydra-client or querying mechanism. So, we have divide the problem into two parts 1. add uuid instead of id and 2. Implement the checksum mechanism. And first part will help in continue the work of hydra-client but after completing second part which can takes some time we have to change the hydra-client as per requirement.
How querying mechanism working still now:
- if client wants to access whole the objects like whole properties or properties with value or all the supportedOperation for any endpoint. User simply query like
show <endpoint> <property>
and agent will query for whole objects from the graph with the help of node properties. - secondly, if client wants to query with comparison in properties like Drone with
MaxSpeed = 250 and name = Drone1 ….
So, User simply query likeMaxSpeed 250 and name Drone1 ….
and agent will query with the help of faceted indexing which has been done in agent for properties only. And agent will show the desired output with the fully consideration ofand
andor
operator. - some special cases like, if user want to query about all endpoints or all collection endpoints or all classes endpoints then user can use
show endpoints
andshow collectionendpoints
andshow classendpoints
respectively. And for query the class endpoint property, user should useclass
keyword before the<endpoint>
.
There are some issue in querying mechanism until now but I am still working on it.
So, For the faceted indexing and querying mechanism, I will work on the same add lazy load graph. And for the issue add uuid I am working on PR add uuid instead id.
Thanks! We will meet here soon.
Sandeep Chauhan