ошибка создания индекса или несоответствие документации

473 views
Skip to first unread message

Alexandre Kalendarev

unread,
Jul 15, 2014, 11:58:38 AM7/15/14
to tarant...@googlegroups.com
решил поиграться и пока в отпуске и есть время - допилить РНР драйвер
установил из репозитория ubuntu (apt-get  install tarantool)   version 1.6.0:

запустилось все хорошо:

$ tarantool_box -c tarantool.cfg
2014-07-15 23:25:50.367 [2672] 1/sched C> version 1.6.0-529-g43a1be2
2014-07-15 23:25:50.371 [2672] 1/sched I> recovery start
2014-07-15 23:25:50.375 [2672] 1/sched I> recover from `./00000000000000000001.snap'
2014-07-15 23:25:50.376 [2672] 1/sched I> snapshot recovered, confirmed lsn: 1
2014-07-15 23:25:50.377 [2672] 1/sched I> bound to primary port 33013
2014-07-15 23:25:50.378 [2672] 1/sched I> I am primary
2014-07-15 23:25:50.378 [2672] 1/sched I> bound to secondary port 33014
2014-07-15 23:25:50.378 [2672] 1/sched I> bound to admin port 33015
2014-07-15 23:25:50.379 [2672] 1/sched C> log level 4
2014-07-15 23:25:50.379 [2672] 1/sched C> entering the event loop
2014-07-15 23:25:58.175 [2672] 1/sched I> creating `./00000000000000000002.xlog.inprogress'

2014-07-15 23:28:01.000 [2672] 103/admin/127.0.0.1:54258 space.h:295 E> ER_NO_SUCH_INDEX: No index #0 is defined in space 512



из клиента все по документации:

s = box.schema.create_space('tester')
---
...
localhost> s
---
- temporary: false
  n: 512
  index: []g
  enabled: false
  name: tester
  arity: 0

а вот создать индекс не могу...

localhost> i = s:create_index('primary', {type = 'hash', parts = {1, 'NUM'}})
---
- error: 'Tuple field 3 type does not match one required by operation: expected STR'
...


в общем где-то несоответствие.



--
Alexandre

Konstantin Osipov

unread,
Jul 15, 2014, 12:33:29 PM7/15/14
to tarant...@googlegroups.com
* Alexandre Kalendarev <aka...@gmail.com> [14/07/15 20:11]:

С тех пор индексация полей перевелась на 1 и обновили
документацию.
А у тебя старый Тарантул. С тех пор тыщи полторы коммитов утекло
:)

Возьми поновее :)

> решил поиграться и пока в отпуске и есть время - допилить РНР драйвер
> установил из репозитория ubuntu (apt-get install tarantool) version
> 1.6.0:
>
> запустилось все хорошо:
>
> $ tarantool_box -c tarantool.cfg
> 2014-07-15 23:25:50.367 [2672] 1/sched C> version 1.6.0-529-g43a1be2

--
http://tarantool.org - an efficient, extensible in-memory data store

Alexandre Kalendarev

