I want to add a new tab to PageView. This tab should show a custom metadata schema I create. Also, should persist the data on save of page. Can anyone give some pointers?
There is no direct way for you to store additional custom metadata of a Page, since a Page can only have a single metadata Schema and whatever metadata is set in there will be persisted in the CMS database.
Maybe I'm saying "no" too soon, what you could consider is using Application Data for storing your additional metadata, that is possible and would be doable in a UI extension.
But my main question would be, why do you need additional metadata on a Page, can't you just use a metadata Schema on the Page and have the content added under the General tab of the Page view? Why make something complex (UI extension, adding additional tab, storing in app data), if it is already available to you...
If your requirements are driven because you have too many metadata fields, then I would still leave them in the single metadata Schema and attach that to your Page (then you don;t need to worry about storage). What you can consider is adding a UI extension which will show the metadata in a separate tab, but I would actually look at the data and see if it can be structured itself.
You mention you have 20+ fields, are all of those unique to the Page, or is there data in there which you set for each Page the same? In that case, you could extract those parts into a separate Schema (make it a Component Schema) and replace that bunch of fields with a single Component Link.