|
|
  |
FPGA + NOSQL |
|
|
|
Mar 5 2012, 09:47
|
Группа: Новичок
Сообщений: 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 соединений и больших нагрузок? Насколько вообще описанная мною схема имеет право на существование? Быть может стоит взглянуть в какую-то другую сторону? Спасибо.
|
|
|
|
|
Mar 5 2012, 11:50
|
Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602

|
Цитата(AsJohnAs @ Mar 5 2012, 14:39)  Ну для начала надо посчитать какое количество IPсессий все-же необходимо. Затем прикинуть какой размер IP сессии возможен. Далее рассматривается 10Гбит/c то какую скорость должна обеспечить память.
Если сессий не очень много - ну допустим ~100 то может можно поставить небольшие 8ми битные процессоры, но много - по одному на IP сессию.
Вообщем при расчете как я понимаю самая большая проблема будет в количестве блочной памяти внутри ПЛИС Спасибо за ответ. Сессий в перспективе, особенно при флуктуациях и отваливании сети может быть от 100 тыс и больше, ввиду того что каждое устройство может делать в SQL кластер до нескольких десятков запросов одновременно, причем каждый запрос - отдельная tcp сессия - это архитектурное ограничение софта исправить которе можно только полность переписав ПО, что на данный момент нереально. Отсюда и приходится плясать.
|
|
|
|
|
Mar 5 2012, 15:27
|
Знающий
   
Группа: Свой
Сообщений: 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)  Насколько вообще описанная мною схема имеет право на существование? Быть может стоит взглянуть в какую-то другую сторону? Если вложить в разработку пару-тройку десятков миллионов рублей и пару лет работы нормального коллектива, то возможно что то и получится Плата которую Вы увидели стоит около 10K$ без SFP+ трансиверов, и она уже в данный момент устарела технически. Кстати IP Core Ten Gigabit TCP тоже стоит денег сравнимых или больше. Конечное устройство-прототип, может быть и будет в 1U formfactor, но цена 1 шт. будет близка к стоимости маленького кластера. Вы готовы на такое капиталовложение? (если нет - то глядите в сторону ARM серверов, подключенных к балансировщикам нагрузки, возможно что то и выдет ) Что касается Баз данных на FPGA, у меня есть некоторые умозаключения по теме, но делится ими без четко описанной внятной задачи я врятли готов. Sorry.
|
|
|
|
|
Mar 5 2012, 16:30
|
Группа: Новичок
Сообщений: 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 стек, реализовать дальнейшую примитивную (по крайней мере мне так кажется) выборку из внешней памяти и засовывание результатов обратно в сеть не должно составить большого труда. Вкладывать десятки миллионов и человекогоды, естественно, возможности нет  За наводку в сторону ARM спасибо, мы глядели, но под нашу задачу ничего подходящего не нашли.
|
|
|
|
|
Mar 5 2012, 17:58
|
Знающий
   
Группа: Свой
Сообщений: 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 стек, реализовать дальнейшую примитивную (по крайней мере мне так кажется) выборку из внешней памяти и засовывание результатов обратно в сеть не должно составить большого труда. Вкладывать десятки миллионов и человекогоды, естественно, возможности нет  а таможня? А наценка дилера? или Вы уже купил?  L3 - это IP уровень, ipСore 10GTOE (которому тоже, кстати, нужно отдельный DDR контроллер) продается как правило отдельно от 10GMAC и от платы. более того. кроме IP/TCP/ARP стека нужно еще алгоритм обработки ваших данных. а тут может быть фундаментальные трудности. Примитивная выборка будет медленнее работать, чем на любом современном компе.
|
|
|
|
|
Mar 5 2012, 19:10
|
Группа: Новичок
Сообщений: 5
Регистрация: 4-03-12
Пользователь №: 70 602

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