> 1. Checking before insert if the timestamp already exists and remedy on the 
> client before resend
> 2. Moving to Nanosecond and introducing some insignificant time value to keep 
> timestamp values unique.
Yes these maybe the best solutions for a specific application.


Analysis for IoTDB:
- Rejecting the write when receiving an existing timestamp in IoTDB is
time-costly (IoTDB needs to check historical data). I think we will do
not check it until we find a low-latency method.
- Allowing multiple value versions for a timestamp may introduce a
chain reaction and there may be a lot of codes that should be
modified, which is a huge work.

There is a new idea (but I have no time to implement it...)
- Add a parameter in IoTDB: replace_strategy: first, last, avg etc...
- when an existing timestamp arrives, IoTDB accepts it
- when IoTDB runs LSM to merge data and meets multiple values for a
timestamp, then handles it according to the replace_startegy.

The solution may also introduce some work to do... and we need to
think carefully the impact to the query process.
Need to survey whether this is a common requirement.

Best,
-----------------------------------
Xiangdong Huang

Trevor Hart <tre...@ope.nz> 于2024年5月14日周二 09:55写道:
>
> Hello Yuan
>
>
>
> Correct, the first timestamp and values should be retained.
>
>
>
> I realise this is does not align with the current design. I was just asking 
> whether there was an existing option to operate to block duplicates.
>
>
>
> In a normal RDBMS if you try to insert with a duplicate the insert will fail 
> with a PK violation. It would be great in some circumstances if IotDB at 
> least had the option to fail this way.
>
>
>
> I am considering some options such as;
>
>
>
> 1. Checking before insert if the timestamp already exists and remedy on the 
> client before resend
>
> 2. Moving to Nanosecond and introducing some insignificant time value to keep 
> timestamp values unique.
>
>
>
> I have already done something similar to #2 with storing IIS web log files as 
> they are recorded in seconds and not milliseconds.
>
>
>
> Thanks
>
> Trevor Hart
>
>
>
>
> ---- On Tue, 14 May 2024 13:29:02 +1200 Yuan Tian <jackietie...@gmail.com> 
> wrote ---
>
>
>
> Hi Trevor,
>
> By "rejects duplicates", you mean you want to keep the first duplicate
> timestamp and its corresponding values?(because the following duplicated
> ones will be rejected)
>
> Best regards,
> --------------------
> Yuan Tian
>
> On Mon, May 13, 2024 at 6:24 PM Trevor Hart <mailto:tre...@ope.nz> wrote:
>
> >
> >
> >
> >
> >             Correct. I’m not disputing that. What I’m asking is that it
> > would be good to have a configuration that either allows overwrites or
> > rejects duplicates.My scenario is request log data from a server (the
> > device). As it may be processing multiple requests at once there is a
> > chance that there could be colliding time stamps.As it stands now I would
> > need to check if the timestamp exists before inserting the data. Which
> > obviously affects throughput. Thanks Trevor Hart    ---- On Fri, 10 May
> > 2024 00:33:40 +1200  Jialin Qiao<mailto:qiaojia...@apache.org> wrote ---- 
> > Hi,
> > In IoT or IIoT scenarios, we thought each data point represent a metric of
> > a timestamp.In which case you need to store duplicated values?  Take this
> > for an example: Time, root.sg1.car1.speed 1, 1 1, 2  Could a car has
> > different speed at time 1?   Jialin Qiao  Yuan Tian <
> > mailto:jackietie...@gmail.com> 于2024年5月9日周四 18:51写道: > > Hi Trevor, > > Now 
> > we
> > will override the duplicate timestamp with a newer one. There is > nothing
> > we can do about it now. > > Best regards, > ------------------- > Yuan Tian
> > > > On Wed, May 8, 2024 at 5:31 PM Trevor Hart <mailto:tre...@ope.nz> 
> > > > wrote: > >
> > > Hello > > > > > > > > I’m aware that when inserting a duplicate timestamp
> > the values will be > > overwritten. This will obviously result in data
> > loss. > > > > > > > > Is there a config/setting to reject or throw an error
> > on duplicate > > inserts? Although highly unlikely I would prefer to be
> > alerted to the > > situation rather than lose data. > > > > > > > > I read
> > through the documentation but couldn’t find anything. > > > > > > > >
> > Thanks > > > > Trevor Hart
> >
> >
> >
> >
> >
> >
> >

Reply via email to