osrg / gobgp

BGP implemented in the Go Programming Language
https://osrg.github.io/gobgp/
Apache License 2.0
3.64k stars 696 forks source link

MRT table dump -- appending instead of overwriting? #2404

Open wmclendon opened 3 years ago

wmclendon commented 3 years ago

hello,

Just started playing around with gobgp, and i've installed version 2.25.0, and I have the below MRT config set on my system:

  [mrt-dump.config]
    dump-type = "table"
    file-name = "/mnt/table.dump"
    dump-interval = 300

is appending the expected behavior? my understanding (or perhaps just hope) was this would overwrite the file every dump-interval, however it seems to be appending, as the filesize is only going up quite a lot each interval. I only have one BGP peer sending me its global view at this time of ~845k ipv4 routes. And for example when I parse the dump file after 2 intervals, I get ~1.6M routes processed, rather than the ~845k I would expect.

should I be using a rotation-interval instead? all of the examples show that only with updates, rather than the whole table. My goal is to export the table dump periodically to then parse that data with some external systems.

Thanks,

Will

wmclendon commented 3 years ago

to add to this a bit, after letting gobgp run for many hours with a dump-interval of 1800s, the filesize is now up to 2.4 GB:

ls -la /mnt/
-rw-r--r--  1 gobgpd gobgpd 2413134439 Mar 16 13:16 table.dump

additional observations -- rotation-interval so far as I can tell had no change of behavior. Also if I started gobgp, then deleted the table.dump MRT file, it would never be created again, until I restarted gobgp. since this is not a critical system or anything, i've either just deleted the file and restarted gobgp, or also used the truncate command to empty it, and gobgp was then able to still write to it without a restart.

Thanks.