On 26.2.2016 15:37, Petr Spacek wrote:
> On 25.2.2016 16:46, Simo Sorce wrote:
>> On Thu, 2016-02-25 at 15:54 +0100, Petr Spacek wrote:
>>> On 25.2.2016 15:28, Simo Sorce wrote:
>>>> On Thu, 2016-02-25 at 14:45 +0100, Petr Spacek wrote:
>>>>> Variant C
>>>>> ---------
>>>>> An alternative is to be lazy and dumb. Maybe it would be enough for
>>>>> the first
>>>>> round ...
>>>>>
>>>>> We would retain
>>>>> [first step - no change from variant A]
>>>>> * create locations
>>>>> * assign 'main' (aka 'primary' aka 'home') servers to locations
>>>>> ++ specify weights for the 'main' servers in given location, i.e.
>>>>> manually
>>>>> input (server, weight) tuples
>>>>>
>>>>> Then, backups would be auto-generated set of all remaining servers
>>>>> from all
>>>>> other locations.
>>>>>
>>>>> Additional storage complexity: 0
>>>>>
>>>>> This covers the scenario "always prefer local servers and use remote
>>>>> only as
>>>>> fallback" easily. It does not cover any other scenario.
>>>>>
>>>>> This might be sufficient for the first run and would allow us to
>>>>> gather some
>>>>> feedback from the field.
>>>>>
>>>>> Now I'm inclined to this variant :-)
>>>>
>>>> To be honest, this is all I always had in mind, for the first step.
>>>>
>>>> To recap:
>>>> - define a location with the list of servers (perhaps location is a
>>>> property of server objects so you can have only one location per server,
>>>> and if you remove the server it is automatically removed from the
>>>> location w/o additional work or referential integrity necessary), if
>>>> weight is not defined (default) then they all have the same weight.
>>>
>>> Agreed.
>>>
>>>
>>>> - Allow to specify backup locations in the location object, priorities
>>>> are calculated automatically and all backup locations have same weight.
>>>
>>> Hmm, weights have to be inherited form the original location in all cases. 
>>> Did
>>> you mean that all backup locations have the same *priority*?
>>
>> Yes, sorry.
>>
>>> Anyway, explicit configuration of backup locations is introducing API and
>>> schema for variant A and that is what I'm questioning above. It is hard to
>>> make it extensible so we do not have headache in future when somebody 
>>> decides
>>> that more flexibility is needed OR that link-based approach is better.
>>
>> I think no matter we do we'll need to allow admins to override backup
>> locations, in future if we can calculate them automatically admins will
>> simply not set any backup location explicitly (or set some special value
>> like "autogenerate" and the system will do it for them.
>>
>> Forcing admins to mentally calculate weights to force the system to
>> autogenerate the configuration they want would be a bad experience, I
>> personally would find it very annoying.
>>
>>> In other words, for doing what you propose above we would have to design
>>> complete schema and API for variant A anyway to make sure we do not lock
>>> ourselves, so we are not getting any saving by doing so.
>>
>> A seemed much more complicated to me, as you wanted to define a ful
>> matrix for weights of servers when they are served as backups and all
>> that.
>>
>>>> - Define a *default* location, which is the backup for any other
>>>> location but always with lower priority to any other explicitly defined
>>>> backup locations.
>>>
>>> I would rather *always* use the default location as backup for all other
>>> locations. It does not require any API or schema (as it equals to "all
>>> servers" except "servers in this location" which can be easily calculated 
>>> on fly).
>>
>> We can start with this, but it works well only in a stellar topology
>> where you have a central location all other location connect to.
>> As soon as you have a super-stellar topology where you have hub location
>> to which regional locations connect to, then this is wasteful.
>>
>>> This can be later on extended in whatever direction we want without any
>>> upgrade/migration problem.
>>>
>>> More importantly, all the schema and API will be common for all other 
>>> variants
>>> anyway so we can start doing so and see how much time is left when it is 
>>> done.
>>
>> I am ok with this for the first step.
>> After all location is mostly about the "normal" case where clients want
>> to reach the local servers, the backup part is only an additional
>> feature we can keep simple for now. It's a degraded mode of operation
>> anyway so it is probably ok to have just one default backup location as
>> a starting point.
> 
> Okay, now we are in agreement. I will think about minimal schema and API over
> the weekend.

Well, it took longer than one weekend.

There was couple of changes in the design document:
* ‎Feature Management: CLI proposal
* ‎Feature Management: web UI - idea with topology graph replaced original
complicated table
* Feature Management: described necessary configuration outside of IPA DNS
* Version 1 parts which were moved into separate document:
V4/DNS_Location_Mechanism_with_per_client_override
* ‎Assumptions: removed misleading reference to DHCP, clarified role of DNS 
views
* Assumptions: removed misleading mention of 'different networks' and added
summary explaining how Location is defined
* Implementation: high-level outline added

Current version:
http://www.freeipa.org/page/V4/DNS_Location_Mechanism

Full diff:
http://www.freeipa.org/index.php?title=V4%2FDNS_Location_Mechanism&diff=12603&oldid=12514

Practical usage is described in section How to test:
http://www.freeipa.org/page/V4/DNS_Location_Mechanism#How_to_Test


I will think about LDAP schema after we agree on CLI.

Petr^2 Spacek


> Petr^2 Spacek
> 
> 
>>>> - Weights for backup location servers are the same as the weight defined
>>>> within the backup location itself, so no additional weights are defined
>>>> for backups.
>>>
>>> Yes, that was somehow implied in the variant A. Sorry for not mentioning it.
>>> Weight is always relative number for servers inside one location.
>>
>> Ok it looked a lot more complex from your description.
>>
>> Simo.
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek
-- 
Petr^2 Spacek

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to