реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> FPGA + NOSQL
Jumboframe
сообщение Mar 5 2012, 09:47
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602



Добрый день, коллеги

Помогите, пожалуйста, внести ясность в вопрос, хотя бы на концептуальном уровне - насколько это реально и вобще целесообразно.
Итак, имеется сеть с нескольками тысяч устройств, все эти устройства, постоянно обращаются по протоколу TCP/IP к комплексу серверов БД с простыми nosql запросами типа "хеш=значение". Этот комплекс работает софтово на интеловских CPU, на каждый запрос отдается ответ размером от нескольких Кб до нескольких МБ информации. По сути это некий большооой и мощный NoSQL сервер. Данный в таком NoSQL сервере практически статичны и меняются всего несколько раз в час. Все вроде бы работает прекрасно. Однако такое решение тяжело и дорого масштабировать с учетом роста количства назгрузки. Поэтому пришла идея как-то все соптимизировать, например на FPGA.
В интернете удалось найти решения алалогичные вот этому http://netfpga.org/foswiki/NetFPGA/TenGig/...10gInitInfoSite , обеспечивающие огромную пропускную способность. Идея в том, что бы заставить плис помимо аппаратной обработки сетвого стека, еще и работать в качестве простейшего nosql сервера на скоростях близких к 10Gbit/s, для этого достаточно брать прилетевший пакет, находить по в нем самый хэш nosql-запроса, и выдергивать напрямую значение хэша из оперативной памяти, обходя при этом центральный процессор сервера. В оперативную память данные будут заранее загружены силами сервера.
У меня пока первым вопросом является насколько стек lwIP virtex'a подходит для десятков (а в перспективе и под сотню) тысяч одновременных tcp соединений и больших нагрузок? Насколько вообще описанная мною схема имеет право на существование? Быть может стоит взглянуть в какую-то другую сторону?

Спасибо.
Go to the top of the page
 
+Quote Post
AsJohnAs
сообщение Mar 5 2012, 11:39
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 14-07-05
Из: Санкт-Петербург
Пользователь №: 6 793



Ну для начала надо посчитать какое количество IPсессий все-же необходимо. Затем прикинуть какой размер IP сессии возможен.
Далее рассматривается 10Гбит/c то какую скорость должна обеспечить память.

Если сессий не очень много - ну допустим ~100 то может можно поставить небольшие 8ми битные процессоры, но много - по одному на IP сессию.

Вообщем при расчете как я понимаю самая большая проблема будет в количестве блочной памяти внутри ПЛИС
Go to the top of the page
 
+Quote Post
Jumboframe
сообщение Mar 5 2012, 11:50
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602



Цитата(AsJohnAs @ Mar 5 2012, 14:39) *
Ну для начала надо посчитать какое количество IPсессий все-же необходимо. Затем прикинуть какой размер IP сессии возможен.
Далее рассматривается 10Гбит/c то какую скорость должна обеспечить память.

Если сессий не очень много - ну допустим ~100 то может можно поставить небольшие 8ми битные процессоры, но много - по одному на IP сессию.

Вообщем при расчете как я понимаю самая большая проблема будет в количестве блочной памяти внутри ПЛИС


Спасибо за ответ. Сессий в перспективе, особенно при флуктуациях и отваливании сети может быть от 100 тыс и больше, ввиду того что каждое устройство может делать в SQL кластер до нескольких десятков запросов одновременно, причем каждый запрос - отдельная tcp сессия - это архитектурное ограничение софта исправить которе можно только полность переписав ПО, что на данный момент нереально. Отсюда и приходится плясать.
Go to the top of the page
 
+Quote Post
AsJohnAs
сообщение Mar 5 2012, 14:50
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 14-07-05
Из: Санкт-Петербург
Пользователь №: 6 793



Мне самому очень интересно как такое можно обрабатывать на ПЛИС.....
Потому как при постановке задачи что сессий может быть почти любое кол-во и их размер то-же не ограничен. То выделение ресурсов должно будет выполнено динамически. Такие задачи не очень свойственны ПЛИС.
Т.е. для такой задачи ножен процессор. Но так как сессий может быть очень много этот процессор должен собирать сессию без задержки так как сами пакеты могут быть разными. Надо сделать так чтоб приход короткого пакета не убивал разбор длинного.

