Skip to content

Planning

Quinton Hoole edited this page Apr 19, 2019 · 1 revision

Table of Content

Objectives

DCAP value proposition, objectives, deliverables, and success criteria can be found on DCAP wiki page.

We plan to announce open source DCAP in a key note speech at KubeCon 2018 in China. Our objective is to make sure DCAP is ready to open source by Nov. 15th 2018.

Schedules

Design Docs

Old Stuff

Phase Date Objective Tasks
Charter 01/04/2018
  • Why invest in DCAP?
  • What are the competative advantages?
  • Why customers choose DCAP?
Prepare charter PPTs
PDCP 03/30/2018
  • Project Scope Defined
  • Project Deliverables Defined
  • Design Completed
  • Set up code repository and CI/CD process
  • Finish the overall design of DCAP Sapphire project
  • Kernel API Design
  • Finish DM API Design
  • Finish Java annotation Design
  • Modify Sapphire compiler to accommodate API changes and annotation changes
  • Compose 15+ DMs
  • Write/Port three medium size mobile application onto DCAP to demonstrate the power of DCAP
  • Finalize the design to solve NAT issue
  • Finalize the design to replace RMI with gPRC
  • Identify all potential risk areas
  • Come up proposals to mitigate each risk
TDCP 08/30/2018 Deliver DCAP
  • Compose 26+ DMs
  • Develop a complicated application with DCAP
  • Deliver a toolset DCAP application compilation and packaging
  • Replace OMS with a high availability implementation
  • Replace Java Registry with a high availability implementation
  • Replace RMI with gRPC
  • Support code offloading between any two endpoints, e.g. between devices, between servers, or between devices and servers.
  • All DCAP deliveries pass acceptance tests
Future TBD (not in the scope of this project) Enhance DCAP
  • Support multiple languages
  • Develop collaboration tools to ficilitate cross team development with DCAP
  • Explore the integration with related technologies, e.g. Istio, Kubernetes, etc.

Old Tasks

Priorities are rated from 1 to 10 where 1 is the top priority.

Item Priority (1-10)
Good developer getting started experience
  • Sleek start guide
  • Easy to add DCAP dependency
  • Easy to use DM (annotation driven or policy driven)
  • Easy integration with Kubernetes
[2]
Develop 3+ highly compelling DM
  • Consensus
  • Master Slave
  • Leader Election
  • Distributed Transaction
  • Code Offloading
[3]
Support multiple languages
  • Java
  • Python
  • Go
  • C/C++
[3]
Modernize DCAP structure
  • Allow SO to use multiple DMs
  • Easy to create new DM from existing DMs
[4]
Chose a good solution for durability in DCAP [4]

Old Schedule

Phase Date Objective Tasks
Charter 01/04/2018
  • Why invest in DCAP?
  • What are the competative advantages?
  • Why customers choose DCAP?
Prepare charter PPTs
PDCP 03/30/2018 Define DCAP
  • Project Scope Defined
  • Project Deliverables Defined
  • Write/Port three medium size mobile application onto DCAP to demonstrate the power of DCAP
TDCP 08/30/2018 Deliver DCAP
  • 3+ compelling DMs
  • Sleek user start guide
  • Modern internal design and clean code base
  • Support multiple languages
Future TBD Enhance DCAP
  • Integration with Tapir based storage solution

Old Reports

Report on 05/10 (from 04/30 to 05/10)

Finished the following tasks in the last two weeks

  • Finished Master/Slave Demo. Made a screen recording for the demo.
  • Finished the development of Distributed Transaction DM. We are able to demo now. Will make a screen recording.
  • Finished the development of Census DM. Working on Demo.
  • Added simple integration with Kubernetes (Contributed by Vinay)
    • Containerize Kernel Server and OMS
    • Scripts to generate Kubernetes resources
  • Worked out a design to support the chaining of multiple DMs
  • Meet up with UW Sapphire team

Report on 04/30

  1. 演示应用开发:完成。开发了围棋、车牌识别、及人脸识别应用
  2. 解决由NAT引起的设备间通讯问题:完成。验证了利用openvpn解决设备间P2P通讯的可能性。
  3. 开发4个重量级DM:70%完成。
    • Master/Slave DM完成。可以演示
    • Consensus DM开发基本完成。正在调试
    • Distributed TransactionDM开发基本完成。正在调试
    • 智能Code OffloadingDM。还未启动
  4. DCAP-Sapphire内核改造: 初级阶段。正在收集需求。
    • 提供对象生命周期管理、资源管理能力
    • 提供对象位置跟踪及查询能力
    • 支持DM组合。通过组合DM提供新能力
    • Others
  5. 开发编译、打包工具、书写文档,提升开发者体验:初级阶段
  6. 多语言支持:设计阶段

