Я пытаюсь клонировать объекты с помощью librados. Как я вижу, в более старых версиях librados-dev есть функция clone_range, которая мне действительно нужна. Но я считаю, что он был удален в версии 12. Я нашел и информацию о нем:
Вторник, 23 июня 2015 года, Самуэль Только что написал: ObjectWriteOperations в настоящее время позволяет вам выполнять clone_range из другого объекта с помощью тот же объектный локатор. Годы a go, rgw использовала это как часть многостраничной загрузки. Сегодня реализация значительно усложняет OSD, и, похоже, в нем не осталось пользователей. Есть ли кто-нибудь, кому было бы грустно, если бы он был удален из интерфейса librados?
Я не пропущу его.
(я очень скучаю, кстати) * ObjectWriteOperations можно найти в librados.hpp в некоторых версиях, но когда я использую версию 14 или более позднюю, есть только librados.h. (Даже в hpp не нашел кстати ничего близкого к clone_range) Файла hpp нет. Очевидно, что функции сильно меняются в зависимости от версии, и это заставляет меня думать, что даже если я найду решение в текущей версии (которое я не могу в данный момент), оно долго не протянет.
Другое возможное решение, которое я видел, - это классы объектов в OSD. Но я не знаю, как их использовать или отлаживать, когда мне нужно.
После всего этого, кто-нибудь знает какую-либо эквивалентную функцию или способ clone_range? Как комбинировать предметы? (Мне нужно объединить много маленьких объектов в один. Вот почему мне нужна функция clone_range.) Также я не хочу вызывать ненужный сетевой трафик c, поэтому это должно быть сделано в ceph. Я не хочу получать данные на свои серверы и писать обратно в ceph.