Skip to content
This repository has been archived by the owner on Sep 27, 2019. It is now read-only.

December 2017 Code Clean up

Jungmin Seo edited this page Dec 18, 2017 · 51 revisions

List the things that we want to do after the end of the semester during the code clean-up week:

  • Make everything enum class [Andy]
  • Remove hacky "# of threads + 3" [Rohit]
  • Network Layer clean-up [Tianyu, Tianyi]
  • Unify logging thread pool and worker thread pool [Tianyi]
  • Change the variable name catalog_ptr to storage_manager_ptr in Codegen [Tony] Fixed in Tony's branch
  • Introduce better Java testing for script/jdbc (maybe JUnit) [Tianyu]
  • sqrt, ceil, pow, exp, and many other mathematical functions have LLVM intrinsic implementations that may be faster than calling into C++ [Prashanth]
  • Remove redundant Transaction pointer argument for compiled plans; can be obtained from provided ExecutorContext argument [Prashanth]
  • Create a script for updating the file header copyright and apply it (can be done with formatter.py -h * once https://github.com/cmu-db/peloton/pull/941 is merged in) [Tony]
  • Redesign thread pool class and eliminate one of the two different classes in the code base now [Tianyu]
  • Figure out a way to eliminate singletons (dependency injection vs. manual passing of objects) [Tianyu]
  • Figure out what we want to do about settings/settings.cpp [Tianyu]
  • Remove this LOG_DEBUG line : https://github.com/cmu-db/peloton/blob/ffeb0819fc032d2444bd933563cf4ebbeb138ba1/test/executor/copy_test.cpp#L91 [Rohit]
  • Add support for Array [Aaron]
  • Remove unused runtime_keys vector from IndexScanDesc here [Anyone]
  • Make all public data members private [Andy]
  • Make sure that all important variables are clearly defined and explained.
  • Audit the FIXME and TODO to figure out what is real versus what can be removed. If it is real, then we should create an issue for it. Be as specific as possible in the write-up.
  • Make GetInfo be uniform.
  • Make sure that we don't call printf/cout anywhere. Check the source validator script to remove whitelist entries.
  • Audit test case output to reduce the number lines printed. NumericValue::MathTest is the biggest offender.
  • Audit the number of time that we copy the query result.
  • Check whether triggers are still working and whether they can invoke the new UDFs.
  • Make sure the default size of the LockFreeArray is not 1million. Check uses of this class. Decide whether to get rid of it and replace it with... some other concurrent data structure?
  • Don't create the stats table on first use. Create when the system boots up.
  • Make sure that all classes are in the proper namespace. We should add a script to automatically enforce this. #491 [Andy]
  • Audit the list of directories and see whether put some directories inside of each other. Here some possible things to move:
    • 'src/container' -> 'src/common/container'
    • 'src/util' -> 'src/common/util'
    • 'src/threadpool' -> 'src/common/threadpool'
    • 'src/statistics' -> 'src/storage/statistics'
  • Go through the issues and remove ones that are fixed, no longer an issue, or stupid. [Andy]
  • Add Doxygen-style comments to all functions. We should convert existing comments to the new format.
  • Specify where is each template being used in cuckoo_map.cpp. (https://github.com/cmu-db/peloton/blob/0f3ba1cb4f800580c699111b415d7fb05846e334/src/container/cuckoo_map.cpp#L91) [Tianyi]
  • Make the read-write set thread-safe? Can we just use the cuckoo hash map for this? [Tony]
  • Confirm and remove the unused ClearGarbage function in GCManager to avoid confusion. We should also add more comments/documents to garbage collection if possible. [Lin]
  • Change build system to create libpg_query in build folder (instead of thirdparty) (https://github.com/cmu-db/peloton/issues/809#issuecomment-348318817) [Marcel]
  • Complete the refactoring of the optimizer's infrastructure and add thorough documentation for the optimizer[Bowei]
Clone this wiki locally