Old Sprints

Seattle Sprint 1

(01/08 - 01/26)

  • Clarify DCAP position, value, project deliverables, and success criteria
  • Identify three mobile apps
    • Details can be found at here
  • Port three mobile apps to DCAP
    • OmniNotes
    • Movie Guide - in progress
    • Sound Recorder
  • Develop more DMs
    • ExplicitCaching
    • LeaseCaching
    • WriteThroughCaching
    • SerializableRPC
    • ExplicitCheckpoint
    • PeriodicalCheckpoint
    • LockingTransactions
    • DurableSerializableRPC
    • DurableTransactions
    • OptimisticTransactions
  • Set up an environment to test NAT issue - Needs a Doc
  • Write up a design to solve NAT issue - Design Doc
  • Investigate DCAP multi-language support - Needs a link to the Doc
  • Finish code offload DM POC ** The team decided to work on mobile app porting first. This task is suspended. **
    • Finish the overall design. Define modules and interaction between modules.
    • Finalize cost model. Be clear on objective function and constraints. Be care on where and how to get the inputs for objective function and constraints.
    • Develop a mechanism to collect inputs that will be fed into cost model, e.g. method call graph, latency data, energy consumption data, etc.
    • Be able to execute the linear cost model

Seattle Sprint 2

(01/29 - 02/16)

Demo App
  • Goal:
    • Finish License Plate App (90% done)
    • Finish Go Board Game App (In progress)
  • Status Update on 02/16
    • License Plate App Almost Done
    • Go Board Game App in Progress. Go engine with neural network support crashes on Android phone. Still in the process of troubleshooting. Promising.
  • Devs: Sungwook, Hong
High Availability DM
  • Goal:
    • Finish the Consensus DM
    • Finish the MasterSlave DM
  • Status Update on 02/16
    • Consensus DM almost done
    • MasterSlave DM 50% done
  • Devs: Quinton, Terry, Indian Team
gRPC Support
  • Goal:
    • Output a problem statement to describe the challenges
    • Make gRPC works from end to end with Java serializer
  • Status Update on 02/16
    • Kaveh had a POC implementation for gRPC with Java serializer. Kaveh will do a performance comparison against RMI and think about how to support multiple languages.
    • Quinton had a POC implementation for pure gRPC and protobuf. Needs to figure out how to generate protobuf messages automatically.
  • Devs: Kaveh
LLVM Multi-language Support
  • Goal: LLVM investigation
  • Status Update on 02/16
    • Did initial investigation on LLVM.
    • Engaged compiler team
  • Devs: Michael, Indian team
Tapir Deep Dive
  • Goal:
    • Read Tapir and TLA+ thoroughly. List all pending questions on wiki.
    • Talk to Irene to have all questions answered
  • Status Update on 02/16
    • Finished paper reading and TLA reading. Prepared a list of questions.
  • Devs: Quinton, Terry, Michael, Olesya

Seattle Sprint 3

(02/19 - 03/09)

Vacations
  • Sungwook will be out from 02/19 to 02/23
  • Terry will be out from 02/20 to 02/28. Terry will be on business trip in China from 03/01 to 03/09.
Demo App
  • Goal:
    • Demo License Plate App on 03/02
    • Demo Go Board Game App on 03/02
  • Devs: Sungwook, Hong
High Availability DM
  • Goal:
    • Finish the Consensus DM
    • Finish the MasterSlave DM
  • Devs: Quinton, Terry
gRPC Support
  • Goal:
    • Finish performance evaluation
    • Investigate how to generate protobuf messages automatically
  • Devs: Kaveh
LLVM Multi-language Support
  • Goal: Demo LLVM on 03/09
  • Devs: Michael, Indian team
Tapir Deep Dive
  • Goal:
    • Generate Tapir benchmarks
    • Address pending Tapir questions
  • Devs: Quinton, Terry, Michael, Olesya

Seattle Sprint 5

(04/02 - 04/30)

  • Goal:
    • Demo Consensus DM (60% done on 04/16) RISK
    • Demo Master/Slave DM (80% done on 04/16)
      • Verified the basic fail-over functionality on Hanks TODO
      • Failure recovery cannot be demoed because we are missing Object instance management feature.
    • Finish Tapir investigation. (90% done on 04/16)
    • Making progress on Distributed Transaction DM (40% done)
    • Complete Multi-Langauage Design (In Progress)
    • Making progress on User Experience Improvement (In Progress)