https://questdb.io logo
Docs
Join the conversationJoin Slack
Channels
announcement
contributors
github
questdb-linen
random
users-market-data
users-public
Powered by Linen
contributors
  • p

    Pradeep S

    03/30/2022, 1:57 PM
    Hi Team - In a blog, an external link (to a DZone article) about QuestDB is broken. I wrote to DZone support for the correct link, but they have not yet responded. Is there a QuestDB email ID I can add in Cc? It might add credibility to my request. Can you please suggest?
    p
    • 2
    • 7
  • p

    Pradeep S

    03/31/2022, 3:46 PM
    Hi - For every new PR I create, an additional file (updated for an earlier PR) is getting added. I want to revert the earlier PR to resolve this issue. I don't see the Revert option. In the group, who is the admin who can provide Revert rights (temporarily)? Please do let me know.
    p
    • 2
    • 4
  • p

    Pradeep S

    04/05/2022, 11:38 AM
    Hi - In the Careers page, I observed that the 'Backend Engineers' link points to the Senior Backend Engineer job description. I am informing here, since I am not sure if it is a mistake, or it is intended.
    m
    p
    • 3
    • 12
  • s

    Shuxin Li

    04/22/2022, 1:01 PM
    Hi everyone, I'm new to both questdb slack and also the open-source communities. I'm wondering whether I'm able to apply for issues already in the TODO list? The issue I'd like to try on is https://github.com/questdb/questdb/issues/1514, I don't know whether its already on schedule or not. If no one's working on it currently, I'd love to give it a try. I have read the code of questDB, and I think I'm able to acheive this feature by modifying the parser of CREAT TABLE statements. This is a school project and ddl is close, so I'm really looking forward to having something to solve now😂 Thanks so much!
    💜 1
    j
    • 2
    • 8
  • a

    Aditya

    06/04/2022, 3:38 PM
    I am working on this - https://github.com/questdb/questdb/issues/2168 I stepped through the code and I think I have some idea of what to do - the main thing I wasn't able to understand was -
    An important part of the scenario is non-default index block capacity which is set to 2048. With the default capacity (which is 256) there is no noticeable bottleneck.
    Why is there no bottleneck with the default capacity?
  • a

    Andrey Pechkurov

    06/04/2022, 6:21 PM
    Hello, That's a good question. The only noticeable difference between the two runs should be the size of index value blocks: 256 vs 2048. It could have something to do with some fallocate or FS (ext4 in this case) specifics. Would be nice to find out the exact reason.
  • a

    Andrey Pechkurov

    06/04/2022, 6:28 PM
    For instance, that might be unallocated vs allocated extend operations in ext4.
  • a

    Andrey Pechkurov

    06/04/2022, 6:29 PM
    But again, would be nice to do some experiments and gain evidence.
  • a

    Aditya

    06/04/2022, 9:22 PM
    spitballing but could it be anything to do with speed in allocating blocks of size 256 and 2048? perhaps blocks of 256 are better aligned in memory / less fragmented. depending on the memory allocation strategy finding a slot to squeeze in a 256 might be easier than 2048.
  • a

    Aditya

    06/04/2022, 9:26 PM
    I ran the test a few times with different
    index capacity
    and 128, 256, 512, 1025 seem to be close, 2048 and 4096 are slower but similar times.
  • a

    Aditya

    06/04/2022, 9:28 PM
    i think 256 is the sweet spot where the size of the block isn't too big and doesn't lead to much fragmentation. having many smaller blocks could fragment the memory space which will later create issues (atleast that's what i can think of from these very basic tests i ran) also, since i am new to questDB, is this the appropriate channel for such discussions? or should i raise questions / discussions under the issue on github
  • a

    Andrey Pechkurov

    06/05/2022, 7:35 AM
    Could you include the timings for 256 vs 2048 sizes that you observed on your machine? On my Linux + ext4 machine the slowdown wasn't proportional (it was >8x). As for alignment, these sizes aren't in bytes, but long slots. Plus there is a header, so the end block size is not a power of 2. Also, I think it's fine to continue the discussion here.
  • a

    Aditya

    06/06/2022, 12:47 AM
    I have added the timings to the issue along with the code I wrote to generate those values (we can verify the correctness of how i tested it). https://github.com/questdb/questdb/issues/2168#issuecomment-1146923178
  • a

    Aditya

    06/06/2022, 12:51 AM
    Obviously.. I think these tests need to be run multiple times and the values need to be averaged or something like that to get a better idea. Sometimes I run the reproducer alone and 256 index runs in 800ms or so, while 2048 takes upto 4000 ms - sometimes the difference is much lesser.
  • f

    Fletcher Haynes

    06/17/2022, 11:48 PM
    Hello! Are there any ppc builds of questdb? Or docker image? It looked like the multiarch docker instructions included ppcle, but I don't see that image on docker hub. If there isn't one, I can build it myself, just wanted to avoid that if one exists.
  • z

    Zahlii

    08/04/2022, 4:38 PM
    Hi, I'm currently trying to work on string-typed aggregates. However, I am having difficulties understanding the difference between MapValues and MapRecords, in the sense of - Why do MapRecords support string columns/values, but MapValues not? Currently, aggregate functions store the result in MapValues (which until now don't have a notion on string values), however at the end of the it seems that the MapValue (containing the per-column aggregated values) is then converted to a Record. As such, even though my implementation works for storing the string aggregates inside the MapValue, I am losing this information in the step from value to record, hence the final record.getStr() fails.
  • a

    Andrey Pechkurov

    08/05/2022, 7:10 AM
    MapValue
    is an interface used in various
    io.questdb.cairo.map.Map
    implementations. By default we use
    FastMap
    implementation which is an off-heap memory based hash table.
    MapValue
    extends
    Record
    , so any implementation of a
    MapValue
    is already a record.
    MapRecord
    also extends
    Record
    , but it includes both key and value, so it stands for the map entry. Whenever you need to iterate a map, you deal with
    MapRecord
    through
    map.getCursor()
    .
    p
    • 2
    • 1
  • a

    Andrey Pechkurov

    08/05/2022, 7:11 AM
    Check
    FastMapTest
    to learn how to interact with a
    Map
    .
  • z

    Zahlii

    08/20/2022, 2:37 PM
    Hey, was wondering if someone could have a look at https://github.com/questdb/questdb/pull/2388, as that would be really handy for the project I am currently building 🙂
    b
    • 2
    • 9
  • z

    Zahlii

    08/25/2022, 5:17 PM
    If someone could help me out with my PR here that would be great. I am currently hitting the road-block that adding any analytical function that does NOT operate on long values will inevitably screw/scramble all involved records. As an example, I create an empty lag() function as a 1:1 copy from row number function, simply referencing all links to long types with double types. However, it seems to me that the CachedAnalyticsRecordCursorFactor currently is using a piece of structure called "LongTreeChaiN", which i assume can only handle long values, so this may explain the garbage I am receiving? https://github.com/questdb/questdb/pull/2459
    a
    • 2
    • 21
  • m

    Michael IZKOOL

    09/27/2022, 7:33 PM
    I am looking for some guidance on something: We are trying to add a 'week' integer parameter to TimestampFormatUtils compute method. We tried to add it and also add the corresponding 'I' on this line of code https://github.com/questdb/questdb/blob/a7aaa464fba30e9ecc044ce63e62db517bfc5609/core/src/main/java/io/questdb/std/datetime/microtime/TimestampFormatCompiler.java#L1522 but we are getting an error:
    java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.Unsafe$UnsafeClassDefiner.define(Unsafe.java:337)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.Unsafe.defineAnonymousClass(Unsafe.java:285)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.BytecodeAssembler.loadClass(BytecodeAssembler.java:418)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.BytecodeAssembler.newInstance(BytecodeAssembler.java:434)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:1679)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:245)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:205)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:201)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatUtils.<clinit>(TimestampFormatUtils.java:407)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.cairo.PartitionByTest.assertFormatAndParse(PartitionByTest.java:374)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.cairo.PartitionByTest.testDirectoryFormattingWeek(PartitionByTest.java:194)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        ...
    Caused by: java.lang.VerifyError: Bad type on operand stack
    Exception Details:
      Location:
        io/questdb/std/datetime/TimestampFormatAsm.parse(Ljava/lang/CharSequence;IILio/questdb/std/datetime/DateLocale;)J @420: invokestatic
      Reason:
        Type 'io/questdb/std/datetime/DateLocale' (current frame, stack[0]) is not assignable to integer
      Current Frame:
        bci: @420
        flags: { }
        locals: { 'io/questdb/std/datetime/TimestampFormatAsm', 'java/lang/CharSequence', integer, integer, 'io/questdb/std/datetime/DateLocale', integer, integer, integer, integer, integer, integer, integer, integer, long, long_2nd, integer, long, long_2nd, integer, integer, integer }
        stack: { 'io/questdb/std/datetime/DateLocale', integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, long, long_2nd, integer }
      Bytecode:
        0000000: 0336 0b1c 360c 0236 0f14 0011 3710 0536
        0000010: 1204 3613 0336 1419 042b 150c 1db6 001a
        0000020: 370d 150c 160d b800 3f60 360c 102c 2b15
        0000030: 0c84 0c01 1db8 0057 1020 2b15 0c84 0c01
        0000040: 1db8 0057 2b15 0c1d b800 3837 0d16 0db8
        0000050: 0042 3605 150c 160d b800 3f60 360c 1020
        0000060: 2b15 0c84 0c01 1db8 0057 1904 2b15 0c1d
        0000070: b600 1d37 0d16 0db8 0042 0460 3606 150c
        0000080: 160d b800 3f60 360c 1020 2b15 0c84 0c01
        0000090: 1db8 0057 150c 1da2 002b 2b15 0cb9 00ca
        00000a0: 0200 102d a000 1e15 0c07 601d b800 4c2b
        00000b0: 150c 0460 840c 0515 0cb8 0046 7436 07a7
        00000c0: 0018 150c 0660 1db8 004c 2b15 0c84 0c04
        00000d0: 150c b800 4636 0710 202b 150c 840c 011d
        00000e0: b800 5715 0c04 601d b800 4c2b 150c 840c
        00000f0: 0215 0cb8 0046 3608 103a 2b15 0c84 0c01
        0000100: 1db8 0057 150c 0460 1db8 004c 2b15 0c84
        0000110: 0c02 150c b800 4636 0910 3a2b 150c 840c
        0000120: 011d b800 5715 0c04 601d b800 4c2b 150c
        0000130: 840c 0215 0cb8 0046 360a 1020 2b15 0c84
        0000140: 0c01 1db8 0057 2b15 0c1d b800 8d37 0d16
        0000150: 0d14 0011 949a 0018 1904 2b15 0c1d b600
        0000160: 2037 0d16 0db8 0042 360f a700 1016 0db8
        0000170: 0042 0085 1400 1369 3710 150c 160d b800
        0000180: 3f60 360c 150c 1db8 004f 1904 1513 1507
        0000190: 1506 1505 1508 1509 150a 150b 1514 150f
        00001a0: 1610 1512 b800 5bad                    
      Stackmap Table:
        full_frame(@194,{Object[#9],Object[#16],Integer,Integer,Object[#14],Integer,Integer,Top,Top,Top,Top,Integer,Integer,Long,Integer,Long,Integer,Integer,Integer},{})
        full_frame(@215,{Object[#9],Object[#16],Integer,Integer,Object[#14],Integer,Integer,Integer,Top,Top,Top,Integer,Integer,Long,Integer,Long,Integer,Integer,Integer},{})
        full_frame(@365,{Object[#9],Object[#16],Integer,Integer,Object[#14],Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Long,Integer,Long,Integer,Integer,Integer},{})
        same_frame(@378)
        at java.base/jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method)
        at java.base/jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1223)
        at jdk.unsupported/sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830)
        ... 43 more
    java.lang.AssertionError
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.BytecodeAssembler.newInstance(BytecodeAssembler.java:435)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:1679)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:245)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:205)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatCompiler.compile(TimestampFormatCompiler.java:201)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.std.datetime.microtime.TimestampFormatUtils.<clinit>(TimestampFormatUtils.java:407)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.cairo.PartitionByTest.assertFormatAndParse(PartitionByTest.java:374)
        at io.questdb@6.5.3-SNAPSHOT/io.questdb.cairo.PartitionByTest.testDirectoryFormattingWeek(PartitionByTest.java:194)
    ...
    Wondering if we missed any steps required to add a parameter to this method?
    v
    • 2
    • 18
  • o

    Oren Joshua Saldanha

    10/04/2022, 4:12 PM
    Hi, I am working on this issue. The ILIKE operator is not working as expected
    j
    • 2
    • 1
  • s

    Shubham

    10/06/2022, 9:32 AM
    Hey everyone, just opened a small doc PR (my first here) #2597. Looking to utilise the Hacktoberfest month to get involved in the community. Let me know if there is anything specific that anybody would like to me work on. Looking for a steep learning curve in Java as well as Database Internals!
  • s

    SOURAV BATGIRI

    10/06/2022, 9:53 AM
    Hi everyone, I am working on this issue #2578 (Hacktoberfest 2022). I was working on the ceiling function, in Numeric section. I've hit a roadblock can't understand the following error. Can someone guide me, what I am missing?
    a
    j
    • 3
    • 3
  • u

    龚磊

    10/10/2022, 5:51 AM
    Hi guys, i created some issues about window function row_number #2611 #2620 , can anyone confirm these?
    p
    • 2
    • 1
  • m

    Michael IZKOOL

    10/10/2022, 12:27 PM
    I was wondering what the desired solution to this issue would be: https://github.com/questdb/questdb/issues/2584 I think there are a few things we could do, but I'm not sure which to pursue.
    p
    • 2
    • 1
  • u

    龚磊

    10/11/2022, 8:51 AM
    Hi guys, i am working on this issue #2611, but i can't find a method to test it. can somebody tell me how to test window function ?
    a
    • 2
    • 2
  • u

    龚磊

    10/12/2022, 2:17 PM
    Hi guys, i have a question about
    support trunc on mac addresses for IoT use cases
    task which in issue #2578: we don't have
    MacAddress
    data type, so what the entry data type of
    trunc
    function use?
  • a

    Andrey Pechkurov

    10/12/2022, 2:35 PM
    That's a good question. Since MAC address requires 6 bytes, that could be
    long
    or, maybe,
    string
    . Both are not ideal though
  • u

    龚磊

    10/12/2022, 2:39 PM
    Maybe we need to add the
    MacAddress
    data type first?
Powered by Linen
Title
u

龚磊

10/12/2022, 2:39 PM
Maybe we need to add the
MacAddress
data type first?
View count: 1