Libelektra: mmapstorage kdb рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдлрд╝рд░ре░ 2019  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ElektraInitiative/libelektra

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

kdb set user/tests/hello world
#> Create a new key user/tests/hello with string "world"

kdb export user/tests/hello mmapstorage > test.mmap

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо

test.mmap рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ kdb import рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо

test.mmap рдирд╛рдордХ рдПрдХ рдЦрд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( ENABLE_LOGGER рд▓реЙрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ):

src/plugins/mmapstorage/mmapstorage.c:944:libelektra_mmapstorage_LTX_elektraPluginset: could not unlink
src/plugins/mmapstorage/mmapstorage.c:1003:libelektra_mmapstorage_LTX_elektraPluginset: strerror: Permission denied
Sorry, the error (#9) occurred ;(
Description: Insufficient permissions to open configuration file for writing. You might want to retry as root.
Reason: Permission denied
Ingroup: kdb
Module: 
At: /home/klemens/data/bsc/libelektra/src/plugins/mmapstorage/mmapstorage.c:1004
Mountpoint: user
Configfile: /dev/stdout

рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╛рдирдХрд╛рд░реА

  • Elektra рд╕рдВрд╕реНрдХрд░рдг: рдорд╛рд╕реНрдЯрд░

рдЕрдЧреНрд░рд┐рдо рдЬрд╛рдирдХрд╛рд░реА

~ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм kdb export рдЬрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред ~ (EDIT: рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ) kdb export user/tests/hello mmapstorage test.mmap рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди kdb export рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдЕрджреНрдпрддрди рдкреНрд░рд▓реЗрдЦрди рд╣рдо рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Mmap рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред

рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣ stdout рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреГрдкрдпрд╛ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдзрд┐рдХ mmapstorage рддрд░реНрдХ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдЯреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рдереЗред

рд╕рднреА 22 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕реЗ рдФрд░ рдЗрд╕ рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдЕрджреНрдпрддрди рдкреНрд░рд▓реЗрдЦрди рд╣рдо рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

рд╢рд╛рдпрдж рд╣рдо рднреА рдПрдХ serializable infos / рд╕реНрдерд┐рддрд┐ # 666 рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ / рджреЗрд╡ / stdout рд╣реИ? ( @mpranj рдпрд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ mmapable рдирд╣реАрдВ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреБрдорддрд┐ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИ?)

рдХреЛрдб (рдФрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢) рдХреЛ рджреЗрдЦрдХрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд░реВрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рдмрд┐рдирд╛ unlink stdout рдкрд░ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ open рд╢рд╛рдпрдж рдЕрд╕реНрд╡рд╕реНрде рднреА рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ stdout рдкрд╣рд▓реЗ рд╣реА рдЦреБрд▓ рдЪреБрдХреЗ рд╣реИрдВред рдФрд░ stdout mmapable рд╣реИ рдХреНрдпрд╛ stdout рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП fstat(fileno(stdout), &stat) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред рд╢рд╛рдпрдж isatty(3) рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ /dev/stdout (рдпрд╛ CON _WIN32 ) рд╣реИ рдФрд░ mmap рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрд╕ рдЙрд╕ stdout рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ kdb export рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗред

рд╢рд╛рдпрдж рд╣рдо рднреА рдПрдХ serializable infos / рд╕реНрдерд┐рддрд┐ # 666 рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ / рджреЗрд╡ / stdout рд╣реИ?

рдпрджрд┐ рдХреБрдЫ рднреА рд╣реЛ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рджрд░реНрдЬрд╛ humanreadable рдФрд░ рдпрджрд┐ рдХреЛрдИ рдкреНрд░рд╛рд░реВрдк рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реЗ tty stdout рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрдВред

рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм kdb export рдЬрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдкрд╕ рд▓реЗ рд▓реЛ ... рдпрд╣ рдХреЛрд╢рд┐рд╢ рдордд рдХрд░реЛ! рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ kdb export <something> mmapstorage рдХреЙрд▓ рдХрд░рдирд╛ (рднрд▓реЗ рд╣реА рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ) /dev/stdout рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред /dev/stdout (рдЬреИрд╕реЗ fopen рдорд╛рдзреНрдпрдо рд╕реЗ) рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рддрдм рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдк sudo rm /dev/stdout && sudo ln -s /dev/stdout /proc/self/fd/1 рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд┐рдореНрдХреНрд▓рд┐рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ kdb export рдФрд░ kdb import рд╣рдореЗрд╢рд╛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВред рддрдм kdb export KDB рдХреЗ рд╕рдорд╛рди рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдирд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ (рдЬреЛ рдХрд┐ рдорд┐рдореАрдкреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред) рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╣рд╛рдирд┐ рд╣реИ (рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐) рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рд╕рднреА рднрдВрдбрд╛рд░рдг рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ kdb export рдФрд░ kdb import рд╣рдореЗрд╢рд╛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рд╣рдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдзреЗ TTYs рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред AFAIK mmapstorage рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ TTYs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдХ рд╕рд░рд▓ рд╢реЗрд▓ рдкрд░реАрдХреНрд╖рдг рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ kdb export /some/key plugin > export.file рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрд░реНрдХ рднреА рдЕрдзрд┐рдХ рдЖрддреНрдо-рдирд┐рд╣рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрддреНрдкрд╛рджрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред

kdb import рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдирд╛ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ TTYs рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рддрдм рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдордПрдордПрдкреА) рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХреЗрдбреАрдмреА рдпрд╛ kdb export рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@mpranj рдЖрдкрдХреА рдХреНрдпрд╛ рд░рд╛рдп рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдПрдордПрдордПрдкреА рдкреНрд▓рдЧрдЗрди рдХреЗ рднреАрддрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕ рддрд░рд╣ рд╣рдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдзреЗ TTYs рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рд╢рд╛рдпрдж рдмреИрдХрдЕрдк рдореЗрдВ / рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ?

