This repository was archived by the owner on Dec 10, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
Home
Michael Comella edited this page May 12, 2013
·
20 revisions
- Frontend Testing Coverage - enumeration of code to still be tested
The major project issues can largely be found in the github issues. Smaller issues (e.g. edge cases) may also be found as TODOs in the code. Below is a selected listing of larger issues.
- #82 - Chromium returns identical res_ids on creation
- #83 - Multiple session IDs created per user
- No resource garbage collecting (may soon change)
- No malicious query protection
- No maximum collection size per user
- #104 - Move frontend code into seperate files
- #107 - Specify browser compatibility
- #96 - Move user authentication to decorators
- #67 - Warn user when keep-alives fail
- Multiple successive statements to the shell may not print the output in the
order they were called because some requests are asynchronous. See
mongo.Shell.prototype.evalStatements(). - The client <-> server error handling is not well-thought out or robust. It may be a good idea to reconsider the API for this, as well as the error handling code at both endpoints.
- The CORS code in
mongows/mws/views.py,standalone_server, and the actual client <-> server interaction has no automated tests and is no longer well tested by hand (see code architecture for more details on this interaction pattern).
The application has yet to be optimized for performance. Below are some potential improvements:
- Returning a subset of results to clients - Rather than returning all the
results to the client (which can be of any size), return a subset up to some
max size and have the client keep track of which items the user has or has
not seen
- Cursor caching - If returning a subset, the same query will need to be made multiple times to the server, starting at different locations. As such, it may be beneficial to cache the cursor used for the initial query for a short time (and just requery the database if the cursor is not available)
- Reduce request count by rewriting excessive JavaScript queries (i.e.
for (var i = 0; i < 100; i++) { db.c.insert({key: i}); }=>db.c.insert([{key: 0}, {key: 1}, ...]);