Groups and several backends in elliptics.

74 views
Skip to first unread message

Anatoly Popov

unread,
Dec 4, 2015, 12:11:04 PM12/4/15
to reverbrain
Hi.

Can I run one node of elliptics-server per machine and have two or more backends (one per device, e.g.) in it?
Can I assign those backends to one device for development environment?
Can I assign them to different groups?

And final question, maybe a stupid one: in cluster backends with equal "group" are "replicas" of each other?

Thank you.

PS: I ditched 15.04 ubuntu and I am using now 14.04 with 4.1.13 kernel.

Evgeniy Polyakov

unread,
Dec 5, 2015, 3:59:17 PM12/5/15
to Anatoly Popov, reverbrain
Hi

04.12.2015, 20:11, "Anatoly Popov" <anatol...@gmail.com>:
> Can I run one node of elliptics-server per machine and have two or more backends (one per device, e.g.) in it?

Yes, you can.
You have to put multiple structures into 'backends' section.

> Can I assign those backends to one device for development environment?

Elliptics backends work with directories, you can mount different devices into different directories and use them in config

> Can I assign them to different groups?

Yes, you can.
Elliptics config is described in great details at http://doc.reverbrain.com/elliptics:configuration

> And final question, maybe a stupid one: in cluster backends with equal "group" are "replicas" of each other?

Now, backends with the same group form a single DHT ring and read/write load will be spread among those backends.
It is somewhat similar to raid0.

It is client who decides how to write data, in particular, how many replicas it writes and which groups are used.

For example, backrunner http proxy (http://doc.reverbrain.com/backrunner:backrunner) uses notion of bucket
which contains list of groups where every write is copied, i.e. bucket name is a synonym for replica set.

dnet_ioclient tool uses '-g 1:2:3' option to show that given write should be placed into groups 1, 2 and 3.
Please note, that recovery also uses what client has provided, neither part of elliptics stories where its replicas are located.
That's why you have to be consistent with your replica sets, i.e. if you've started to use groups 1, 2 and 3
it should be use in the future too. You can add or remove groups from this set, but you can not use
1:2 for one key and 2:3 for others, otherwise recovery will copy data to all specified groups.

Anatoly Popov

unread,
Dec 6, 2015, 5:04:31 AM12/6/15
to reverbrain, anatol...@gmail.com, z...@ioremap.net
> Now, backends with the same group form a single DHT ring and read/write load will be spread among those backends. It is somewhat similar to raid0. It is client who decides how to write data, in particular, how many replicas it writes and which groups are used. For example, backrunner http proxy (http://doc.reverbrain.com/backrunner:backrunner) uses notion of bucket which contains list of groups where every write is copied, i.e. bucket name is a synonym for replica set.

So, If I understand correctly, backends in one group should close to each other, e.g. two drives in one server, or in one datacenter at maximum, and group sets (buckets in backrunner) should be used for cross-datacenter replication?

Thank you very much for explanation.

Anatoly.

Evgeniy Polyakov

unread,
Dec 7, 2015, 7:12:17 PM12/7/15
to Anatoly Popov, reverbrain
Hi

06.12.2015, 13:04, "Anatoly Popov" <anatol...@gmail.com>:
> So, If I understand correctly, backends in one group should close to each other, e.g. two drives in one server, or in one datacenter at maximum, and group sets (buckets in backrunner) should be used for cross-datacenter replication?

It is not required to put replicas into different datacenters, but usually you want to put them into different locations.
These can be different servers or racks or datacenters. But nothing prevents from setting up all replicas on the same
disk, just in different backends which live in different directories.

The smaller the backend size, the faster it takes to recover data, but the more burden is placed on admin to setup the environment.

Anatoly Popov

unread,
Mar 21, 2016, 11:05:11 AM3/21/16
to reverbrain, anatol...@gmail.com, z...@ioremap.net
Hi.

Should be backend_id be unique in group?

Regards,
Anatoly Popov.

Evgeniy Polyakov

unread,
Mar 21, 2016, 11:08:19 AM3/21/16
to Anatoly Popov, reverbrain
Hi Anatoly

21.03.2016, 18:05, "Anatoly Popov" <anatol...@gmail.com>:
> Should be backend_id be unique in group?

backend_id is a unique identifier of the backend in given server, different servers may have the same backend_ids
Reply all
Reply to author
Forward
0 new messages