Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* basic implementation * need to pass in the port and add host * Caching + removing extensions * Dump * dump * created scripts * no changes. * working on scripts * Add deploy and run scripts. Add README description. * added the command line parsing * work in progress * fixed command line args parsing * work in progress * DNS stuff * Dump TODO * SCRIPTS ARE RUNNING! * Added grading beacon endpoint * edited the echo messages * added heap library for reference * implemented the deploy caching stage * Lay the groundwork for CDN cache * Load deploy-time cache into RAM * Handle cache miss (need to fetch from origin) * Implement disk cache hit and promotion logic * Dump * Enforce memory limits * New caching strategy Treat memory and disk as same. Promotion only attempted for adding an un-cached article that was grabbed from the origin. No promotion between disk and memory. * Refactor logic for attempting to evict and add to disk and memory into their own functions * Rename BUFFER_OFFSET_AUTO to APPEND * Wire up the cache to the HTTP server, respond with 404 for media requests * RepliCache.get now returns boolean along with data to indicate if the key was found. Also fixed a bug where uncompressed article was cached after fetching from origin * added replicas and cache.py to deploy script * saving client's IP addresses in a global set * Make ON_DISK=-1 and NOT_CACHED=-2. Makes more semantic sense. * Refactor Resolver to include replicas and client ips. * Add server locations * changed scope of replicas and client_ips * Serve a random replica from dns server. * fixed bash list * implemented measure function that returns a dictionary containing rtt and destination IP address * GeoIP CSV hacking DUMP * Deploy script now concurrently builds cache on all replicas * Implement haversine * database implementation * db location implementation done * Add /measure endpoint * fixed geo.py bug * Process each request on a separate thread + Run measurements on a separate thread * Implement best replica map. * Add threads to dns get measurements functionality. * Testing measurements in dns server. * added db to deploy script for dns server * Testing measure endpoint functionality. * merge * Change REPLICAS to be a dict * merge * latest updates * edit run script. * fixing bug in run script * edit run script. * edit stop script. * Edit stop script. * dump * downloaded cache and modified .gitignore * latest commit * Fix routing table key bug in dnsserver * Store respective log files on individual servers * Ridiculously fast full-scan script * Add a few scripts for housekeeping * Add /debug_cache endpoint to HTTP server to quickly debug the cache * Be smart with URL encodings First check if the path is already URL-encoded. If not, encode it before checking the cache. If yes, nothing to do. * Fix the scamper "avg" thing * Delete unnecessary vendor stuff * Return the right A record for DNS * added pydocs and comments * modified return type of get_local_ip * Sanity check test script * Add stage latency and pause info to sanity_check * Bump time to sleep to 20 * updates * Exclude maxsize RTT from map. Co-authored-by: Rohit Awate <[email protected]> Co-authored-by: Diego <[email protected]>
- Loading branch information