AFAIK mmapstorage рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ TTYs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд╣рд╛рдБред рд▓реЗрдХрд┐рди рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдереЗ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдкреНрд▓рдЧрдЗрди fseek рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП csvstorage рдпрд╛ mozprefsред (рдбрдВрдк рдЕрдм рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)

рд╣рдо рдПрдХ рд╕рд░рд▓ рд╢реЗрд▓ рдЯреЗрд╕реНрдЯ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд▓рдЧ рдЗрди рдХреЛ kdb рдПрдХреНрд╕рдкреЛрд░реНрдЯ / рдХреБрдЫ / рдХреА-рдкреНрд▓рдЧрдЗрди> рдПрдХреНрд╕рдкреЛрд░реНрдЯ.рдлрд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдк рдкрд░реАрдХреНрд╖рдг / рдЦреЛрд▓ / check_export.sh рд▓рд╛рдЗрди 46 рдХрд╛ рдорддрд▓рдм рд╣реИ?

рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдЕрд╕рд▓ рдореЗрдВ, рд╢рд╛рдпрдж рдХрднреА рдирд╣реАрдВред рдЬрдм рддрдХ рдЖрдк рдкрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрдпрд╛рдд / рдЖрдпрд╛рдд рдХреЗ 3 рддрд░реНрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджреЗрдЦреЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡

рдЖрдк рдкрд░реАрдХреНрд╖рдг / рдЦреЛрд▓ / check_export.sh рд▓рд╛рдЗрди 46 рдХрд╛ рдорддрд▓рдм рд╣реИ?

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ is_not_rw_storage рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред dump рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. is_not_rw_storage include_common.sh.in tests/shell/check_export.sh рддрд╛рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВред
  2. kdb export рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЕрдЧрд░ рдХреЛрдИ рддреАрд╕рд░рд╛ рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ kdbSet рдХреЙрд▓ рдореЗрдВ рдХрд░реЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ stdout рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ (C ++ рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)ред
  3. рдЗрд╕реА рддрд░рд╣ kdb import рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдпрджрд┐ рд╕реНрдЯрдбрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рд╕реНрдЯреАрди рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ kdbGet рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  4. рддреАрд╕рд░рд╛ рддрд░реНрдХ рдореМрдЬреВрдж рд╣реИ, рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП kdb import рдФрд░ kdb export рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрджреНрдпрддрди рдХрд░реЗрдВред рдпрд╣ рднреА рдХрд╣рд╛ рдХрд┐ рдпрджрд┐ рджреЛ рддрд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╣рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рдкреБрдирд╢реНрдЪред рдпрд╣ good first issue рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ is_not_rw_storage рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ # 2423 рдЦреЛрд▓рд╛

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ , рдореИрдВ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рджреВрд░ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

