-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Labels
backendBackend related issuesBackend related issuesosctrl-adminosctrl-admin related changesosctrl-admin related changes⚡️ performancePerformance related issuesPerformance related issues🚨 HIGH PRI 🚨High Priority issueHigh Priority issue
Description
The current implementation has significant performance issues when dealing with large node sets. Two critical bottlenecks have been identified:
- No Pagination in Node Retrieval
- All nodes are retrieved in one database query
- This loads the entire result set into memory at once
- As the number of nodes grows, this single query becomes increasingly slow
- No limit or offset mechanism exists for large result sets
- Full Node Data Transfer
- The entire node dataset is processed and sent to the client as a single JSON payload
- For large environments, this creates massive JSON responses
- Both server processing time and network transfer time increase linearly with node count
- The client browser must then parse and render this large dataset
Suggested Solutions
- Implement Server-side Pagination:
- Modify
GetByEnv
to support pagination parameters (limit, offset) - Add pagination controls to the UI
- Only retrieve and display a subset of nodes at any time
- Modify
- Add Server-side DataTables Processing:
- Convert existing DataTables implementation to use server-side processing
- Leverage DataTables' built-in AJAX pagination capabilities
- Client requests only the data needed for the current page view
During our test, most of the time was spent on rendering the JSON in the browser. It takes around 500ms to download the JSON file and 10+ seconds to load the JSON.
martinjaegerdk
Metadata
Metadata
Assignees
Labels
backendBackend related issuesBackend related issuesosctrl-adminosctrl-admin related changesosctrl-admin related changes⚡️ performancePerformance related issuesPerformance related issues🚨 HIGH PRI 🚨High Priority issueHigh Priority issue