А у вас какая концепция - с какого бока планируете подойти?
Go to the top of the page
 
+Quote Post
SFx
сообщение Mar 5 2012, 15:27
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(Jumboframe @ Mar 5 2012, 13:47) *
насколько стек lwIP virtex'a подходит для десятков (а в перспективе и под сотню) тысяч одновременных tcp соединений и больших нагрузок?

1. LwIP это стек для Микропроцессоров, а не FPGA. Для FPGA его можно использовать только предвариетельно реализовав на FPGA Soft CPU Core.
2. чтобы оценить масштаб бедствия, возьмите размер TCB структуры того же LwIP и умножьте на вашу сотню тысяч соединений. это будет ооооочень грубо. потому что та структура чрезвычайно неудобна для размещения ее в FPGA (блочной\дистибутивной памяти FPGA) и это будет размер необходимый только для структуры, не считая буферов для принятых\переданных данных, которые могут быть судя по Вашему сообщению от нескольких КБ. Однозначно тут будет Внешняя память использоваться.

Цитата(Jumboframe @ Mar 5 2012, 13:47) *
Насколько вообще описанная мною схема имеет право на существование? Быть может стоит взглянуть в какую-то другую сторону?

Если вложить в разработку пару-тройку десятков миллионов рублей и пару лет работы нормального коллектива, то возможно что то и получится sm.gif
Плата которую Вы увидели стоит около 10K$ без SFP+ трансиверов, и она уже в данный момент устарела технически. Кстати IP Core Ten Gigabit TCP тоже стоит денег сравнимых или больше.
Конечное устройство-прототип, может быть и будет в 1U formfactor, но цена 1 шт. будет близка к стоимости маленького кластера.
Вы готовы на такое капиталовложение? (если нет - то глядите в сторону ARM серверов, подключенных к балансировщикам нагрузки, возможно что то и выдет )
Что касается Баз данных на FPGA, у меня есть некоторые умозаключения по теме, но делится ими без четко описанной внятной задачи я врятли готов. Sorry.
Go to the top of the page
 
+Quote Post
Jumboframe
сообщение Mar 5 2012, 16:30
Сообщение #6





Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602



Цитата(AsJohnAs @ Mar 5 2012, 17:50) *
Мне самому очень интересно как такое можно обрабатывать на ПЛИС.....
Потому как при постановке задачи что сессий может быть почти любое кол-во и их размер то-же не ограничен. То выделение ресурсов должно будет выполнено динамически. Такие задачи не очень свойственны ПЛИС.


Да, это я понимаю. Если удастся подобрать какое-то приемлемое решение на n-ое кол-во сессий, то дальше общее кол-во запросов можно будет раскидать каким-нибудь балансировщиком, благо это не проблема.

Цитата(AsJohnAs @ Mar 5 2012, 17:50) *
А у вас какая концепция - с какого бока планируете подойти?


Пока нет четкого понимания, к сожалению

Цитата(SFx)
1. LwIP это стек для Микропроцессоров, а не FPGA. Для FPGA его можно использовать только предвариетельно реализовав на FPGA Soft CPU Core.
2. чтобы оценить масштаб бедствия, возьмите размер TCB структуры того же LwIP и умножьте на вашу сотню тысяч соединений. это будет ооооочень грубо. потому что та структура чрезвычайно неудобна для размещения ее в FPGA (блочной\дистибутивной памяти FPGA) и это будет размер необходимый только для структуры, не считая буферов для принятых\переданных данных, которые могут быть судя по Вашему сообщению от нескольких КБ. Однозначно тут будет Внешняя память использоваться.


Спасибо, учтем и посчитаем. Внешняя память да, безусловно.

