2012-05-02 5 views
2

Я хотел бы передать некоторые файлы в и из кассандры, так как мы уже используем его, а не создаем полную распределенную файловую систему. Есть ли какие-либо асинхронные помещает atyanax или hector, что я предоставляю обратный вызов, когда он завершен, поэтому я могу избежать 1 мс задержек сети для 1000 вызовов при записи 1000 записей (разделение между несколькими строками и столбцами, на несколько серверов параллельно, а затем все ответы/обратные вызовы возвращаются при потоковой передаче). Поддерживает ли Гектор или астянакс это?любой способ сделать асинхронный put с astyanax для cassandra или hector?

Похоже, что astyanax поддерживает обратный вызов запроса, поэтому, я думаю, я могу получить с первичными ключами, чтобы передать файл обратно с помощью astyanax?

спасибо, Дин

ответ

1

Cassandra фактически не поддерживает потоковую передачу через бережливость API. Кроме того, разбиение файла на одну мутационную партию, которая распространяет данные по нескольким строкам и столбцам, может быть очень опасной. Это может привести к удалению кучи на кассандре, или вы также можете столкнуться с лимитом буфера записи 1 МБ, который при определенных ошибках может привести к тому, что ваше бережное соединение будет вешать бесконечно (хотя, я думаю, это может быть исправлено в последней версии cassandra) ,

Новый рецепт хранилища предметов в Astyanax (https://github.com/Netflix/astyanax/wiki/Chunked-Object-Store) основан на нашем опыте в Netflix с хранением больших объектов в Cassandra и предоставляет простой API который обрабатывает все фрагменты и распараллеливание для вас. Он все равно может сделать 1000 звонков в cassandra (в зависимости от размера вашего файла и размера блока), но также обрабатывает все повторы и распараллеливание для вас. То же самое касается чтения файлов. API будет считывать куски и собирать их в виде OutputStream.

+0

не astyanax пройти через арифметику айпи, и я слышал, что в эти дни поддерживаются асинхронные опоры (это все еще запрос/ответ, но ответ может с надеждой вернуться через пул ничей канала, отдельный от моего). Кроме того, я посмотрел на channing astyanax и был смущен настройкой потоков X, потому что, если он асинхронный, вы можете писать, писать, писать без чтения и нуждаться только в одном потоке, правильно, неправильно? Я имею в виду, в моем случае, я просто передаю HTTP-загрузку через astyanax, так почему бы мне использовать более одного потока для каждой операции загрузки? –

 Смежные вопросы

  • Нет связанных вопросов^_^