unread,
Jul 16, 2014, 3:03:39 AM7/16/14
to tarant...@googlegroups.com
что-то проблемы со сборкой :( ,
решил пойти по более легкому пути.

тогда, мы пойдем другим путём ...


15 июля 2014 г., 20:33 пользователь Konstantin Osipov <kostja...@gmail.com> написал:
--
Вы получили это сообщение, поскольку подписаны на группу tarantool-ru.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес tarantool-ru...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Alexandre

Roman Tsisyk

unread,
Jul 16, 2014, 5:29:00 AM7/16/14
to tarant...@googlegroups.com
2014-07-16 11:03 GMT+04:00 Alexandre Kalendarev <aka...@gmail.com>:
> что-то проблемы со сборкой :( ,
> решил пойти по более легкому пути.

Что за проблемы? Вроде собирается на всех основных платформах без проблем.

--
WBR,
Roman Tsisyk <ro...@tarantool.org>
http://tarantool.org/ - an efficient in-memory data store and a Lua
application server

Alexandre Kalendarev

unread,
Jul 16, 2014, 7:01:58 AM7/16/14
to tarant...@googlegroups.com
уменя ранее были похожие проблемы, видно что-то где-то не прописано.


/tarantool-master$ cmake .
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - not found
-- Looking for stddef.h
-- Looking for stddef.h - not found
-- Check size of unsigned short
-- Check size of unsigned short - failed
-- Check size of unsigned int
-- Check size of unsigned int - failed
-- Check size of unsigned long
-- Check size of unsigned long - failed
CMake Error at /usr/share/cmake-2.8/Modules/TestBigEndian.cmake:44 (message):
  no suitable type found
Call Stack (most recent call first):
  cmake/arch.cmake:1 (test_big_endian)
  CMakeLists.txt:49 (include)


-- Configuring incomplete, errors occurred!
akalend@akalend:~/projects/tarantool-master$



16 июля 2014 г., 13:28 пользователь Roman Tsisyk <ro...@tarantool.org> написал:
--
Вы получили это сообщение, поскольку подписаны на группу tarantool-ru.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес tarantool-ru...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Alexandre

yolkov

unread,
Jul 22, 2014, 10:07:49 AM7/22/14
to tarant...@googlegroups.com
тут старый кусок документации 
http://tarantool.org/doc/mpage/os-install-notes.html

Еще вопрос, тарантул можно запустить так:

~$echo $PRIMARY_PORT
3313
~$ cat /etc/tarantool/
instances.available/ instances.enabled/   server.lua
~$ cat /etc/tarantool/server.lua
#!/usr/bin/env tarantool
box.cfg{
    primary_port        = os.getenv("PRIMARY_PORT"),
    admin_port          = os.getenv("ADMIN_PORT"),
    slab_alloc_arena    = 0.1,
    pid_file            = "tarantool.pid",
    rows_per_wal        = 5000
}
print('Starting ',arg[1])

~$ tarantool /etc/tarantool/server.lua ARG 

вопрос, я могу запускать сервер из юзерспеса?
Сможет ли другой пользователь запустив второй экземпляр тарантула, получить доступ к данным первого инстанса?
как правильно запускать сервер?

yolkov

unread,
Jul 22, 2014, 10:15:24 AM7/22/14
to tarant...@googlegroups.com
старая документация в деб пакете

cat /usr/share/doc/tarantool/README.Debian
To create new instance You should:

  1. place instance_name.cfg into /etc/tarantool/instances.available/
  2. create symlink
         /etc/tarantool/instances.available/instance_name.cfg ->
                /etc/tarantool/instances.enabled/instance_name.cfg
  3. do invoke-rc.d tarantool restart

Konstantin Osipov

unread,
Jul 22, 2014, 10:56:03 AM7/22/14
to tarant...@googlegroups.com
* yolkov <yol...@gmail.com> [14/07/22 18:51]:
> тут старый кусок документации
>
> > http://tarantool.org/doc/mpage/os-install-notes.html
> >

Да, мы в ближайшее время обновим скрипты для 1.6. Скажем так, не
хочется переписывать документацию, хочется чтобы заработал код.

> Еще вопрос, тарантул можно запустить так:
>
> ~$echo $PRIMARY_PORT
> 3313
> ~$ cat /etc/tarantool/
> instances.available/ instances.enabled/ server.lua
> ~$ cat /etc/tarantool/server.lua
> #!/usr/bin/env tarantool
> box.cfg{
> primary_port = os.getenv("PRIMARY_PORT"),
> admin_port = os.getenv("ADMIN_PORT"),
> slab_alloc_arena = 0.1,
> pid_file = "tarantool.pid",
> rows_per_wal = 5000
> }
> print('Starting ',arg[1])
>
> ~$ tarantool /etc/tarantool/server.lua ARG
>
> вопрос, я могу запускать сервер из юзерспеса?

Да, это ОК. Только мы тут последний марафет наводим, primary_port
переименовали в listen а админ порт выносим в модуль под названием
console (то есть админка будет запущена и при незапущенном боксе).

Какая версия?

> Сможет ли другой пользователь запустив второй экземпляр тарантула, получить
> доступ к данным первого инстанса?

Через репликацию или hot standby, в последнем случае нужны права
на чтение файлов первого инстанса.


> как правильно запускать сервер?

Пока скрипты не готовы, но в целом они так и будут выглядеть как
Вы сделали - instances.available, instances.enabled.

Можно ещё посмотреть на следующие опции для box.cfg: background, logger,
pid_file, username.

Konstantin Osipov

unread,
Jul 22, 2014, 10:56:27 AM7/22/14
to tarant...@googlegroups.com
* yolkov <yol...@gmail.com> [14/07/22 18:51]:
Спасибо, пофиксим (напишем новые скрипты).

Евгений

unread,
Jul 23, 2014, 3:09:26 AM7/23/14
to tarant...@googlegroups.com
22 июля 2014 г., 18:55 пользователь Konstantin Osipov <kostja...@gmail.com> написал:
* yolkov <yol...@gmail.com> [14/07/22 18:51]:
> Еще вопрос, тарантул можно запустить так:
>
> ~$echo $PRIMARY_PORT
> 3313
> ~$ cat /etc/tarantool/
> instances.available/ instances.enabled/   server.lua
> ~$ cat /etc/tarantool/server.lua
> #!/usr/bin/env tarantool
> box.cfg{
>     primary_port        = os.getenv("PRIMARY_PORT"),
>     admin_port          = os.getenv("ADMIN_PORT"),
>     slab_alloc_arena    = 0.1,
>     pid_file            = "tarantool.pid",
>     rows_per_wal        = 5000
> }
> print('Starting ',arg[1])
>
> ~$ tarantool /etc/tarantool/server.lua ARG
>
> вопрос, я могу запускать сервер из юзерспеса?

Да, это ОК. Только мы тут последний марафет наводим, primary_port
переименовали в listen а админ порт выносим в модуль под названием
console (то есть админка будет запущена и при незапущенном боксе).

Какая версия?


Последняя из вашего репозитория, я периодически обновляю пакет
ii  tarantool                          1.6.3+20140718+1903-1  amd64

 
> Сможет ли другой пользователь запустив второй экземпляр тарантула, получить
> доступ к данным первого инстанса?

Через репликацию или hot standby, в последнем случае нужны права
на чтение файлов первого инстанса.


> как правильно запускать сервер?

Пока скрипты не готовы, но в целом они так и будут выглядеть как
Вы сделали - instances.available, instances.enabled.

Можно ещё посмотреть на следующие опции для box.cfg: background, logger,
pid_file, username.


В итоге как "правильнее" запускать тарантул из userspace или из под root?

 
--
http://tarantool.org - an efficient, extensible in-memory data store

--
Вы получили это сообщение, так как подписаны на группу "tarantool-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/tarantool-ru/bWZp2NERC_c/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес tarantool-ru...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
С уважением,
Евгений

Konstantin Osipov

unread,
Jul 23, 2014, 3:38:57 AM7/23/14
to tarant...@googlegroups.com

Если запускать из под  root, обязательно указывать опцию username. В остальном без разницы.

Alexandre Kalendarev

unread,
Jul 23, 2014, 3:49:39 AM7/23/14
to tarant...@googlegroups.com
всем спасибо,

Костя, а этот релиз совместим с новым протоколом?
или лучше дождаться обновления deb пакета

 
Alexandre

Roman Tsisyk

unread,
Jul 23, 2014, 4:58:17 AM7/23/14
to tarant...@googlegroups.com
2014-07-23 11:09 GMT+04:00 Евгений <yol...@gmail.com>:
>
> В итоге как "правильнее" запускать тарантул из userspace или из под root?
>

Под рутом надо запускать условно говоря init и sshd,
остальное прекрасно работает под юзером.

yolkov

unread,
Jul 23, 2014, 5:49:41 AM7/23/14
to tarant...@googlegroups.com, ro...@tarantool.org


среда, 23 июля 2014 г., 12:58:17 UTC+4 пользователь Roman Tsisyk написал:
2014-07-23 11:09 GMT+04:00 Евгений <yol...@gmail.com>:
>
> В итоге как "правильнее" запускать тарантул из userspace или из под root?
>

Под рутом надо запускать условно говоря init и sshd,
остальное прекрасно работает под юзером.

Я понимаю, но некоторые проекты запускаются по другому,
основной процесс из под рута, а уже воркеры из под спец-го пользователя

ps auxww | grep nginx | grep -v grep
root     22685  0.0  0.9 139984 38608 ?        Ss   Jul02   0:00 nginx: master process /usr/sbin/nginx
www-data 22686  0.0  1.1 144792 45848 ?        S    Jul02   1:21 nginx: worker process
www-data 22687  0.0  1.1 143152 44540 ?        S    Jul02   1:20 nginx: worker process
www-data 22688  0.0  1.1 143316 44216 ?        S    Jul02   1:21 nginx: worker process
www-data 22689  0.0  1.1 142712 44148 ?        S    Jul02   1:20 nginx: worker process

просто если читать вашу документацию, то там показано как запустить из под "себя" процесс тарантула, да и вообще каждый пользователь может запустить ограниченое количество своих экземпляров тарантула, что немного дезорганизует. Конечно можно относится к этому как к фиче, но хотелось бы что-то вроде best practices

yolkov

unread,
Jul 23, 2014, 5:53:01 AM7/23/14
to tarant...@googlegroups.com
Хочется управять количеством экземпляров тарантула и управлять правами на создание новых серверов, "баз данных" и т.п.

Konstantin Osipov

unread,
Jul 23, 2014, 6:06:05 AM7/23/14
to tarant...@googlegroups.com, ro...@tarantool.org
* yolkov <yol...@gmail.com> [14/07/23 14:04]:

У нас в 1.5 так и было, и мы для 1.6 так тоже сделаем, через
instances.available/instances.enabled.

Один скрипт будет пускать все инстансы, также можно будет
управлять конкретным инстансом.

Konstantin Osipov

unread,
Jul 23, 2014, 6:07:34 AM7/23/14
to tarant...@googlegroups.com
* yolkov <yol...@gmail.com> [14/07/23 14:04]:
> Хочется управять количеством экземпляров тарантула и управлять правами на
> создание новых серверов, "баз данных" и т.п.

Давайте не мешать всё в одну кучу. По количеству экземпляров -
мы обсудли.

По правам на создание новых серверов - это надо обсуждать
конкретно, что именно нужно.

Права на создание спейсов в 1.6 разруливаются с помощью
привилегий.

yolkov

unread,
Jul 23, 2014, 6:11:17 AM7/23/14
to tarant...@googlegroups.com, ro...@tarantool.org
среда, 23 июля 2014 г., 14:06:05 UTC+4 пользователь Konstantin Osipov написал:
но все равно каждый пользователь сможет запускать любое количество инстансов и настраивать на них "сервера" и т.п.

мне кажется всетаки более понятное разделение на client/server, где сервер запускает только администратор, а консолью пользуются все с учетом выданных доступов для этого пользователя
 
Reply all
Reply to author
Forward
0 new messages