FAQ — frequently asked questions

How is the launch of new machines scaled?

When we launch new tasks, how is the load distributed across the cluster?
the search for nodes for execution? . Is there a task transfer? statistics are taken into account .. what? is it collected and used by you? to select the machine it is used, for example?

To select a machine, the following indicators are used:

* number of tasks in the outskirts,
* Number of active tasks,
* number of sleeping tasks,
* free ram (rss), free jvm heap

The statistics you see in the «CLI» for balancing are not used


Do you have better logging than competitors?

There are no restrictions (now) on the size, but also to block the cluster by hammering aggressively with logs. backpressure all the way data movement.

It is much easier (aggregating or dividing logs through a couple of lines in the launch configuration)

Inside the fragments, you can just do nothing

Partial order guarantee with parallel execution.

The language of the fragment does not matter, logging from the user’s point of view works the same.


how is the fragment restarted?

>  only on the basis of conflicts and only in «transactional launches»? how do I configure it to happen?

You do not need to work on your own to have a restart.

AcapellaVM (CPVM) in the «acapella preset» can detect an access conflict (control flow error caused by excessive concurrency of execution)
and sometimes with the help of restart, fix it unnoticed by the user.

Restarting is a way to fix a detected error. You can not fix it with restarting under all conditions.

Restart of the fragment will occur only if (conflict or (if the failover and the applicationerver are not working)) And the allowRestart flag is used in the parameters of the transaction start)


What if snapshots are covered (overal fragments)?

> The user upload a snapshot with two fragments.
> One of the fragments completely match with some existing fragment in the CodeBase (for simplicity, let’s say it’s the same for both the code and the metadata).

The current implementation of snapshots will not write a new fragment to CodeBase, but in the new snapshot it will refer to the existing fragment.
The fragment is the same, but it participates in different snapshots.

Interpret the same fragments is also important because cpvm collects statistics for analyzing LPF of projects, therefore it is required, if possible.
Do not refill what’s already in CodeBase


in the file ~ / .netrc what kind of hash is this?

This is a token, suitable for curl queries in the API.

From curl it is possible to work, substituting the parameter -u «USER: <TOKEN>» — <TOKEN> can be taken from ~ / .netrc after authorization in the launcher

Also in curl there is a parameter -netrc