Licensing Licensing headers License choice Documentation Comment review Ensure that comments are accurate and clear Spellcheck comments README What is libbasket? How do I use libbasket? INSTALL How do I compile libbasket? Dependencies General procedure (eg. `cmake .`, `make`, `make install`) Tests CMakeLists integration One test per structure Fix test cases cpplint Make sure source code fits Google C++ style by running cpplint.py on it rdma MercuryRPC vs RPCLib NVM Journal first Branch off 0.0.1 and 0.0.2 Master stable branch 0.0.1 Client and server on different nodes LocalPut to put to local shared memory rpc put maps to LocalPut instead of regular put methods have notion of local and remote separate node check Do changes and run on Ares cluster 0.0.2 Changes in network fabric mercuryRPC 100K local, 0.6K remote too slow mercuryRPC works with instances, objects (C-style) uint8 enum to choose mercuryRPC / libRPC Template rpc_lib.h rpc interface template with virtual methods (rpc.h) As in /home/kbateman/School/Spring-19/cs491/hfetch/src/core/interfaces/io_client.h librpc.h and mercuryrpc.h As in /home/kbateman/School/Spring-19/cs491/hfetch/src/core/hdf5_impl/hdf5_client.h Factory rpc_factory.h (class name all caps RPC, camelcase) As in /home/kbateman/School/Spring-19/cs491/hfetch/src/core/io_client_factory.h Create all switches, then install mercuryrpc, create demo C program Ensure demo works Create class/function and bind to mercuryrpc ugly way as in hstream demo Evaluate Generate callback functions Two types, synchronous and asynchronous synchronous for now Call map, ship function to RPC call, execute main map and callback function callback function should be called on server, registered with RPC Evaluate Profiling Hooks Autotracer Partial update on unordered_map Make all methods asynchronous (call and wait) Persistence NVM-enabled data structures Make method call names and variable names consistent (eg. in rpc_lib.cpp some calls have improper CamelCase)