Skip to content

Week 12: ZooKeeper Stats

Pre-release
Pre-release
Compare
Choose a tag to compare
@phil-lopreiato phil-lopreiato released this 21 Nov 04:59
· 11 commits to master since this release

New for This Week

  • Store some basic NF stats in ZooKeeper
    • Per NF, store the RX ring utilization percentage
    • Use ZOO_SEQUENCE + ZOO_EPHEMERAL to create stat nodes for active NFs. In the manger, we simply need to track a mapping of the NF instance ID to the path returned back from ZooKeeper.
    • See D18 and D19
    • Some ZooKeeper cleanup code, see D17

Research

I did some reading into how to fork NFs. If we just call fork from inside an NF, we won't be able to runt the new copy on a different core (since only the master process can run rte_eal_remote_launch). Or, we could have the manager start the new NF: could we load the code into shared memory somehow so the manager can access a function pointer somehow, or could we store the command line arguments and have the manager do a fork/exec kind of thing.

Also, I'm thinking I'm going to have to make a distributed queue using ZooKeeper to track who should start these new NF copies. If an instance is running a service that "needs help", it should be able to atomically "claim" it and fork the existing copy somehow. This shouldn't be all that hard to write, the forking problem is the more difficult one.