[SERVER-52573] create the libdeps graph collection service Created: 02/Nov/20  Updated: 17/Oct/23  Resolved: 17/Oct/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: Daniel Moody Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-52566 Create generate-libdeps-graph target Closed
is depended on by SERVER-52574 libdeps graph collection service basi... Closed
is depended on by SERVER-52575 connect the libdeps graph command lin... Closed
is depended on by SERVER-52577 connect libdep visualization service ... Closed
Assigned Teams:
Server Development Platform
Participants:

 Description   

From the document: 

The graph collection service is a web service to which new instances of graph data can be pushed and persisted. A permanent instance of the collection service will be maintained, such that an evergreen task can send new graph instances to it for every commit. The collection service will then be able to answer queries about the state of the graph at any given time.

 

The graph collection service will also serve an instance of the visualization tools that are pointed at its stored data, allowing visualization of the state of the graph at any given time, or over time.

 

The command line tools, when pointed at the graph collection service, will gain the ability to answer temporal queries, such as:

  • Over what range of commits does node X exist?
  • In what commits did the node or edge count increase or decrease?
  • By how much did a given commit change the node or edge counts?
  • In what commit did node X first become dependent on node Y?
  • In what commit did node X cease to be dependent on node Y?
  • Provide a time series representation of the node or edge counts over a given range.

 

The graph collection service should be implemented in Python and will presumably use MongoDB for its data storage, unless another data store is called for due to friction between the graph-y nature of the data and MongoDB’s capabilities.

 

The graph collection service code should be committed to the server repository so that it is easy to run a local instance.

This ticket is for writing the basic implementation of such a service and committing that service into the repo. The scope of this ticket assumes the service can be started, data can be pushed to it and persisted, and the basic query is functional and answers through a web interface (REST?): 

  • Over what range of commits does node X exist?

The format the data stored in the database should be conducive to further more advanced queries.


Generated at Thu Feb 08 05:28:25 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.