Класс CTrie fast

 

Всем привет!

Может быть у кого-нибудь есть очень быстрый класс CTrie c поддержкой Generations в реализации C++ ?

 
prostotrader:

Всем привет!

Может быть у кого-нибудь есть очень быстрый класс CTrie c поддержкой Generations в реализации C++ ?

Вам красно-черное дерево в Include\Arrays\Tree.mqh не подходит?
 
Vasiliy Sokolov:
Вам красно-черное дерево в Include\Arrays\Tree.mqh не подходит?

Вы, верояно, не увидели, что мне нужно CTrie, а не Tree
 
А вам для форекс или для ФОООРТС?
 
CTrie - это лок-фрии хеши?
Посмотрите на библиотеку от автора следующего цикла статей https://habrahabr.ru/post/195770/
lock-free map точно были, а вот есть ли там хештейбл - не знаю.

Ну и про мультипоточность на С++ очень хорошая книга от Ентони Вильямса с кучей примеров (возможно будет и хештейбл)
Lock-free структуры данных. 1 — Начало
Lock-free структуры данных. 1 — Начало
  • habrahabr.ru
Я надеюсь, что эта статья станет началом цикла заметок о lock-free структурах данных. Я хочу поделиться с хабрасообществом своим опытом, наблюдениям и размышлениями о том, что такое lock-free структуры данных, как их реализовывать, подходят ли концепции контейнеров стандартной библиотеки STL к lock-free контейнерам, и когда стоит (и стоит ли...
 
Sergey Dzyublik:
CTrie - это лок-фрии хеши?
Посмотрите на библиотеку от автора следующего цикла статей https://habrahabr.ru/post/195770/
lock-free map точно были, а вот есть ли там хештейбл - не знаю.

Ну и про мультипоточность на С++ очень хорошая книга от Ентони Вильямса с кучей примеров (возможно будет и хештейбл)

Спасибо, в тему, но там нет исходного кода :(
 
А что в гугле забанили? С первого запроса и по первой ссылке нашел исходник на с++
 
prostotrader:

Спасибо, в тему, но там нет исходного кода :(

По внимательнее:

"С другой стороны, не имея представления о них, я не смог бы написать и развивать библиотеку libcds, — open source C++ библиотеку lock-free контейнеров и алгоритмов безопасного освобождения памяти (safe memory reclamation). Cds – это аббревиатура Concurrent Data Structure, а префикс “lib” – это, как ни странно, “library”."

 
Sergey Dzyublik:

По внимательнее:

"С другой стороны, не имея представления о них, я не смог бы написать и развивать библиотеку libcds, — open source C++ библиотеку lock-free контейнеров и алгоритмов безопасного освобождения памяти (safe memory reclamation). Cds – это аббревиатура Concurrent Data Structure, а префикс “lib” – это, как ни странно, “library”."


Спасибо :)
 

Прошло много времени, но дело всё-таки сделано.

Была написана  и полностью оттестирована своя библиотека наподобие CTrie, только получилась гораздо лучше и быстрее.

Библиотека (пока нет названия), позволяет получать данные и хранить их, обрабатывая входные потоки данных

независимо от запросов в хранилище за данными. В секунду в хранилище может делаться до миллиона независимых

запросов, при этом система хранилища совсем не "притормаживает".

Эту библиотеку я заказывал своему другу для реализации коннектора Плаза 2.

Но он говорит, что нет смысла "привязываться" только к ММВБ, а предлагает использовать её

как собственное (общее для всех бирж) хранилище, к которому через различные плагины (FIX, Plaza 2 и пр.) стекаются

данные. Каждый из плагинов должен переработать входящие потоки данных в собственную (библиотеки) древовидную

структуру, а роботы будут забирать данные в формате хранилища.

Он просит меня сделать такое дерево (описать), в котором бы учитывались все данные, которые могут

быть востребованы на любой бирже торговыми роботами.

Сижу целый день "чещу затылок", но так и не придумал с чего начать и где бы посмотреть какие

данные должны быть в дереве и как их структурировать?

Может быть кто-нибудь подскажет что смотреть и что Гуглить?