What's the differences between those restore points? I guess
Snapshot is fast restore, because only copy already existing files to destination. But it takes compute and storage resources the generate every 6 hours a snapshot and it will be stored only for 3 days.
A snapshot is a full backup of your data captured at a specific interval. Restoring from a stored snapshot is the fastest option because minimal manipulation needs to be done by Ops Manager in order to provide the restore files. The
snapshotIntervalHours (6 hours in your config) and
snapshotRetentionDays (3 days in your config) are meant to provide more frequent restore points for recent data as compared to the archived daily/weekly/monthly snapshots. With your current configuration, restores would be possible to: stored snapshots taken on 6 hour intervals in the last 3 days, a point in time within the last 24 hours, or a daily/weekly/monthly snapshot.
I don't understand the difference between
Point In Time and
Oplog Timestamp. When to choose what (advantages and disadvantages)?
These are both options for custom point-in-time snapshots, which can be time and resource intensive for Ops Manager to process. The backend processing involves restoring the nearest (older) stored snapshot and then applying the oplog changes up to the specified point in time (as marked by a date/time in seconds or an oplog timestamp). Both are limited by the available oplog history as specified in your
pointInTimeWindowHours configuration (i.e. 24 hours).
Point In Time restore point creates a custom snapshot up to the selected date and time; the
Oplog Timestamp is a more precise custom snapshot which presumes you know the exact oplog timestamp you want to restore to (for example, up to and including the entry preceding an accidental collection drop).
Any improvments for generic DBaaS provider, which doesn't know individual customers? Any issues?
It depends what level of backup/restore granularity you want to offer your customers. Increasing snapshot frequency or retention will consume more server resources, but perhaps provide more comfort for your customers. Conversely, you could reduce the snapshot frequency or retention to save on resources.
As a DBaaS provider I expect you would work standard backup & licensing costs into your service model and perhaps allow customers to vary backup options based on subscription plans or premiums (for example, as MongoDB Cloud Manager does).
Note: MongoDB Ops Manager is not currently intended to be the base for a DBaaS offering and should only be used in production as part of a MongoDB Enterprise Advanced subscription (which includes commercial support for questions such as configuration, capacity planning, tuning, ...).