Цитата(SFx)
Если вложить в разработку пару-тройку десятков миллионов рублей и пару лет работы нормального коллектива, то возможно что то и получится.
Плата которую Вы увидели стоит около 10K$ без SFP+ трансиверов, и она уже в данный момент устарела технически. Кстати IP Core Ten Gigabit TCP тоже стоит денег сравнимых или больше.
Конечное устройство-прототип, может быть и будет в 1U formfactor, но цена 1 шт. будет близка к стоимости маленького кластера.
Вы готовы на такое капиталовложение? (если нет - то глядите в сторону ARM серверов, подключенных к балансировщикам нагрузки, возможно что то и выдет )
Что касается Баз данных на FPGA, у меня есть некоторые умозаключения по теме, но делится ими без четко описанной внятной задачи я врятли готов. Sorry.


Вы имеете ввиду пятый виртекс? Я кстати, привел данную плату как пример и цена ей 1675$, а не 10$k. На сайте http://hitechglobal.com/ достаточно много интересных плат в т.ч. и на шестых виртексах, например вот http://hitechglobal.com/catalog/product_in...products_id=216 . К этой же плате прилагаетcя (или приобретается, не совсем понятно) 10G TOE и 10G MAC IP Cores. Вобщем в идеале хотелось бы получить готовый сетевой L2/L3 стек, реализовать дальнейшую примитивную (по крайней мере мне так кажется) выборку из внешней памяти и засовывание результатов обратно в сеть не должно составить большого труда. Вкладывать десятки миллионов и человекогоды, естественно, возможности нет sm.gif

За наводку в сторону ARM спасибо, мы глядели, но под нашу задачу ничего подходящего не нашли.
Go to the top of the page
 
+Quote Post
SFx
сообщение Mar 5 2012, 17:58
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(Jumboframe @ Mar 5 2012, 20:30) *
Вы имеете ввиду пятый виртекс? Я кстати, привел данную плату как пример и цена ей 1675$, а не 10$k. На сайте http://hitechglobal.com/ достаточно много интересных плат в т.ч. и на шестых виртексах, например вот http://hitechglobal.com/catalog/product_in...products_id=216 . К этой же плате прилагаетcя (или приобретается, не совсем понятно) 10G TOE и 10G MAC IP Cores. Вобщем в идеале хотелось бы получить готовый сетевой L2/L3 стек, реализовать дальнейшую примитивную (по крайней мере мне так кажется) выборку из внешней памяти и засовывание результатов обратно в сеть не должно составить большого труда. Вкладывать десятки миллионов и человекогоды, естественно, возможности нет sm.gif

а таможня? А наценка дилера? или Вы уже купил? sm.gif
L3 - это IP уровень, ipСore 10GTOE (которому тоже, кстати, нужно отдельный DDR контроллер) продается как правило отдельно от 10GMAC и от платы. более того. кроме IP/TCP/ARP стека нужно еще алгоритм обработки ваших данных. а тут может быть фундаментальные трудности. Примитивная выборка будет медленнее работать, чем на любом современном компе.
Go to the top of the page
 
+Quote Post
Jumboframe
сообщение Mar 5 2012, 19:10
Сообщение #8





Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602



Цитата(SFx @ Mar 5 2012, 20:58) *
а таможня? А наценка дилера? или Вы уже купил? sm.gif
L3 - это IP уровень, ipСore 10GTOE (которому тоже, кстати, нужно отдельный DDR контроллер) продается как правило отдельно от 10GMAC и от платы. более того. кроме IP/TCP/ARP стека нужно еще алгоритм обработки ваших данных. а тут может быть фундаментальные трудности. Примитивная выборка будет медленнее работать, чем на любом современном компе.


Мы еще ничего не приобретали, но все это дело можно заказать через интернет либо слетать за 500$ самому)
Насчет корок - поробуем уточнить этот момент.
Go to the top of the page
 
+Quote Post
SFx
сообщение Mar 12 2012, 21:11
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(Jumboframe @ Mar 5 2012, 23:10) *
Мы еще ничего не приобретали, но все это дело можно заказать через интернет либо слетать за 500$ самому)

один фиг таможня бабло срубит sm.gif имхо плата вообще не нужна, чтобы проверить принципы, достаточно сделать модель (или насобирать из корок). а вот если модель будет показывать хорошие результаты, тогда - да - стоит потратится.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 14:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.04434 секунд с 7
ELECTRONIX ©2004-2016