为了提高读取性能,我尝试使用LCS来减少底层 SSTable 的数量,因此我按照一些文章的建议将sstable_size_in_mb设置为1280MB,这些文章指出160MB默认值是 Cassandra 核心团队很久以前就挑选出来的,相当不错。旧服务器现在只有 2GB RAM。但是,我担心的是sstable_size_in_mb具有较高值的影响 。
我的理解是LCS定期将L0中的所有SSTable与L1中的所有SSTable压缩在一起,然后替换L1的全部内容。因此,每次更换 L1 时,随着sstable_size_in_mb的值增大,对 CPU/RAM 和写入放大的硬件要求可能会更高。事实上,如果sstable_size_in_mb = 1280MB,那么 L1 中的 10 个 1280MB 表每次都必须与所有 L0 表合并。即使要替换的 SSTable 看起来较低(一个 L1 SSTable 与 10 个 L2 SSTable 合并,然后这 10 个 L2 SSTable 被替换),也许还会对更高级别产生影响。
问题 :
具有较高的sstable_size_in_mb值可以通过减少 CQL 表中涉及的 SSTable 数量来提高读取性能。但是, sstable_size_in_mb具有如此高的值(例如 1280MB)还有什么其他含义?
如果值较高,是否有任何相应的配置需要调整(垃圾收集器、块缓存等),以便为那些较大的 SSTable 的压缩提供更好的性能,并减少 GC 活动?
更主观的问题,您在部署中使用的sstable_size_in_mb的典型值是多少?
我正在使用浮点图来编程折线图来显示时间序列。
为了减少要显示的点数,我通过对同一小时内的每个数据点应用平均函数来进行下采样。
然而最近,我发现了最大三角三桶算法: http://flot.base.is/
使用这种算法与使用平均值(每分钟、每小时、每天……)等简单函数有什么区别?
为了加速长时间查询,在服务器端预先计算一个sql表,通过对每个月的数据应用LTTB,并让客户端对聚合数据应用另一个LTTB,是否有意义?
我像这样实现 Apache Spark Scheduling Within (Scala 代码):
\n\n// group into list of 10 items...\nval maxSimultaneousSubmitAndMonitorThreadsInDriver = 10\n\n// ... in order to throttle the number of threads submitting and monitoring apps at a time\nval lists = myList grouped maxSimultaneousThreadsInDriver \n\nfor (aList <- lists) {\n\n // pick a list, then convert it to Scala Parallel list\n aList.par.foreach { // so 10 threads MAX at a time, that can handle job submission and monitoring\n case (file_name) => {\n\n // in each driver …Run Code Online (Sandbox Code Playgroud) scala apache-spark spark-streaming apache-spark-sql databricks
我正在尝试设置 Hadoop 3 集群。
关于纠删码功能的两个问题:
请指出与纠删码/复制相关的配置属性,以获得与 Hadoop 2 相同的数据安全性(复制因子 3),但具有 Hadoop 3 纠删码的磁盘空间优势(仅 50% 开销,而不是 200%) 。
apache-spark ×1
average ×1
bigdata ×1
cassandra ×1
databricks ×1
datastax ×1
downsampling ×1
erasure-code ×1
flot ×1
graph ×1
hadoop ×1
hadoop3 ×1
hdfs ×1
javascript ×1
scala ×1