Сообщение Быстрый ID для объектов сетевого протокола от 20.04.2018 15:53
Изменено 20.04.2018 15:55 Barbar1an
Быстрый ID для объектов сетевого протокола
например есть у нас протокол команда это [ObjectcId].Property = Value
мне интересно как можно организовать самый быстрый переход от объекта к его указателю, и на сервере и на клиенте
1. генерировать один GUID, но тогда придется искать каждый айди в таблице
2. тупо обменяться адресами в памяти — сервису сказать где объект лежит на клиенте, и наоборот, тогда можно просто привести айди к указателю что супербыстро, но тут нужен запрос-ответ
глобальная уникальность будет обеспечиваться уникальностью пары айди процесса(или айпи, или сессии) и адреса в памяти
3. выделять доступный один айди как HANDLE в винде, тут доступ быстрый — просто по индексу в массиве, но если объект создается клиентом то нада както обеспечить синхрронизацию с серверйно таблицей
мож чтото лучше есть, мне лично нравится идея адреса, тогда не нада на каждую команду лукап делать
мне интересно как можно организовать самый быстрый переход от объекта к его указателю, и на сервере и на клиенте
1. генерировать один GUID, но тогда придется искать каждый айди в таблице
2. тупо обменяться адресами в памяти — сервису сказать где объект лежит на клиенте, и наоборот, тогда можно просто привести айди к указателю что супербыстро, но тут нужен запрос-ответ
глобальная уникальность будет обеспечиваться уникальностью пары айди процесса(или айпи, или сессии) и адреса в памяти
3. выделять доступный один айди как HANDLE в винде, тут доступ быстрый — просто по индексу в массиве, но если объект создается клиентом то нада както обеспечить синхрронизацию с серверйно таблицей
мож чтото лучше есть, мне лично нравится идея адреса, тогда не нада на каждую команду лукап делать
Быстрый ID для объектов сетевого протокола
например есть у нас протокол где команда это [ObjectcId].Property = Value
мне интересно как можно организовать самый быстрый переход от объекта к его указателю, и на сервере и на клиенте
1. генерировать один GUID, но тогда придется искать каждый айди в таблице на каждую команду
2. тупо обменяться адресами в памяти — сервису сказать где объект лежит на клиенте, и наоборот, тогда можно просто привести айди к указателю что супербыстро, но тут нужен запрос-ответ, а это тормоза
глобальная уникальность будет обеспечиваться уникальностью пары айди процесса(или айпи, или сессии) и адреса в памяти
3. выделять доступный один айди как HANDLE в винде, тут доступ быстрый — просто по индексу в массиве, но если объект создается клиентом то нада както обеспечить синхрронизацию с серверйно таблицей, либо опять ждать овтета
мож чтото лучше есть, мне лично нравится идея адреса, тогда не нада на каждую команду лукап делать
мне интересно как можно организовать самый быстрый переход от объекта к его указателю, и на сервере и на клиенте
1. генерировать один GUID, но тогда придется искать каждый айди в таблице на каждую команду
2. тупо обменяться адресами в памяти — сервису сказать где объект лежит на клиенте, и наоборот, тогда можно просто привести айди к указателю что супербыстро, но тут нужен запрос-ответ, а это тормоза
глобальная уникальность будет обеспечиваться уникальностью пары айди процесса(или айпи, или сессии) и адреса в памяти
3. выделять доступный один айди как HANDLE в винде, тут доступ быстрый — просто по индексу в массиве, но если объект создается клиентом то нада както обеспечить синхрронизацию с серверйно таблицей, либо опять ждать овтета
мож чтото лучше есть, мне лично нравится идея адреса, тогда не нада на каждую команду лукап делать