Mmap рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред mmap() рдЧреИрд░-рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп EACCES рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣ stdout рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ # 2209 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

POSIX рд╕реЗ:

Mmap () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  • рдирд┐рдпрдорд┐рдд рдлрд╛рдЗрд▓реЗрдВ
  • [SHM] рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛
  • [TYM] рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ

Mmapstorage рдХреЗ рднреАрддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ stat рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

  • рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдпрдорд┐рдд рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдВ
  • рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА рд▓реЛрдХреЗрд╢рди (рдХреЗрд╡рд▓ рдореЗрдореНрдордк рдХреА рдЬрдЧрд╣ рдореИрд▓рд╛рдк) рд▓рд┐рдЦреЗрдВ рдФрд░ рдлрд┐рд░ рдиреЙрди рд░реЗрдЧреБрд▓рд░ рдлрд╛рдЗрд▓ (рдкрд╛рдЗрдк, рд╕реНрдЯрдбрдЖрдЙрдЯ, ..) рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред

рдореИрдВ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЦреБрд▓рд╛ рд╣реВрдБред рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдзрд┐рдХ mmapstorage рддрд░реНрдХ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдкрд╛рдЗрдк рдпрд╛ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП mmapstorage рдХреЛ рд╕реАрдзреЗ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред

рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Mmap рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред

рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣ stdout рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреГрдкрдпрд╛ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдзрд┐рдХ mmapstorage рддрд░реНрдХ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдЯреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рдереЗред

рддрдм рд╣рдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рдереЗред

рд╣рдореЗрдВ kdb import рдФрд░ kdb export рд▓рд┐рдП рдореИрди рдкреЗрдЬ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗ 3 рддрд░реНрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, strerror рдЗрди рднреНрд░рд╛рдордХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдПрдХ рдкреАрдЖрд░ рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реВрдВрдЧрд╛ред

рд╣рдореЗрдВ kdb рдЖрдпрд╛рдд рдФрд░ kdb рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдореИрди рдкреЗрдЬ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗ 3 рддрд░реНрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╢рд╛рдпрдж рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? рдПрдХ рдмрд╛рд░ kdb import/export рдХрд╛ рддрд░реНрдХ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдПрдХ рдкреАрдЖрд░ рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж!

рд╢рд╛рдпрдж рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ?

рдлрд┐рд░ рд╣рдореЗрдВ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ stdin рдФрд░ stdout (рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рд╡реЗ kdb import/export рд╕рд╛рде рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рдереЗред рдпрд╣ mmapstorage рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИрдВ (рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдирд╡-рдкрдардиреАрдп рд╣реИрдВ) рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЬреИрд╕реЗ рдЕрдЧрд░ рд╡реЗ fseek )ред

рддрд░реНрдХ kdb import/export рдПрдХ рдмрд╛рд░ рдкреНрд▓рдЧ рдЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдЬрдм рд╣рдо elektraGetOpts рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ -i FILE, --input=FILE , -o FILE, --ouput=FILE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рд╣рдо -i рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдпрд╛ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдврд╛рдВрдЪреЗ) рдХреЛ рдареАрдХ рдХрд░рдирд╛ рддрд╛рдХрд┐ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдХрд╛рдо рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛред

