gda-score / code

Tools for generating General Data Anonymity Scores (www.gda-score.org)
MIT License
7 stars 1 forks source link

clean up reporting of remaining budget #65

Closed yoid2000 closed 3 years ago

yoid2000 commented 3 years ago

@reinhardmunz

We (Franzi Boenisch mostly) have implemented a gda-score interface to the uber DP server.

It is working alright, but there is one funky thing that needs to be cleaned up. Namely, both the gda-score module gdaAttack.py and the uber server simpleServer.py are keeping separate (but identical) budgets. The reason for this, if I understand it right, is that simpleServer.py does not report the remaining budget. Note that gdaAttack.py does report the remaining budget to the calling code. (@fraboeni please correct me if I'm wrong)

This task is to make it so that simpleServer.py does report the remaining budget to gdaAttack.py, and gdaAttack.py in turn reports that remaining budget to the calling code. gdaAttack.py therefore no longer needs to keep track of a budget.

Note that there is a test routine for using the gdaAttack.py uber interface under attacks/examples/testUberSinglingOut.py

reinhardmunz commented 3 years ago

Hi Paul, Hi Franziska,

simpleServer.py returns the "Remaining Budget" now. Am I supposed to update gdaAttack? If so, on which branch am I supposed to change gdaAttack.py? gdaAttack.py on master, gdaAttack.py on uber_interface, or gdaAttack.py on uber_interface_v2?

Kind regards, Reinhard

yoid2000 commented 3 years ago

Go ahead and make a new branch. Master is up to date.

PF

On Wed, Nov 4, 2020, 00:33 Reinhard Munz notifications@github.com wrote:

Hi Paul, Hi Franziska,

simpleServer.py returns the "Remaining Budget" now. Am I supposed to update gdaAttack? If so, on which branch am I supposed to change gdaAttack.py? gdaAttack.py on master http:///gda-score/code/tree/master/gdascore/gdaAttack.py, gdaAttack.py on uber_interface http:///gda-score/code/tree/uber_interface/gdascore/gdaAttack.py, or gdaAttack.py on uber_interface_v2 http:///gda-score/code/tree/uber_interface_v2/gdascore/gdaAttack.py?

Kind regards, Reinhard

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gda-score/code/issues/65#issuecomment-721429507, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQP5KIUBGETZV32LTJNJTDSOCHMTANCNFSM4TI3BXYA .

reinhardmunz commented 3 years ago

There are some minor differences between master and uber_interface_v2. I created my new no_budget_keeping branch from master. Please check it out. The testUberSinglingOut works with my modifications. I completely removed the budget variable from gdaAttack, only the parameter is still required to set the initial budget. The remaining budget is passed through from simpleServer. In case of the budget exceeded error, I removed the special handling. The error is now handled the same as any other error. The details about the still remaining budget and the budget required by the query are added by simpleServer into the error message.

yoid2000 commented 3 years ago

So far as I understand, uber_interface_v2 was merged into master a couple days ago and then deleted. So far as I know we don't care about uber_interface_v2. Do I misunderstand?

Can I test your changes now? (In other words, is the latest simpleServer running on db001?)

reinhardmunz commented 3 years ago

Sorry, I didn't check why there is changes. I checked now and what you say makes all sense.

Please, go ahead and test my changes. The latest version of simpleServer is running. There should be no problems.

yoid2000 commented 3 years ago

could you update the package gda-score-code-test with your changes? That will make it easier for me to test...

yoid2000 commented 3 years ago

could you update the package gda-score-code-test with your changes? That will make it easier for me to test...

never mind. I can do this myself.

yoid2000 commented 3 years ago

@reinhardmunz

Ok, tested it. As it so happens, the error message now returned (passed through) on exceeding budget is rather lengthy:

'error': "ValueError('Session 382140058: Budget Exceeded - Cannot process "
             "query. Remaining budget is 2.0, query requires 3.0.',)",

and of course several values in the string can change. This is not a serious problem, as one can look for the sub-string "Budget Exceeded" if one wants to really know that that is what happened (versus, for instance, some SQL error).

I guess I'm fine with it, if you are.

yoid2000 commented 3 years ago

I pushed the package version increment to github and updated the package at pypi.

You can merge into master.

yoid2000 commented 3 years ago

never mind. I merged it into master and deleted your branch.