kdb export рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди-> kdbSet () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ, рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: kdb import user/tests/ mmapstorage < test.mmap ,
рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИ: cat test.mmap | kdb import user/tests/ mmapstorage , рдХреНрдпреЛрдВрдХрд┐ рдлрд┐рд░ рд╕реЗ mmap рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЧреИрд░-рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд) рдЗрд╕реЗ kdbGet () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рднреА рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЛрдЯреЗ рддреМрд░ рдкрд░ рддреАрди рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:

  1. рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдирд▓рд┐рдВрдХ рдХрд░реЗрдВ (рдХреБрдЫ рдмрджрд╕реВрд░рдд, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди)
  2. рдореЗрд░реЗ mmap рдХрд╛рдо рдХрд╛ рдЖрдзрд╛ рдХрд╛рдо (рдмрджрд╕реВрд░рдд рдФрд░ рдмрд╣реБрдд рдХрд╛рдо)
  3. рдмрд╣реБрдд рд╕рд╛рд░реА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдПрдВ рдФрд░ рдореЗрдЯрд╛-рдХреАрд╕реЗрдЯ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП ksDeepDup рдХреЛ рдкреБрди: рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд╕реВрд░рдд, рдЕрд░реНрдз-рд╕рд░рд▓ рдХреЛрдб)

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдпрд╛ рд╣рдо рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд╡рд┐рдХрдбрдВрдк рд╣реИред рдмрд╕ рдЗрд╕реЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬред рдЕрдм рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдврд╛рдВрдЪреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рд╣рдо рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред @mpranj рдореИрдВрдиреЗ рдЕрднреА рдЖрдкрдХреЗ рд▓рд┐рдП

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рд╣реИ рдЕрдЧрд░ # 2639 рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ @mpranj рдЖрдк cat ... рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

2639 рдпрд╣рд╛рдБ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдмрд╕ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдмреАрдПрд╕рдбреА рдкрд░ рднреА рдХрд╛рдо рдХрд░реЗред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдерд╛ ( realpath рдФрд░ stat ) рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмреАрдПрд╕рдбреА рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рджреВрд░ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЧреИрд░-рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд mmapstorage рдирд╣реАрдВ рдмрдирд╛ред рдпрд╣ рдХреЗрд╡рд▓ kdb рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рдмрд╕ рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ kdb рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рд╛рдЗрд▓ " /dev/stdin " рдпрд╛ " /dev/stdout " рд╣реИред рдпрд╣ quickdump рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдерд╛ (realpath рдФрд░ stat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ BSD рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд╕рдорд╛рдзрд╛рди рд╣реИ?

рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ # 2640 рдмрдирд╛рдпрд╛ред

рдХреЗрд╡рд▓ kdb рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛

cat | kdb import рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рд╕рд╛рде рднреА?

рдпрд╣ quickdump рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдорддрднреЗрдж рдХрд╣рд╛рдВ рд╣реИрдВ?

рдХреНрдпрд╛ рдЗрд╕ рдХреЛрдб рдХреЛ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд╕рдорд╛рдзрд╛рди рд╣реИ?

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ рд╣рдЯрд╛ рджреАрдВред Imho рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди https://github.com/ElektraInitiative/libelektra/pull/2639/commits/a523f9b38b56687d532f5101c7f5cc787822308d рддрдХ рдерд╛

рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдЯрдб / рд╕реНрдЯрдбрдЖрдЙрдЯ рдмреАрдПрд╕рдбреА рдкрд░ рдЦреБрд▓рд╛ () рдПрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдпрд▓рдкреИрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЕрдиреНрдпрдерд╛ рд╕реНрдЯреЗрдЯ рдиреЗ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХреЗ рдПрдХ рд╕реНрддрд░ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрд░реЗ рд▓рд┐рдП рдмреАрдПрд╕рдбреА рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдХреНрдпреЛрдВрдХрд┐ realpath рдиреЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдмрд┐рд▓реНрд▓реА рдХреЗ рд╕рд╛рде рднреА | kdb рдЖрдпрд╛рдд рд╕рдВрд╕реНрдХрд░рдг?

рд╣рд╛рдБ!

рдорддрднреЗрдж рдХрд╣рд╛рдВ рд╣реИрдВ?

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╕рдорд╛рди рд╣реИ, рднреНрд░рдо рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдореЗрд░рд╛ рдЖрд╢рдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп / dev / stdin рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реИрдореНрдк рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо / dev / fd /ред рдореЗрд░реЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдиреЗ strcmp рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ :

рдХреНрдпрд╛ рдЗрд╕ рдХреЛрдб рдХреЛ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдмреАрдПрд╕рдбреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рдерд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